##// END OF EJS Templates
add xml to root module list. Closes \#196
vivainio -
Show More
@@ -1,347 +1,352 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2
2
3 """ Implementations for various useful completers
3 """ Implementations for various useful completers
4
4
5 See Extensions/ipy_stock_completers.py on examples of how to enable a completer,
5 See Extensions/ipy_stock_completers.py on examples of how to enable a completer,
6 but the basic idea is to do:
6 but the basic idea is to do:
7
7
8 ip.set_hook('complete_command', svn_completer, str_key = 'svn')
8 ip.set_hook('complete_command', svn_completer, str_key = 'svn')
9
9
10 """
10 """
11 import IPython.ipapi
11 import IPython.ipapi
12 import glob,os,shlex,sys
12 import glob,os,shlex,sys
13 import inspect
13 import inspect
14 from time import time
14 from time import time
15 ip = IPython.ipapi.get()
15 ip = IPython.ipapi.get()
16
16
17 TIMEOUT_STORAGE = 3 #Time in seconds after which the rootmodules will be stored
17 TIMEOUT_STORAGE = 3 #Time in seconds after which the rootmodules will be stored
18 TIMEOUT_GIVEUP = 20 #Time in seconds after which we give up
18 TIMEOUT_GIVEUP = 20 #Time in seconds after which we give up
19
19
20 def quick_completer(cmd, completions):
20 def quick_completer(cmd, completions):
21 """ Easily create a trivial completer for a command.
21 """ Easily create a trivial completer for a command.
22
22
23 Takes either a list of completions, or all completions in string
23 Takes either a list of completions, or all completions in string
24 (that will be split on whitespace)
24 (that will be split on whitespace)
25
25
26 Example::
26 Example::
27
27
28 [d:\ipython]|1> import ipy_completers
28 [d:\ipython]|1> import ipy_completers
29 [d:\ipython]|2> ipy_completers.quick_completer('foo', ['bar','baz'])
29 [d:\ipython]|2> ipy_completers.quick_completer('foo', ['bar','baz'])
30 [d:\ipython]|3> foo b<TAB>
30 [d:\ipython]|3> foo b<TAB>
31 bar baz
31 bar baz
32 [d:\ipython]|3> foo ba
32 [d:\ipython]|3> foo ba
33 """
33 """
34 if isinstance(completions, basestring):
34 if isinstance(completions, basestring):
35
35
36 completions = completions.split()
36 completions = completions.split()
37 def do_complete(self,event):
37 def do_complete(self,event):
38 return completions
38 return completions
39
39
40 ip.set_hook('complete_command',do_complete, str_key = cmd)
40 ip.set_hook('complete_command',do_complete, str_key = cmd)
41
41
42 def getRootModules():
42 def getRootModules():
43 """
43 """
44 Returns a list containing the names of all the modules available in the
44 Returns a list containing the names of all the modules available in the
45 folders of the pythonpath.
45 folders of the pythonpath.
46 """
46 """
47 modules = []
47 modules = []
48 if ip.db.has_key('rootmodules'):
48 if ip.db.has_key('rootmodules'):
49 return ip.db['rootmodules']
49 return ip.db['rootmodules']
50 t = time()
50 t = time()
51 store = False
51 store = False
52 for path in sys.path:
52 for path in sys.path:
53 modules += moduleList(path)
53 modules += moduleList(path)
54 if time() - t >= TIMEOUT_STORAGE and not store:
54 if time() - t >= TIMEOUT_STORAGE and not store:
55 store = True
55 store = True
56 print "\nCaching the list of root modules, please wait!"
56 print "\nCaching the list of root modules, please wait!"
57 print "(This will only be done once - type '%rehashx' to " + \
57 print "(This will only be done once - type '%rehashx' to " + \
58 "reset cache!)"
58 "reset cache!)"
59 print
59 print
60 if time() - t > TIMEOUT_GIVEUP:
60 if time() - t > TIMEOUT_GIVEUP:
61 print "This is taking too long, we give up."
61 print "This is taking too long, we give up."
62 print
62 print
63 ip.db['rootmodules'] = []
63 ip.db['rootmodules'] = []
64 return []
64 return []
65
65
66 modules += sys.builtin_module_names
66 modules += sys.builtin_module_names
67
68 #special modules that don't appear normally
69 modules.extend(['xml'])
70
67 modules = list(set(modules))
71 modules = list(set(modules))
68 if '__init__' in modules:
72 if '__init__' in modules:
69 modules.remove('__init__')
73 modules.remove('__init__')
70 modules = list(set(modules))
74 modules = list(set(modules))
71 if store:
75 if store:
72 ip.db['rootmodules'] = modules
76 ip.db['rootmodules'] = modules
73 return modules
77 return modules
74
78
75 def moduleList(path):
79 def moduleList(path):
76 """
80 """
77 Return the list containing the names of the modules available in the given
81 Return the list containing the names of the modules available in the given
78 folder.
82 folder.
79 """
83 """
84
80 if os.path.isdir(path):
85 if os.path.isdir(path):
81 folder_list = os.listdir(path)
86 folder_list = os.listdir(path)
82 else:
87 else:
83 folder_list = []
88 folder_list = []
84 #folder_list = glob.glob(os.path.join(path,'*'))
89 #folder_list = glob.glob(os.path.join(path,'*'))
85 folder_list = [path for path in folder_list \
90 folder_list = [p for p in folder_list \
86 if os.path.exists(os.path.join(path,'__init__.py'))\
91 if os.path.exists(os.path.join(p,'__init__.py'))\
87 or path[-3:] in ('.py','.so')\
92 or p[-3:] in ('.py','.so')\
88 or path[-4:] in ('.pyc','.pyo')]
93 or p[-4:] in ('.pyc','.pyo')]
89 folder_list += folder_list
94
90 folder_list = [os.path.basename(path).split('.')[0] for path in folder_list]
95 folder_list = [os.path.basename(p).split('.')[0] for p in folder_list]
91 return folder_list
96 return folder_list
92
97
93 def moduleCompletion(line):
98 def moduleCompletion(line):
94 """
99 """
95 Returns a list containing the completion possibilities for an import line.
100 Returns a list containing the completion possibilities for an import line.
96 The line looks like this :
101 The line looks like this :
97 'import xml.d'
102 'import xml.d'
98 'from xml.dom import'
103 'from xml.dom import'
99 """
104 """
100 def tryImport(mod, only_modules=False):
105 def tryImport(mod, only_modules=False):
101 def isImportable(module, attr):
106 def isImportable(module, attr):
102 if only_modules:
107 if only_modules:
103 return inspect.ismodule(getattr(module, attr))
108 return inspect.ismodule(getattr(module, attr))
104 else:
109 else:
105 return not(attr[:2] == '__' and attr[-2:] == '__')
110 return not(attr[:2] == '__' and attr[-2:] == '__')
106 try:
111 try:
107 m = __import__(mod)
112 m = __import__(mod)
108 except:
113 except:
109 return []
114 return []
110 mods = mod.split('.')
115 mods = mod.split('.')
111 for module in mods[1:]:
116 for module in mods[1:]:
112 m = getattr(m,module)
117 m = getattr(m,module)
113 if (not hasattr(m, '__file__')) or (not only_modules) or\
118 if (not hasattr(m, '__file__')) or (not only_modules) or\
114 (hasattr(m, '__file__') and '__init__' in m.__file__):
119 (hasattr(m, '__file__') and '__init__' in m.__file__):
115 completion_list = [attr for attr in dir(m) if isImportable(m, attr)]
120 completion_list = [attr for attr in dir(m) if isImportable(m, attr)]
116 completion_list.extend(getattr(m,'__all__',[]))
121 completion_list.extend(getattr(m,'__all__',[]))
117 if hasattr(m, '__file__') and '__init__' in m.__file__:
122 if hasattr(m, '__file__') and '__init__' in m.__file__:
118 completion_list.extend(moduleList(os.path.dirname(m.__file__)))
123 completion_list.extend(moduleList(os.path.dirname(m.__file__)))
119 completion_list = list(set(completion_list))
124 completion_list = list(set(completion_list))
120 if '__init__' in completion_list:
125 if '__init__' in completion_list:
121 completion_list.remove('__init__')
126 completion_list.remove('__init__')
122 return completion_list
127 return completion_list
123
128
124 words = line.split(' ')
129 words = line.split(' ')
125 if len(words) == 3 and words[0] == 'from':
130 if len(words) == 3 and words[0] == 'from':
126 return ['import ']
131 return ['import ']
127 if len(words) < 3 and (words[0] in ['import','from']) :
132 if len(words) < 3 and (words[0] in ['import','from']) :
128 if len(words) == 1:
133 if len(words) == 1:
129 return getRootModules()
134 return getRootModules()
130 mod = words[1].split('.')
135 mod = words[1].split('.')
131 if len(mod) < 2:
136 if len(mod) < 2:
132 return getRootModules()
137 return getRootModules()
133 completion_list = tryImport('.'.join(mod[:-1]), True)
138 completion_list = tryImport('.'.join(mod[:-1]), True)
134 completion_list = ['.'.join(mod[:-1] + [el]) for el in completion_list]
139 completion_list = ['.'.join(mod[:-1] + [el]) for el in completion_list]
135 return completion_list
140 return completion_list
136 if len(words) >= 3 and words[0] == 'from':
141 if len(words) >= 3 and words[0] == 'from':
137 mod = words[1]
142 mod = words[1]
138 return tryImport(mod)
143 return tryImport(mod)
139
144
140 def vcs_completer(commands, event):
145 def vcs_completer(commands, event):
141 """ utility to make writing typical version control app completers easier
146 """ utility to make writing typical version control app completers easier
142
147
143 VCS command line apps typically have the format:
148 VCS command line apps typically have the format:
144
149
145 [sudo ]PROGNAME [help] [command] file file...
150 [sudo ]PROGNAME [help] [command] file file...
146
151
147 """
152 """
148
153
149
154
150 cmd_param = event.line.split()
155 cmd_param = event.line.split()
151 if event.line.endswith(' '):
156 if event.line.endswith(' '):
152 cmd_param.append('')
157 cmd_param.append('')
153
158
154 if cmd_param[0] == 'sudo':
159 if cmd_param[0] == 'sudo':
155 cmd_param = cmd_param[1:]
160 cmd_param = cmd_param[1:]
156
161
157 if len(cmd_param) == 2 or 'help' in cmd_param:
162 if len(cmd_param) == 2 or 'help' in cmd_param:
158 return commands.split()
163 return commands.split()
159
164
160 return ip.IP.Completer.file_matches(event.symbol)
165 return ip.IP.Completer.file_matches(event.symbol)
161
166
162
167
163
168
164 def apt_completers(self, event):
169 def apt_completers(self, event):
165 """ This should return a list of strings with possible completions.
170 """ This should return a list of strings with possible completions.
166
171
167 Note that all the included strings that don't start with event.symbol
172 Note that all the included strings that don't start with event.symbol
168 are removed, in order to not confuse readline.
173 are removed, in order to not confuse readline.
169
174
170 """
175 """
171 # print event # dbg
176 # print event # dbg
172
177
173 # commands are only suggested for the 'command' part of package manager
178 # commands are only suggested for the 'command' part of package manager
174 # invocation
179 # invocation
175
180
176 cmd = (event.line + "<placeholder>").rsplit(None,1)[0]
181 cmd = (event.line + "<placeholder>").rsplit(None,1)[0]
177 # print cmd
182 # print cmd
178 if cmd.endswith('apt-get') or cmd.endswith('yum'):
183 if cmd.endswith('apt-get') or cmd.endswith('yum'):
179 return ['update', 'upgrade', 'install', 'remove']
184 return ['update', 'upgrade', 'install', 'remove']
180
185
181 # later on, add dpkg -l / whatever to get list of possible
186 # later on, add dpkg -l / whatever to get list of possible
182 # packages, add switches etc. for the rest of command line
187 # packages, add switches etc. for the rest of command line
183 # filling
188 # filling
184
189
185 raise IPython.ipapi.TryNext
190 raise IPython.ipapi.TryNext
186
191
187
192
188
193
189 pkg_cache = None
194 pkg_cache = None
190
195
191 def module_completer(self,event):
196 def module_completer(self,event):
192 """ Give completions after user has typed 'import ...' or 'from ...'"""
197 """ Give completions after user has typed 'import ...' or 'from ...'"""
193
198
194 # This works in all versions of python. While 2.5 has
199 # This works in all versions of python. While 2.5 has
195 # pkgutil.walk_packages(), that particular routine is fairly dangerous,
200 # pkgutil.walk_packages(), that particular routine is fairly dangerous,
196 # since it imports *EVERYTHING* on sys.path. That is: a) very slow b) full
201 # since it imports *EVERYTHING* on sys.path. That is: a) very slow b) full
197 # of possibly problematic side effects.
202 # of possibly problematic side effects.
198 # This search the folders in the sys.path for available modules.
203 # This search the folders in the sys.path for available modules.
199
204
200 return moduleCompletion(event.line)
205 return moduleCompletion(event.line)
201
206
202
207
203 svn_commands = """\
208 svn_commands = """\
204 add blame praise annotate ann cat checkout co cleanup commit ci copy
209 add blame praise annotate ann cat checkout co cleanup commit ci copy
205 cp delete del remove rm diff di export help ? h import info list ls
210 cp delete del remove rm diff di export help ? h import info list ls
206 lock log merge mkdir move mv rename ren propdel pdel pd propedit pedit
211 lock log merge mkdir move mv rename ren propdel pdel pd propedit pedit
207 pe propget pget pg proplist plist pl propset pset ps resolved revert
212 pe propget pget pg proplist plist pl propset pset ps resolved revert
208 status stat st switch sw unlock update
213 status stat st switch sw unlock update
209 """
214 """
210
215
211 def svn_completer(self,event):
216 def svn_completer(self,event):
212 return vcs_completer(svn_commands, event)
217 return vcs_completer(svn_commands, event)
213
218
214
219
215 hg_commands = """
220 hg_commands = """
216 add addremove annotate archive backout branch branches bundle cat
221 add addremove annotate archive backout branch branches bundle cat
217 clone commit copy diff export grep heads help identify import incoming
222 clone commit copy diff export grep heads help identify import incoming
218 init locate log manifest merge outgoing parents paths pull push
223 init locate log manifest merge outgoing parents paths pull push
219 qapplied qclone qcommit qdelete qdiff qfold qguard qheader qimport
224 qapplied qclone qcommit qdelete qdiff qfold qguard qheader qimport
220 qinit qnew qnext qpop qprev qpush qrefresh qrename qrestore qsave
225 qinit qnew qnext qpop qprev qpush qrefresh qrename qrestore qsave
221 qselect qseries qtop qunapplied recover remove rename revert rollback
226 qselect qseries qtop qunapplied recover remove rename revert rollback
222 root serve showconfig status strip tag tags tip unbundle update verify
227 root serve showconfig status strip tag tags tip unbundle update verify
223 version
228 version
224 """
229 """
225
230
226 def hg_completer(self,event):
231 def hg_completer(self,event):
227 """ Completer for mercurial commands """
232 """ Completer for mercurial commands """
228
233
229 return vcs_completer(hg_commands, event)
234 return vcs_completer(hg_commands, event)
230
235
231
236
232
237
233 bzr_commands = """
238 bzr_commands = """
234 add annotate bind branch break-lock bundle-revisions cat check
239 add annotate bind branch break-lock bundle-revisions cat check
235 checkout commit conflicts deleted diff export gannotate gbranch
240 checkout commit conflicts deleted diff export gannotate gbranch
236 gcommit gdiff help ignore ignored info init init-repository inventory
241 gcommit gdiff help ignore ignored info init init-repository inventory
237 log merge missing mkdir mv nick pull push reconcile register-branch
242 log merge missing mkdir mv nick pull push reconcile register-branch
238 remerge remove renames resolve revert revno root serve sign-my-commits
243 remerge remove renames resolve revert revno root serve sign-my-commits
239 status testament unbind uncommit unknowns update upgrade version
244 status testament unbind uncommit unknowns update upgrade version
240 version-info visualise whoami
245 version-info visualise whoami
241 """
246 """
242
247
243 def bzr_completer(self,event):
248 def bzr_completer(self,event):
244 """ Completer for bazaar commands """
249 """ Completer for bazaar commands """
245 cmd_param = event.line.split()
250 cmd_param = event.line.split()
246 if event.line.endswith(' '):
251 if event.line.endswith(' '):
247 cmd_param.append('')
252 cmd_param.append('')
248
253
249 if len(cmd_param) > 2:
254 if len(cmd_param) > 2:
250 cmd = cmd_param[1]
255 cmd = cmd_param[1]
251 param = cmd_param[-1]
256 param = cmd_param[-1]
252 output_file = (param == '--output=')
257 output_file = (param == '--output=')
253 if cmd == 'help':
258 if cmd == 'help':
254 return bzr_commands.split()
259 return bzr_commands.split()
255 elif cmd in ['bundle-revisions','conflicts',
260 elif cmd in ['bundle-revisions','conflicts',
256 'deleted','nick','register-branch',
261 'deleted','nick','register-branch',
257 'serve','unbind','upgrade','version',
262 'serve','unbind','upgrade','version',
258 'whoami'] and not output_file:
263 'whoami'] and not output_file:
259 return []
264 return []
260 else:
265 else:
261 # the rest are probably file names
266 # the rest are probably file names
262 return ip.IP.Completer.file_matches(event.symbol)
267 return ip.IP.Completer.file_matches(event.symbol)
263
268
264 return bzr_commands.split()
269 return bzr_commands.split()
265
270
266
271
267 def shlex_split(x):
272 def shlex_split(x):
268 """Helper function to split lines into segments."""
273 """Helper function to split lines into segments."""
269 #shlex.split raise exception if syntax error in sh syntax
274 #shlex.split raise exception if syntax error in sh syntax
270 #for example if no closing " is found. This function keeps dropping
275 #for example if no closing " is found. This function keeps dropping
271 #the last character of the line until shlex.split does not raise
276 #the last character of the line until shlex.split does not raise
272 #exception. Adds end of the line to the result of shlex.split
277 #exception. Adds end of the line to the result of shlex.split
273 #example: %run "c:/python -> ['%run','"c:/python']
278 #example: %run "c:/python -> ['%run','"c:/python']
274 endofline=[]
279 endofline=[]
275 while x!="":
280 while x!="":
276 try:
281 try:
277 comps=shlex.split(x)
282 comps=shlex.split(x)
278 if len(endofline)>=1:
283 if len(endofline)>=1:
279 comps.append("".join(endofline))
284 comps.append("".join(endofline))
280 return comps
285 return comps
281 except ValueError:
286 except ValueError:
282 endofline=[x[-1:]]+endofline
287 endofline=[x[-1:]]+endofline
283 x=x[:-1]
288 x=x[:-1]
284 return ["".join(endofline)]
289 return ["".join(endofline)]
285
290
286 def runlistpy(self, event):
291 def runlistpy(self, event):
287 comps = shlex_split(event.line)
292 comps = shlex_split(event.line)
288 relpath = (len(comps) > 1 and comps[-1] or '').strip("'\"")
293 relpath = (len(comps) > 1 and comps[-1] or '').strip("'\"")
289
294
290 #print "\nev=",event # dbg
295 #print "\nev=",event # dbg
291 #print "rp=",relpath # dbg
296 #print "rp=",relpath # dbg
292 #print 'comps=',comps # dbg
297 #print 'comps=',comps # dbg
293
298
294 lglob = glob.glob
299 lglob = glob.glob
295 isdir = os.path.isdir
300 isdir = os.path.isdir
296 if relpath.startswith('~'):
301 if relpath.startswith('~'):
297 relpath = os.path.expanduser(relpath)
302 relpath = os.path.expanduser(relpath)
298 dirs = [f.replace('\\','/') + "/" for f in lglob(relpath+'*')
303 dirs = [f.replace('\\','/') + "/" for f in lglob(relpath+'*')
299 if isdir(f)]
304 if isdir(f)]
300
305
301 # Find if the user has already typed the first filename, after which we
306 # Find if the user has already typed the first filename, after which we
302 # should complete on all files, since after the first one other files may
307 # should complete on all files, since after the first one other files may
303 # be arguments to the input script.
308 # be arguments to the input script.
304 #filter(
309 #filter(
305 if filter(lambda f: f.endswith('.py') or f.endswith('.ipy'),comps):
310 if filter(lambda f: f.endswith('.py') or f.endswith('.ipy'),comps):
306 pys = [f.replace('\\','/') for f in lglob('*')]
311 pys = [f.replace('\\','/') for f in lglob('*')]
307 else:
312 else:
308 pys = [f.replace('\\','/')
313 pys = [f.replace('\\','/')
309 for f in lglob(relpath+'*.py') + lglob(relpath+'*.ipy')]
314 for f in lglob(relpath+'*.py') + lglob(relpath+'*.ipy')]
310 return dirs + pys
315 return dirs + pys
311
316
312
317
313 def cd_completer(self, event):
318 def cd_completer(self, event):
314 relpath = event.symbol
319 relpath = event.symbol
315 #print event # dbg
320 #print event # dbg
316 if '-b' in event.line:
321 if '-b' in event.line:
317 # return only bookmark completions
322 # return only bookmark completions
318 bkms = self.db.get('bookmarks',{})
323 bkms = self.db.get('bookmarks',{})
319 return bkms.keys()
324 return bkms.keys()
320
325
321
326
322 if event.symbol == '-':
327 if event.symbol == '-':
323 width_dh = str(len(str(len(ip.user_ns['_dh']) + 1)))
328 width_dh = str(len(str(len(ip.user_ns['_dh']) + 1)))
324 # jump in directory history by number
329 # jump in directory history by number
325 fmt = '-%0' + width_dh +'d [%s]'
330 fmt = '-%0' + width_dh +'d [%s]'
326 ents = [ fmt % (i,s) for i,s in enumerate(ip.user_ns['_dh'])]
331 ents = [ fmt % (i,s) for i,s in enumerate(ip.user_ns['_dh'])]
327 if len(ents) > 1:
332 if len(ents) > 1:
328 return ents
333 return ents
329 return []
334 return []
330
335
331 if relpath.startswith('~'):
336 if relpath.startswith('~'):
332 relpath = os.path.expanduser(relpath).replace('\\','/')
337 relpath = os.path.expanduser(relpath).replace('\\','/')
333 found = []
338 found = []
334 for d in [f.replace('\\','/') + '/' for f in glob.glob(relpath+'*')
339 for d in [f.replace('\\','/') + '/' for f in glob.glob(relpath+'*')
335 if os.path.isdir(f)]:
340 if os.path.isdir(f)]:
336 if ' ' in d:
341 if ' ' in d:
337 # we don't want to deal with any of that, complex code
342 # we don't want to deal with any of that, complex code
338 # for this is elsewhere
343 # for this is elsewhere
339 raise IPython.ipapi.TryNext
344 raise IPython.ipapi.TryNext
340 found.append( d )
345 found.append( d )
341
346
342 if not found:
347 if not found:
343 if os.path.isdir(relpath):
348 if os.path.isdir(relpath):
344 return [relpath]
349 return [relpath]
345 raise IPython.ipapi.TryNext
350 raise IPython.ipapi.TryNext
346 return found
351 return found
347
352
@@ -1,7223 +1,7227 b''
1 2007-11-08 Ville Vainio <vivainio@gmail.com>
2 * ipy_completer.py (import completer): assume 'xml' module exists.
3 Do not add every module twice anymore. Closes #196.
4
1 2007-11-06 Ville Vainio <vivainio@gmail.com>
5 2007-11-06 Ville Vainio <vivainio@gmail.com>
2
6
3 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
7 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
4 true. Closes #194.
8 true. Closes #194.
5
9
6 2007-11-01 Brian Granger <ellisonbg@gmail.com>
10 2007-11-01 Brian Granger <ellisonbg@gmail.com>
7
11
8 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
12 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
9 working with OS X 10.5 libedit implementation of readline.
13 working with OS X 10.5 libedit implementation of readline.
10
14
11 2007-10-24 Ville Vainio <vivainio@gmail.com>
15 2007-10-24 Ville Vainio <vivainio@gmail.com>
12
16
13 * iplib.py(user_setup): To route around buggy installations where
17 * iplib.py(user_setup): To route around buggy installations where
14 UserConfig is not available, create a minimal _ipython.
18 UserConfig is not available, create a minimal _ipython.
15
19
16 * iplib.py: Unicode fixes from Jorgen.
20 * iplib.py: Unicode fixes from Jorgen.
17
21
18 * genutils.py: Slist now has new method 'fields()' for extraction of
22 * genutils.py: Slist now has new method 'fields()' for extraction of
19 whitespace-separated fields from line-oriented data.
23 whitespace-separated fields from line-oriented data.
20
24
21 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
25 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
22
26
23 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
27 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
24 when querying objects with no __class__ attribute (such as
28 when querying objects with no __class__ attribute (such as
25 f2py-generated modules).
29 f2py-generated modules).
26
30
27 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
31 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
28
32
29 * IPython/Magic.py (magic_time): track compilation time and report
33 * IPython/Magic.py (magic_time): track compilation time and report
30 it if longer than 0.1s (fix done to %time and %timeit). After a
34 it if longer than 0.1s (fix done to %time and %timeit). After a
31 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
35 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
32
36
33 2007-09-18 Ville Vainio <vivainio@gmail.com>
37 2007-09-18 Ville Vainio <vivainio@gmail.com>
34
38
35 * genutils.py(make_quoted_expr): Do not use Itpl, it does
39 * genutils.py(make_quoted_expr): Do not use Itpl, it does
36 not support unicode at the moment. Fixes (many) magic calls with
40 not support unicode at the moment. Fixes (many) magic calls with
37 special characters.
41 special characters.
38
42
39 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
43 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
40
44
41 * IPython/genutils.py (doctest_reload): expose the doctest
45 * IPython/genutils.py (doctest_reload): expose the doctest
42 reloader to the user so that people can easily reset doctest while
46 reloader to the user so that people can easily reset doctest while
43 using it interactively. Fixes a problem reported by Jorgen.
47 using it interactively. Fixes a problem reported by Jorgen.
44
48
45 * IPython/iplib.py (InteractiveShell.__init__): protect the
49 * IPython/iplib.py (InteractiveShell.__init__): protect the
46 FakeModule instances used for __main__ in %run calls from
50 FakeModule instances used for __main__ in %run calls from
47 deletion, so that user code defined in them isn't left with
51 deletion, so that user code defined in them isn't left with
48 dangling references due to the Python module deletion machinery.
52 dangling references due to the Python module deletion machinery.
49 This should fix the problems reported by Darren.
53 This should fix the problems reported by Darren.
50
54
51 2007-09-10 Darren Dale <dd55@cornell.edu>
55 2007-09-10 Darren Dale <dd55@cornell.edu>
52
56
53 * Cleanup of IPShellQt and IPShellQt4
57 * Cleanup of IPShellQt and IPShellQt4
54
58
55 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
59 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
56
60
57 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
61 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
58 doctest support.
62 doctest support.
59
63
60 * IPython/iplib.py (safe_execfile): minor docstring improvements.
64 * IPython/iplib.py (safe_execfile): minor docstring improvements.
61
65
62 2007-09-08 Ville Vainio <vivainio@gmail.com>
66 2007-09-08 Ville Vainio <vivainio@gmail.com>
63
67
64 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
68 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
65 directory, not the target directory.
69 directory, not the target directory.
66
70
67 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
71 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
68 exception that won't print the tracebacks. Switched many magics to
72 exception that won't print the tracebacks. Switched many magics to
69 raise them on error situations, also GetoptError is not printed
73 raise them on error situations, also GetoptError is not printed
70 anymore.
74 anymore.
71
75
72 2007-09-07 Ville Vainio <vivainio@gmail.com>
76 2007-09-07 Ville Vainio <vivainio@gmail.com>
73
77
74 * iplib.py: do not auto-alias "dir", it screws up other dir auto
78 * iplib.py: do not auto-alias "dir", it screws up other dir auto
75 aliases.
79 aliases.
76
80
77 * genutils.py: SList.grep() implemented.
81 * genutils.py: SList.grep() implemented.
78
82
79 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
83 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
80 for easy "out of the box" setup of several common editors, so that
84 for easy "out of the box" setup of several common editors, so that
81 e.g. '%edit os.path.isfile' will jump to the correct line
85 e.g. '%edit os.path.isfile' will jump to the correct line
82 automatically. Contributions for command lines of your favourite
86 automatically. Contributions for command lines of your favourite
83 editors welcome.
87 editors welcome.
84
88
85 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
89 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
86
90
87 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
91 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
88 preventing source display in certain cases. In reality I think
92 preventing source display in certain cases. In reality I think
89 the problem is with Ubuntu's Python build, but this change works
93 the problem is with Ubuntu's Python build, but this change works
90 around the issue in some cases (not in all, unfortunately). I'd
94 around the issue in some cases (not in all, unfortunately). I'd
91 filed a Python bug on this with more details, but in the change of
95 filed a Python bug on this with more details, but in the change of
92 bug trackers it seems to have been lost.
96 bug trackers it seems to have been lost.
93
97
94 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
98 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
95 not the same, it's not self-documenting, doesn't allow range
99 not the same, it's not self-documenting, doesn't allow range
96 selection, and sorts alphabetically instead of numerically.
100 selection, and sorts alphabetically instead of numerically.
97 (magic_r): restore %r. No, "up + enter. One char magic" is not
101 (magic_r): restore %r. No, "up + enter. One char magic" is not
98 the same thing, since %r takes parameters to allow fast retrieval
102 the same thing, since %r takes parameters to allow fast retrieval
99 of old commands. I've received emails from users who use this a
103 of old commands. I've received emails from users who use this a
100 LOT, so it stays.
104 LOT, so it stays.
101 (magic_automagic): restore %automagic. "use _ip.option.automagic"
105 (magic_automagic): restore %automagic. "use _ip.option.automagic"
102 is not a valid replacement b/c it doesn't provide an complete
106 is not a valid replacement b/c it doesn't provide an complete
103 explanation (which the automagic docstring does).
107 explanation (which the automagic docstring does).
104 (magic_autocall): restore %autocall, with improved docstring.
108 (magic_autocall): restore %autocall, with improved docstring.
105 Same argument as for others, "use _ip.options.autocall" is not a
109 Same argument as for others, "use _ip.options.autocall" is not a
106 valid replacement.
110 valid replacement.
107 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
111 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
108 tutorials and online docs.
112 tutorials and online docs.
109
113
110 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
114 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
111
115
112 * IPython/usage.py (quick_reference): mention magics in quickref,
116 * IPython/usage.py (quick_reference): mention magics in quickref,
113 modified main banner to mention %quickref.
117 modified main banner to mention %quickref.
114
118
115 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
119 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
116
120
117 2007-09-06 Ville Vainio <vivainio@gmail.com>
121 2007-09-06 Ville Vainio <vivainio@gmail.com>
118
122
119 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
123 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
120 Callable aliases now pass the _ip as first arg. This breaks
124 Callable aliases now pass the _ip as first arg. This breaks
121 compatibility with earlier 0.8.2.svn series! (though they should
125 compatibility with earlier 0.8.2.svn series! (though they should
122 not have been in use yet outside these few extensions)
126 not have been in use yet outside these few extensions)
123
127
124 2007-09-05 Ville Vainio <vivainio@gmail.com>
128 2007-09-05 Ville Vainio <vivainio@gmail.com>
125
129
126 * external/mglob.py: expand('dirname') => ['dirname'], instead
130 * external/mglob.py: expand('dirname') => ['dirname'], instead
127 of ['dirname/foo','dirname/bar', ...].
131 of ['dirname/foo','dirname/bar', ...].
128
132
129 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
133 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
130 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
134 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
131 is useful for others as well).
135 is useful for others as well).
132
136
133 * iplib.py: on callable aliases (as opposed to old style aliases),
137 * iplib.py: on callable aliases (as opposed to old style aliases),
134 do var_expand() immediately, and use make_quoted_expr instead
138 do var_expand() immediately, and use make_quoted_expr instead
135 of hardcoded r"""
139 of hardcoded r"""
136
140
137 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
141 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
138 if not available load ipy_fsops.py for cp, mv, etc. replacements
142 if not available load ipy_fsops.py for cp, mv, etc. replacements
139
143
140 * OInspect.py, ipy_which.py: improve %which and obj? for callable
144 * OInspect.py, ipy_which.py: improve %which and obj? for callable
141 aliases
145 aliases
142
146
143 2007-09-04 Ville Vainio <vivainio@gmail.com>
147 2007-09-04 Ville Vainio <vivainio@gmail.com>
144
148
145 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
149 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
146 Relicensed under BSD with the authors approval.
150 Relicensed under BSD with the authors approval.
147
151
148 * ipmaker.py, usage.py: Remove %magic from default banner, improve
152 * ipmaker.py, usage.py: Remove %magic from default banner, improve
149 %quickref
153 %quickref
150
154
151 2007-09-03 Ville Vainio <vivainio@gmail.com>
155 2007-09-03 Ville Vainio <vivainio@gmail.com>
152
156
153 * Magic.py: %time now passes expression through prefilter,
157 * Magic.py: %time now passes expression through prefilter,
154 allowing IPython syntax.
158 allowing IPython syntax.
155
159
156 2007-09-01 Ville Vainio <vivainio@gmail.com>
160 2007-09-01 Ville Vainio <vivainio@gmail.com>
157
161
158 * ipmaker.py: Always show full traceback when newstyle config fails
162 * ipmaker.py: Always show full traceback when newstyle config fails
159
163
160 2007-08-27 Ville Vainio <vivainio@gmail.com>
164 2007-08-27 Ville Vainio <vivainio@gmail.com>
161
165
162 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
166 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
163
167
164 2007-08-26 Ville Vainio <vivainio@gmail.com>
168 2007-08-26 Ville Vainio <vivainio@gmail.com>
165
169
166 * ipmaker.py: Command line args have the highest priority again
170 * ipmaker.py: Command line args have the highest priority again
167
171
168 * iplib.py, ipmaker.py: -i command line argument now behaves as in
172 * iplib.py, ipmaker.py: -i command line argument now behaves as in
169 normal python, i.e. leaves the IPython session running after -c
173 normal python, i.e. leaves the IPython session running after -c
170 command or running a batch file from command line.
174 command or running a batch file from command line.
171
175
172 2007-08-22 Ville Vainio <vivainio@gmail.com>
176 2007-08-22 Ville Vainio <vivainio@gmail.com>
173
177
174 * iplib.py: no extra empty (last) line in raw hist w/ multiline
178 * iplib.py: no extra empty (last) line in raw hist w/ multiline
175 statements
179 statements
176
180
177 * logger.py: Fix bug where blank lines in history were not
181 * logger.py: Fix bug where blank lines in history were not
178 added until AFTER adding the current line; translated and raw
182 added until AFTER adding the current line; translated and raw
179 history should finally be in sync with prompt now.
183 history should finally be in sync with prompt now.
180
184
181 * ipy_completers.py: quick_completer now makes it easy to create
185 * ipy_completers.py: quick_completer now makes it easy to create
182 trivial custom completers
186 trivial custom completers
183
187
184 * clearcmd.py: shadow history compression & erasing, fixed input hist
188 * clearcmd.py: shadow history compression & erasing, fixed input hist
185 clearing.
189 clearing.
186
190
187 * envpersist.py, history.py: %env (sh profile only), %hist completers
191 * envpersist.py, history.py: %env (sh profile only), %hist completers
188
192
189 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
193 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
190 term title now include the drive letter, and always use / instead of
194 term title now include the drive letter, and always use / instead of
191 os.sep (as per recommended approach for win32 ipython in general).
195 os.sep (as per recommended approach for win32 ipython in general).
192
196
193 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
197 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
194 plain python scripts from ipykit command line by running
198 plain python scripts from ipykit command line by running
195 "py myscript.py", even w/o installed python.
199 "py myscript.py", even w/o installed python.
196
200
197 2007-08-21 Ville Vainio <vivainio@gmail.com>
201 2007-08-21 Ville Vainio <vivainio@gmail.com>
198
202
199 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
203 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
200 (for backwards compatibility)
204 (for backwards compatibility)
201
205
202 * history.py: switch back to %hist -t from %hist -r as default.
206 * history.py: switch back to %hist -t from %hist -r as default.
203 At least until raw history is fixed for good.
207 At least until raw history is fixed for good.
204
208
205 2007-08-20 Ville Vainio <vivainio@gmail.com>
209 2007-08-20 Ville Vainio <vivainio@gmail.com>
206
210
207 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
211 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
208 locate alias redeclarations etc. Also, avoid handling
212 locate alias redeclarations etc. Also, avoid handling
209 _ip.IP.alias_table directly, prefer using _ip.defalias.
213 _ip.IP.alias_table directly, prefer using _ip.defalias.
210
214
211
215
212 2007-08-15 Ville Vainio <vivainio@gmail.com>
216 2007-08-15 Ville Vainio <vivainio@gmail.com>
213
217
214 * prefilter.py: ! is now always served first
218 * prefilter.py: ! is now always served first
215
219
216 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
220 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
217
221
218 * IPython/iplib.py (safe_execfile): fix the SystemExit
222 * IPython/iplib.py (safe_execfile): fix the SystemExit
219 auto-suppression code to work in Python2.4 (the internal structure
223 auto-suppression code to work in Python2.4 (the internal structure
220 of that exception changed and I'd only tested the code with 2.5).
224 of that exception changed and I'd only tested the code with 2.5).
221 Bug reported by a SciPy attendee.
225 Bug reported by a SciPy attendee.
222
226
223 2007-08-13 Ville Vainio <vivainio@gmail.com>
227 2007-08-13 Ville Vainio <vivainio@gmail.com>
224
228
225 * prefilter.py: reverted !c:/bin/foo fix, made % in
229 * prefilter.py: reverted !c:/bin/foo fix, made % in
226 multiline specials work again
230 multiline specials work again
227
231
228 2007-08-13 Ville Vainio <vivainio@gmail.com>
232 2007-08-13 Ville Vainio <vivainio@gmail.com>
229
233
230 * prefilter.py: Take more care to special-case !, so that
234 * prefilter.py: Take more care to special-case !, so that
231 !c:/bin/foo.exe works.
235 !c:/bin/foo.exe works.
232
236
233 * setup.py: if we are building eggs, strip all docs and
237 * setup.py: if we are building eggs, strip all docs and
234 examples (it doesn't make sense to bytecompile examples,
238 examples (it doesn't make sense to bytecompile examples,
235 and docs would be in an awkward place anyway).
239 and docs would be in an awkward place anyway).
236
240
237 * Ryan Krauss' patch fixes start menu shortcuts when IPython
241 * Ryan Krauss' patch fixes start menu shortcuts when IPython
238 is installed into a directory that has spaces in the name.
242 is installed into a directory that has spaces in the name.
239
243
240 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
244 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
241
245
242 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
246 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
243 doctest profile and %doctest_mode, so they actually generate the
247 doctest profile and %doctest_mode, so they actually generate the
244 blank lines needed by doctest to separate individual tests.
248 blank lines needed by doctest to separate individual tests.
245
249
246 * IPython/iplib.py (safe_execfile): modify so that running code
250 * IPython/iplib.py (safe_execfile): modify so that running code
247 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
251 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
248 doesn't get a printed traceback. Any other value in sys.exit(),
252 doesn't get a printed traceback. Any other value in sys.exit(),
249 including the empty call, still generates a traceback. This
253 including the empty call, still generates a traceback. This
250 enables use of %run without having to pass '-e' for codes that
254 enables use of %run without having to pass '-e' for codes that
251 correctly set the exit status flag.
255 correctly set the exit status flag.
252
256
253 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
257 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
254
258
255 * IPython/iplib.py (InteractiveShell.post_config_initialization):
259 * IPython/iplib.py (InteractiveShell.post_config_initialization):
256 fix problems with doctests failing when run inside IPython due to
260 fix problems with doctests failing when run inside IPython due to
257 IPython's modifications of sys.displayhook.
261 IPython's modifications of sys.displayhook.
258
262
259 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
263 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
260
264
261 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
265 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
262 a string with names.
266 a string with names.
263
267
264 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
268 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
265
269
266 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
270 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
267 magic to toggle on/off the doctest pasting support without having
271 magic to toggle on/off the doctest pasting support without having
268 to leave a session to switch to a separate profile.
272 to leave a session to switch to a separate profile.
269
273
270 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
274 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
271
275
272 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
276 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
273 introduce a blank line between inputs, to conform to doctest
277 introduce a blank line between inputs, to conform to doctest
274 requirements.
278 requirements.
275
279
276 * IPython/OInspect.py (Inspector.pinfo): fix another part where
280 * IPython/OInspect.py (Inspector.pinfo): fix another part where
277 auto-generated docstrings for new-style classes were showing up.
281 auto-generated docstrings for new-style classes were showing up.
278
282
279 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
283 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
280
284
281 * api_changes: Add new file to track backward-incompatible
285 * api_changes: Add new file to track backward-incompatible
282 user-visible changes.
286 user-visible changes.
283
287
284 2007-08-06 Ville Vainio <vivainio@gmail.com>
288 2007-08-06 Ville Vainio <vivainio@gmail.com>
285
289
286 * ipmaker.py: fix bug where user_config_ns didn't exist at all
290 * ipmaker.py: fix bug where user_config_ns didn't exist at all
287 before all the config files were handled.
291 before all the config files were handled.
288
292
289 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
293 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
290
294
291 * IPython/irunner.py (RunnerFactory): Add new factory class for
295 * IPython/irunner.py (RunnerFactory): Add new factory class for
292 creating reusable runners based on filenames.
296 creating reusable runners based on filenames.
293
297
294 * IPython/Extensions/ipy_profile_doctest.py: New profile for
298 * IPython/Extensions/ipy_profile_doctest.py: New profile for
295 doctest support. It sets prompts/exceptions as similar to
299 doctest support. It sets prompts/exceptions as similar to
296 standard Python as possible, so that ipython sessions in this
300 standard Python as possible, so that ipython sessions in this
297 profile can be easily pasted as doctests with minimal
301 profile can be easily pasted as doctests with minimal
298 modifications. It also enables pasting of doctests from external
302 modifications. It also enables pasting of doctests from external
299 sources (even if they have leading whitespace), so that you can
303 sources (even if they have leading whitespace), so that you can
300 rerun doctests from existing sources.
304 rerun doctests from existing sources.
301
305
302 * IPython/iplib.py (_prefilter): fix a buglet where after entering
306 * IPython/iplib.py (_prefilter): fix a buglet where after entering
303 some whitespace, the prompt would become a continuation prompt
307 some whitespace, the prompt would become a continuation prompt
304 with no way of exiting it other than Ctrl-C. This fix brings us
308 with no way of exiting it other than Ctrl-C. This fix brings us
305 into conformity with how the default python prompt works.
309 into conformity with how the default python prompt works.
306
310
307 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
311 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
308 Add support for pasting not only lines that start with '>>>', but
312 Add support for pasting not only lines that start with '>>>', but
309 also with ' >>>'. That is, arbitrary whitespace can now precede
313 also with ' >>>'. That is, arbitrary whitespace can now precede
310 the prompts. This makes the system useful for pasting doctests
314 the prompts. This makes the system useful for pasting doctests
311 from docstrings back into a normal session.
315 from docstrings back into a normal session.
312
316
313 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
317 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
314
318
315 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
319 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
316 r1357, which had killed multiple invocations of an embedded
320 r1357, which had killed multiple invocations of an embedded
317 ipython (this means that example-embed has been broken for over 1
321 ipython (this means that example-embed has been broken for over 1
318 year!!!). Rather than possibly breaking the batch stuff for which
322 year!!!). Rather than possibly breaking the batch stuff for which
319 the code in iplib.py/interact was introduced, I worked around the
323 the code in iplib.py/interact was introduced, I worked around the
320 problem in the embedding class in Shell.py. We really need a
324 problem in the embedding class in Shell.py. We really need a
321 bloody test suite for this code, I'm sick of finding stuff that
325 bloody test suite for this code, I'm sick of finding stuff that
322 used to work breaking left and right every time I use an old
326 used to work breaking left and right every time I use an old
323 feature I hadn't touched in a few months.
327 feature I hadn't touched in a few months.
324 (kill_embedded): Add a new magic that only shows up in embedded
328 (kill_embedded): Add a new magic that only shows up in embedded
325 mode, to allow users to permanently deactivate an embedded instance.
329 mode, to allow users to permanently deactivate an embedded instance.
326
330
327 2007-08-01 Ville Vainio <vivainio@gmail.com>
331 2007-08-01 Ville Vainio <vivainio@gmail.com>
328
332
329 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
333 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
330 history gets out of sync on runlines (e.g. when running macros).
334 history gets out of sync on runlines (e.g. when running macros).
331
335
332 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
336 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
333
337
334 * IPython/Magic.py (magic_colors): fix win32-related error message
338 * IPython/Magic.py (magic_colors): fix win32-related error message
335 that could appear under *nix when readline was missing. Patch by
339 that could appear under *nix when readline was missing. Patch by
336 Scott Jackson, closes #175.
340 Scott Jackson, closes #175.
337
341
338 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
342 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
339
343
340 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
344 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
341 completer that it traits-aware, so that traits objects don't show
345 completer that it traits-aware, so that traits objects don't show
342 all of their internal attributes all the time.
346 all of their internal attributes all the time.
343
347
344 * IPython/genutils.py (dir2): moved this code from inside
348 * IPython/genutils.py (dir2): moved this code from inside
345 completer.py to expose it publicly, so I could use it in the
349 completer.py to expose it publicly, so I could use it in the
346 wildcards bugfix.
350 wildcards bugfix.
347
351
348 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
352 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
349 Stefan with Traits.
353 Stefan with Traits.
350
354
351 * IPython/completer.py (Completer.attr_matches): change internal
355 * IPython/completer.py (Completer.attr_matches): change internal
352 var name from 'object' to 'obj', since 'object' is now a builtin
356 var name from 'object' to 'obj', since 'object' is now a builtin
353 and this can lead to weird bugs if reusing this code elsewhere.
357 and this can lead to weird bugs if reusing this code elsewhere.
354
358
355 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
359 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
356
360
357 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
361 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
358 'foo?' and update the code to prevent printing of default
362 'foo?' and update the code to prevent printing of default
359 docstrings that started appearing after I added support for
363 docstrings that started appearing after I added support for
360 new-style classes. The approach I'm using isn't ideal (I just
364 new-style classes. The approach I'm using isn't ideal (I just
361 special-case those strings) but I'm not sure how to more robustly
365 special-case those strings) but I'm not sure how to more robustly
362 differentiate between truly user-written strings and Python's
366 differentiate between truly user-written strings and Python's
363 automatic ones.
367 automatic ones.
364
368
365 2007-07-09 Ville Vainio <vivainio@gmail.com>
369 2007-07-09 Ville Vainio <vivainio@gmail.com>
366
370
367 * completer.py: Applied Matthew Neeley's patch:
371 * completer.py: Applied Matthew Neeley's patch:
368 Dynamic attributes from trait_names and _getAttributeNames are added
372 Dynamic attributes from trait_names and _getAttributeNames are added
369 to the list of tab completions, but when this happens, the attribute
373 to the list of tab completions, but when this happens, the attribute
370 list is turned into a set, so the attributes are unordered when
374 list is turned into a set, so the attributes are unordered when
371 printed, which makes it hard to find the right completion. This patch
375 printed, which makes it hard to find the right completion. This patch
372 turns this set back into a list and sort it.
376 turns this set back into a list and sort it.
373
377
374 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
378 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
375
379
376 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
380 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
377 classes in various inspector functions.
381 classes in various inspector functions.
378
382
379 2007-06-28 Ville Vainio <vivainio@gmail.com>
383 2007-06-28 Ville Vainio <vivainio@gmail.com>
380
384
381 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
385 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
382 Implement "shadow" namespace, and callable aliases that reside there.
386 Implement "shadow" namespace, and callable aliases that reside there.
383 Use them by:
387 Use them by:
384
388
385 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
389 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
386
390
387 foo hello world
391 foo hello world
388 (gets translated to:)
392 (gets translated to:)
389 _sh.foo(r"""hello world""")
393 _sh.foo(r"""hello world""")
390
394
391 In practice, this kind of alias can take the role of a magic function
395 In practice, this kind of alias can take the role of a magic function
392
396
393 * New generic inspect_object, called on obj? and obj??
397 * New generic inspect_object, called on obj? and obj??
394
398
395 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
399 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
396
400
397 * IPython/ultraTB.py (findsource): fix a problem with
401 * IPython/ultraTB.py (findsource): fix a problem with
398 inspect.getfile that can cause crashes during traceback construction.
402 inspect.getfile that can cause crashes during traceback construction.
399
403
400 2007-06-14 Ville Vainio <vivainio@gmail.com>
404 2007-06-14 Ville Vainio <vivainio@gmail.com>
401
405
402 * iplib.py (handle_auto): Try to use ascii for printing "--->"
406 * iplib.py (handle_auto): Try to use ascii for printing "--->"
403 autocall rewrite indication, becausesometimes unicode fails to print
407 autocall rewrite indication, becausesometimes unicode fails to print
404 properly (and you get ' - - - '). Use plain uncoloured ---> for
408 properly (and you get ' - - - '). Use plain uncoloured ---> for
405 unicode.
409 unicode.
406
410
407 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
411 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
408
412
409 . pickleshare 'hash' commands (hget, hset, hcompress,
413 . pickleshare 'hash' commands (hget, hset, hcompress,
410 hdict) for efficient shadow history storage.
414 hdict) for efficient shadow history storage.
411
415
412 2007-06-13 Ville Vainio <vivainio@gmail.com>
416 2007-06-13 Ville Vainio <vivainio@gmail.com>
413
417
414 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
418 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
415 Added kw arg 'interactive', tell whether vars should be visible
419 Added kw arg 'interactive', tell whether vars should be visible
416 with %whos.
420 with %whos.
417
421
418 2007-06-11 Ville Vainio <vivainio@gmail.com>
422 2007-06-11 Ville Vainio <vivainio@gmail.com>
419
423
420 * pspersistence.py, Magic.py, iplib.py: directory history now saved
424 * pspersistence.py, Magic.py, iplib.py: directory history now saved
421 to db
425 to db
422
426
423 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
427 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
424 Also, it exits IPython immediately after evaluating the command (just like
428 Also, it exits IPython immediately after evaluating the command (just like
425 std python)
429 std python)
426
430
427 2007-06-05 Walter Doerwald <walter@livinglogic.de>
431 2007-06-05 Walter Doerwald <walter@livinglogic.de>
428
432
429 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
433 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
430 Python string and captures the output. (Idea and original patch by
434 Python string and captures the output. (Idea and original patch by
431 Stefan van der Walt)
435 Stefan van der Walt)
432
436
433 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
437 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
434
438
435 * IPython/ultraTB.py (VerboseTB.text): update printing of
439 * IPython/ultraTB.py (VerboseTB.text): update printing of
436 exception types for Python 2.5 (now all exceptions in the stdlib
440 exception types for Python 2.5 (now all exceptions in the stdlib
437 are new-style classes).
441 are new-style classes).
438
442
439 2007-05-31 Walter Doerwald <walter@livinglogic.de>
443 2007-05-31 Walter Doerwald <walter@livinglogic.de>
440
444
441 * IPython/Extensions/igrid.py: Add new commands refresh and
445 * IPython/Extensions/igrid.py: Add new commands refresh and
442 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
446 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
443 the iterator once (refresh) or after every x seconds (refresh_timer).
447 the iterator once (refresh) or after every x seconds (refresh_timer).
444 Add a working implementation of "searchexpression", where the text
448 Add a working implementation of "searchexpression", where the text
445 entered is not the text to search for, but an expression that must
449 entered is not the text to search for, but an expression that must
446 be true. Added display of shortcuts to the menu. Added commands "pickinput"
450 be true. Added display of shortcuts to the menu. Added commands "pickinput"
447 and "pickinputattr" that put the object or attribute under the cursor
451 and "pickinputattr" that put the object or attribute under the cursor
448 in the input line. Split the statusbar to be able to display the currently
452 in the input line. Split the statusbar to be able to display the currently
449 active refresh interval. (Patch by Nik Tautenhahn)
453 active refresh interval. (Patch by Nik Tautenhahn)
450
454
451 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
455 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
452
456
453 * fixing set_term_title to use ctypes as default
457 * fixing set_term_title to use ctypes as default
454
458
455 * fixing set_term_title fallback to work when curent dir
459 * fixing set_term_title fallback to work when curent dir
456 is on a windows network share
460 is on a windows network share
457
461
458 2007-05-28 Ville Vainio <vivainio@gmail.com>
462 2007-05-28 Ville Vainio <vivainio@gmail.com>
459
463
460 * %cpaste: strip + with > from left (diffs).
464 * %cpaste: strip + with > from left (diffs).
461
465
462 * iplib.py: Fix crash when readline not installed
466 * iplib.py: Fix crash when readline not installed
463
467
464 2007-05-26 Ville Vainio <vivainio@gmail.com>
468 2007-05-26 Ville Vainio <vivainio@gmail.com>
465
469
466 * generics.py: intruduce easy to extend result_display generic
470 * generics.py: intruduce easy to extend result_display generic
467 function (using simplegeneric.py).
471 function (using simplegeneric.py).
468
472
469 * Fixed the append functionality of %set.
473 * Fixed the append functionality of %set.
470
474
471 2007-05-25 Ville Vainio <vivainio@gmail.com>
475 2007-05-25 Ville Vainio <vivainio@gmail.com>
472
476
473 * New magic: %rep (fetch / run old commands from history)
477 * New magic: %rep (fetch / run old commands from history)
474
478
475 * New extension: mglob (%mglob magic), for powerful glob / find /filter
479 * New extension: mglob (%mglob magic), for powerful glob / find /filter
476 like functionality
480 like functionality
477
481
478 % maghistory.py: %hist -g PATTERM greps the history for pattern
482 % maghistory.py: %hist -g PATTERM greps the history for pattern
479
483
480 2007-05-24 Walter Doerwald <walter@livinglogic.de>
484 2007-05-24 Walter Doerwald <walter@livinglogic.de>
481
485
482 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
486 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
483 browse the IPython input history
487 browse the IPython input history
484
488
485 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
489 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
486 (mapped to "i") can be used to put the object under the curser in the input
490 (mapped to "i") can be used to put the object under the curser in the input
487 line. pickinputattr (mapped to "I") does the same for the attribute under
491 line. pickinputattr (mapped to "I") does the same for the attribute under
488 the cursor.
492 the cursor.
489
493
490 2007-05-24 Ville Vainio <vivainio@gmail.com>
494 2007-05-24 Ville Vainio <vivainio@gmail.com>
491
495
492 * Grand magic cleansing (changeset [2380]):
496 * Grand magic cleansing (changeset [2380]):
493
497
494 * Introduce ipy_legacy.py where the following magics were
498 * Introduce ipy_legacy.py where the following magics were
495 moved:
499 moved:
496
500
497 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
501 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
498
502
499 If you need them, either use default profile or "import ipy_legacy"
503 If you need them, either use default profile or "import ipy_legacy"
500 in your ipy_user_conf.py
504 in your ipy_user_conf.py
501
505
502 * Move sh and scipy profile to Extensions from UserConfig. this implies
506 * Move sh and scipy profile to Extensions from UserConfig. this implies
503 you should not edit them, but you don't need to run %upgrade when
507 you should not edit them, but you don't need to run %upgrade when
504 upgrading IPython anymore.
508 upgrading IPython anymore.
505
509
506 * %hist/%history now operates in "raw" mode by default. To get the old
510 * %hist/%history now operates in "raw" mode by default. To get the old
507 behaviour, run '%hist -n' (native mode).
511 behaviour, run '%hist -n' (native mode).
508
512
509 * split ipy_stock_completers.py to ipy_stock_completers.py and
513 * split ipy_stock_completers.py to ipy_stock_completers.py and
510 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
514 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
511 installed as default.
515 installed as default.
512
516
513 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
517 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
514 handling.
518 handling.
515
519
516 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
520 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
517 input if readline is available.
521 input if readline is available.
518
522
519 2007-05-23 Ville Vainio <vivainio@gmail.com>
523 2007-05-23 Ville Vainio <vivainio@gmail.com>
520
524
521 * macro.py: %store uses __getstate__ properly
525 * macro.py: %store uses __getstate__ properly
522
526
523 * exesetup.py: added new setup script for creating
527 * exesetup.py: added new setup script for creating
524 standalone IPython executables with py2exe (i.e.
528 standalone IPython executables with py2exe (i.e.
525 no python installation required).
529 no python installation required).
526
530
527 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
531 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
528 its place.
532 its place.
529
533
530 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
534 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
531
535
532 2007-05-21 Ville Vainio <vivainio@gmail.com>
536 2007-05-21 Ville Vainio <vivainio@gmail.com>
533
537
534 * platutil_win32.py (set_term_title): handle
538 * platutil_win32.py (set_term_title): handle
535 failure of 'title' system call properly.
539 failure of 'title' system call properly.
536
540
537 2007-05-17 Walter Doerwald <walter@livinglogic.de>
541 2007-05-17 Walter Doerwald <walter@livinglogic.de>
538
542
539 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
543 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
540 (Bug detected by Paul Mueller).
544 (Bug detected by Paul Mueller).
541
545
542 2007-05-16 Ville Vainio <vivainio@gmail.com>
546 2007-05-16 Ville Vainio <vivainio@gmail.com>
543
547
544 * ipy_profile_sci.py, ipython_win_post_install.py: Create
548 * ipy_profile_sci.py, ipython_win_post_install.py: Create
545 new "sci" profile, effectively a modern version of the old
549 new "sci" profile, effectively a modern version of the old
546 "scipy" profile (which is now slated for deprecation).
550 "scipy" profile (which is now slated for deprecation).
547
551
548 2007-05-15 Ville Vainio <vivainio@gmail.com>
552 2007-05-15 Ville Vainio <vivainio@gmail.com>
549
553
550 * pycolorize.py, pycolor.1: Paul Mueller's patches that
554 * pycolorize.py, pycolor.1: Paul Mueller's patches that
551 make pycolorize read input from stdin when run without arguments.
555 make pycolorize read input from stdin when run without arguments.
552
556
553 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
557 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
554
558
555 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
559 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
556 it in sh profile (instead of ipy_system_conf.py).
560 it in sh profile (instead of ipy_system_conf.py).
557
561
558 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
562 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
559 aliases are now lower case on windows (MyCommand.exe => mycommand).
563 aliases are now lower case on windows (MyCommand.exe => mycommand).
560
564
561 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
565 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
562 Macros are now callable objects that inherit from ipapi.IPyAutocall,
566 Macros are now callable objects that inherit from ipapi.IPyAutocall,
563 i.e. get autocalled regardless of system autocall setting.
567 i.e. get autocalled regardless of system autocall setting.
564
568
565 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
569 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
566
570
567 * IPython/rlineimpl.py: check for clear_history in readline and
571 * IPython/rlineimpl.py: check for clear_history in readline and
568 make it a dummy no-op if not available. This function isn't
572 make it a dummy no-op if not available. This function isn't
569 guaranteed to be in the API and appeared in Python 2.4, so we need
573 guaranteed to be in the API and appeared in Python 2.4, so we need
570 to check it ourselves. Also, clean up this file quite a bit.
574 to check it ourselves. Also, clean up this file quite a bit.
571
575
572 * ipython.1: update man page and full manual with information
576 * ipython.1: update man page and full manual with information
573 about threads (remove outdated warning). Closes #151.
577 about threads (remove outdated warning). Closes #151.
574
578
575 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
579 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
576
580
577 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
581 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
578 in trunk (note that this made it into the 0.8.1 release already,
582 in trunk (note that this made it into the 0.8.1 release already,
579 but the changelogs didn't get coordinated). Many thanks to Gael
583 but the changelogs didn't get coordinated). Many thanks to Gael
580 Varoquaux <gael.varoquaux-AT-normalesup.org>
584 Varoquaux <gael.varoquaux-AT-normalesup.org>
581
585
582 2007-05-09 *** Released version 0.8.1
586 2007-05-09 *** Released version 0.8.1
583
587
584 2007-05-10 Walter Doerwald <walter@livinglogic.de>
588 2007-05-10 Walter Doerwald <walter@livinglogic.de>
585
589
586 * IPython/Extensions/igrid.py: Incorporate html help into
590 * IPython/Extensions/igrid.py: Incorporate html help into
587 the module, so we don't have to search for the file.
591 the module, so we don't have to search for the file.
588
592
589 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
593 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
590
594
591 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
595 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
592
596
593 2007-04-30 Ville Vainio <vivainio@gmail.com>
597 2007-04-30 Ville Vainio <vivainio@gmail.com>
594
598
595 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
599 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
596 user has illegal (non-ascii) home directory name
600 user has illegal (non-ascii) home directory name
597
601
598 2007-04-27 Ville Vainio <vivainio@gmail.com>
602 2007-04-27 Ville Vainio <vivainio@gmail.com>
599
603
600 * platutils_win32.py: implement set_term_title for windows
604 * platutils_win32.py: implement set_term_title for windows
601
605
602 * Update version number
606 * Update version number
603
607
604 * ipy_profile_sh.py: more informative prompt (2 dir levels)
608 * ipy_profile_sh.py: more informative prompt (2 dir levels)
605
609
606 2007-04-26 Walter Doerwald <walter@livinglogic.de>
610 2007-04-26 Walter Doerwald <walter@livinglogic.de>
607
611
608 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
612 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
609 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
613 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
610 bug discovered by Ville).
614 bug discovered by Ville).
611
615
612 2007-04-26 Ville Vainio <vivainio@gmail.com>
616 2007-04-26 Ville Vainio <vivainio@gmail.com>
613
617
614 * Extensions/ipy_completers.py: Olivier's module completer now
618 * Extensions/ipy_completers.py: Olivier's module completer now
615 saves the list of root modules if it takes > 4 secs on the first run.
619 saves the list of root modules if it takes > 4 secs on the first run.
616
620
617 * Magic.py (%rehashx): %rehashx now clears the completer cache
621 * Magic.py (%rehashx): %rehashx now clears the completer cache
618
622
619
623
620 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
624 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
621
625
622 * ipython.el: fix incorrect color scheme, reported by Stefan.
626 * ipython.el: fix incorrect color scheme, reported by Stefan.
623 Closes #149.
627 Closes #149.
624
628
625 * IPython/PyColorize.py (Parser.format2): fix state-handling
629 * IPython/PyColorize.py (Parser.format2): fix state-handling
626 logic. I still don't like how that code handles state, but at
630 logic. I still don't like how that code handles state, but at
627 least now it should be correct, if inelegant. Closes #146.
631 least now it should be correct, if inelegant. Closes #146.
628
632
629 2007-04-25 Ville Vainio <vivainio@gmail.com>
633 2007-04-25 Ville Vainio <vivainio@gmail.com>
630
634
631 * Extensions/ipy_which.py: added extension for %which magic, works
635 * Extensions/ipy_which.py: added extension for %which magic, works
632 a lot like unix 'which' but also finds and expands aliases, and
636 a lot like unix 'which' but also finds and expands aliases, and
633 allows wildcards.
637 allows wildcards.
634
638
635 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
639 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
636 as opposed to returning nothing.
640 as opposed to returning nothing.
637
641
638 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
642 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
639 ipy_stock_completers on default profile, do import on sh profile.
643 ipy_stock_completers on default profile, do import on sh profile.
640
644
641 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
645 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
642
646
643 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
647 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
644 like ipython.py foo.py which raised a IndexError.
648 like ipython.py foo.py which raised a IndexError.
645
649
646 2007-04-21 Ville Vainio <vivainio@gmail.com>
650 2007-04-21 Ville Vainio <vivainio@gmail.com>
647
651
648 * Extensions/ipy_extutil.py: added extension to manage other ipython
652 * Extensions/ipy_extutil.py: added extension to manage other ipython
649 extensions. Now only supports 'ls' == list extensions.
653 extensions. Now only supports 'ls' == list extensions.
650
654
651 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
655 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
652
656
653 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
657 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
654 would prevent use of the exception system outside of a running
658 would prevent use of the exception system outside of a running
655 IPython instance.
659 IPython instance.
656
660
657 2007-04-20 Ville Vainio <vivainio@gmail.com>
661 2007-04-20 Ville Vainio <vivainio@gmail.com>
658
662
659 * Extensions/ipy_render.py: added extension for easy
663 * Extensions/ipy_render.py: added extension for easy
660 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
664 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
661 'Iptl' template notation,
665 'Iptl' template notation,
662
666
663 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
667 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
664 safer & faster 'import' completer.
668 safer & faster 'import' completer.
665
669
666 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
670 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
667 and _ip.defalias(name, command).
671 and _ip.defalias(name, command).
668
672
669 * Extensions/ipy_exportdb.py: New extension for exporting all the
673 * Extensions/ipy_exportdb.py: New extension for exporting all the
670 %store'd data in a portable format (normal ipapi calls like
674 %store'd data in a portable format (normal ipapi calls like
671 defmacro() etc.)
675 defmacro() etc.)
672
676
673 2007-04-19 Ville Vainio <vivainio@gmail.com>
677 2007-04-19 Ville Vainio <vivainio@gmail.com>
674
678
675 * upgrade_dir.py: skip junk files like *.pyc
679 * upgrade_dir.py: skip junk files like *.pyc
676
680
677 * Release.py: version number to 0.8.1
681 * Release.py: version number to 0.8.1
678
682
679 2007-04-18 Ville Vainio <vivainio@gmail.com>
683 2007-04-18 Ville Vainio <vivainio@gmail.com>
680
684
681 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
685 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
682 and later on win32.
686 and later on win32.
683
687
684 2007-04-16 Ville Vainio <vivainio@gmail.com>
688 2007-04-16 Ville Vainio <vivainio@gmail.com>
685
689
686 * iplib.py (showtraceback): Do not crash when running w/o readline.
690 * iplib.py (showtraceback): Do not crash when running w/o readline.
687
691
688 2007-04-12 Walter Doerwald <walter@livinglogic.de>
692 2007-04-12 Walter Doerwald <walter@livinglogic.de>
689
693
690 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
694 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
691 sorted (case sensitive with files and dirs mixed).
695 sorted (case sensitive with files and dirs mixed).
692
696
693 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
697 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
694
698
695 * IPython/Release.py (version): Open trunk for 0.8.1 development.
699 * IPython/Release.py (version): Open trunk for 0.8.1 development.
696
700
697 2007-04-10 *** Released version 0.8.0
701 2007-04-10 *** Released version 0.8.0
698
702
699 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
703 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
700
704
701 * Tag 0.8.0 for release.
705 * Tag 0.8.0 for release.
702
706
703 * IPython/iplib.py (reloadhist): add API function to cleanly
707 * IPython/iplib.py (reloadhist): add API function to cleanly
704 reload the readline history, which was growing inappropriately on
708 reload the readline history, which was growing inappropriately on
705 every %run call.
709 every %run call.
706
710
707 * win32_manual_post_install.py (run): apply last part of Nicolas
711 * win32_manual_post_install.py (run): apply last part of Nicolas
708 Pernetty's patch (I'd accidentally applied it in a different
712 Pernetty's patch (I'd accidentally applied it in a different
709 directory and this particular file didn't get patched).
713 directory and this particular file didn't get patched).
710
714
711 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
715 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
712
716
713 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
717 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
714 find the main thread id and use the proper API call. Thanks to
718 find the main thread id and use the proper API call. Thanks to
715 Stefan for the fix.
719 Stefan for the fix.
716
720
717 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
721 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
718 unit tests to reflect fixed ticket #52, and add more tests sent by
722 unit tests to reflect fixed ticket #52, and add more tests sent by
719 him.
723 him.
720
724
721 * IPython/iplib.py (raw_input): restore the readline completer
725 * IPython/iplib.py (raw_input): restore the readline completer
722 state on every input, in case third-party code messed it up.
726 state on every input, in case third-party code messed it up.
723 (_prefilter): revert recent addition of early-escape checks which
727 (_prefilter): revert recent addition of early-escape checks which
724 prevent many valid alias calls from working.
728 prevent many valid alias calls from working.
725
729
726 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
730 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
727 flag for sigint handler so we don't run a full signal() call on
731 flag for sigint handler so we don't run a full signal() call on
728 each runcode access.
732 each runcode access.
729
733
730 * IPython/Magic.py (magic_whos): small improvement to diagnostic
734 * IPython/Magic.py (magic_whos): small improvement to diagnostic
731 message.
735 message.
732
736
733 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
737 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
734
738
735 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
739 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
736 asynchronous exceptions working, i.e., Ctrl-C can actually
740 asynchronous exceptions working, i.e., Ctrl-C can actually
737 interrupt long-running code in the multithreaded shells.
741 interrupt long-running code in the multithreaded shells.
738
742
739 This is using Tomer Filiba's great ctypes-based trick:
743 This is using Tomer Filiba's great ctypes-based trick:
740 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
744 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
741 this in the past, but hadn't been able to make it work before. So
745 this in the past, but hadn't been able to make it work before. So
742 far it looks like it's actually running, but this needs more
746 far it looks like it's actually running, but this needs more
743 testing. If it really works, I'll be *very* happy, and we'll owe
747 testing. If it really works, I'll be *very* happy, and we'll owe
744 a huge thank you to Tomer. My current implementation is ugly,
748 a huge thank you to Tomer. My current implementation is ugly,
745 hackish and uses nasty globals, but I don't want to try and clean
749 hackish and uses nasty globals, but I don't want to try and clean
746 anything up until we know if it actually works.
750 anything up until we know if it actually works.
747
751
748 NOTE: this feature needs ctypes to work. ctypes is included in
752 NOTE: this feature needs ctypes to work. ctypes is included in
749 Python2.5, but 2.4 users will need to manually install it. This
753 Python2.5, but 2.4 users will need to manually install it. This
750 feature makes multi-threaded shells so much more usable that it's
754 feature makes multi-threaded shells so much more usable that it's
751 a minor price to pay (ctypes is very easy to install, already a
755 a minor price to pay (ctypes is very easy to install, already a
752 requirement for win32 and available in major linux distros).
756 requirement for win32 and available in major linux distros).
753
757
754 2007-04-04 Ville Vainio <vivainio@gmail.com>
758 2007-04-04 Ville Vainio <vivainio@gmail.com>
755
759
756 * Extensions/ipy_completers.py, ipy_stock_completers.py:
760 * Extensions/ipy_completers.py, ipy_stock_completers.py:
757 Moved implementations of 'bundled' completers to ipy_completers.py,
761 Moved implementations of 'bundled' completers to ipy_completers.py,
758 they are only enabled in ipy_stock_completers.py.
762 they are only enabled in ipy_stock_completers.py.
759
763
760 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
764 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
761
765
762 * IPython/PyColorize.py (Parser.format2): Fix identation of
766 * IPython/PyColorize.py (Parser.format2): Fix identation of
763 colorzied output and return early if color scheme is NoColor, to
767 colorzied output and return early if color scheme is NoColor, to
764 avoid unnecessary and expensive tokenization. Closes #131.
768 avoid unnecessary and expensive tokenization. Closes #131.
765
769
766 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
770 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
767
771
768 * IPython/Debugger.py: disable the use of pydb version 1.17. It
772 * IPython/Debugger.py: disable the use of pydb version 1.17. It
769 has a critical bug (a missing import that makes post-mortem not
773 has a critical bug (a missing import that makes post-mortem not
770 work at all). Unfortunately as of this time, this is the version
774 work at all). Unfortunately as of this time, this is the version
771 shipped with Ubuntu Edgy, so quite a few people have this one. I
775 shipped with Ubuntu Edgy, so quite a few people have this one. I
772 hope Edgy will update to a more recent package.
776 hope Edgy will update to a more recent package.
773
777
774 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
778 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
775
779
776 * IPython/iplib.py (_prefilter): close #52, second part of a patch
780 * IPython/iplib.py (_prefilter): close #52, second part of a patch
777 set by Stefan (only the first part had been applied before).
781 set by Stefan (only the first part had been applied before).
778
782
779 * IPython/Extensions/ipy_stock_completers.py (module_completer):
783 * IPython/Extensions/ipy_stock_completers.py (module_completer):
780 remove usage of the dangerous pkgutil.walk_packages(). See
784 remove usage of the dangerous pkgutil.walk_packages(). See
781 details in comments left in the code.
785 details in comments left in the code.
782
786
783 * IPython/Magic.py (magic_whos): add support for numpy arrays
787 * IPython/Magic.py (magic_whos): add support for numpy arrays
784 similar to what we had for Numeric.
788 similar to what we had for Numeric.
785
789
786 * IPython/completer.py (IPCompleter.complete): extend the
790 * IPython/completer.py (IPCompleter.complete): extend the
787 complete() call API to support completions by other mechanisms
791 complete() call API to support completions by other mechanisms
788 than readline. Closes #109.
792 than readline. Closes #109.
789
793
790 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
794 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
791 protect against a bug in Python's execfile(). Closes #123.
795 protect against a bug in Python's execfile(). Closes #123.
792
796
793 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
797 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
794
798
795 * IPython/iplib.py (split_user_input): ensure that when splitting
799 * IPython/iplib.py (split_user_input): ensure that when splitting
796 user input, the part that can be treated as a python name is pure
800 user input, the part that can be treated as a python name is pure
797 ascii (Python identifiers MUST be pure ascii). Part of the
801 ascii (Python identifiers MUST be pure ascii). Part of the
798 ongoing Unicode support work.
802 ongoing Unicode support work.
799
803
800 * IPython/Prompts.py (prompt_specials_color): Add \N for the
804 * IPython/Prompts.py (prompt_specials_color): Add \N for the
801 actual prompt number, without any coloring. This allows users to
805 actual prompt number, without any coloring. This allows users to
802 produce numbered prompts with their own colors. Added after a
806 produce numbered prompts with their own colors. Added after a
803 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
807 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
804
808
805 2007-03-31 Walter Doerwald <walter@livinglogic.de>
809 2007-03-31 Walter Doerwald <walter@livinglogic.de>
806
810
807 * IPython/Extensions/igrid.py: Map the return key
811 * IPython/Extensions/igrid.py: Map the return key
808 to enter() and shift-return to enterattr().
812 to enter() and shift-return to enterattr().
809
813
810 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
814 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
811
815
812 * IPython/Magic.py (magic_psearch): add unicode support by
816 * IPython/Magic.py (magic_psearch): add unicode support by
813 encoding to ascii the input, since this routine also only deals
817 encoding to ascii the input, since this routine also only deals
814 with valid Python names. Fixes a bug reported by Stefan.
818 with valid Python names. Fixes a bug reported by Stefan.
815
819
816 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
820 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
817
821
818 * IPython/Magic.py (_inspect): convert unicode input into ascii
822 * IPython/Magic.py (_inspect): convert unicode input into ascii
819 before trying to evaluate it as a Python identifier. This fixes a
823 before trying to evaluate it as a Python identifier. This fixes a
820 problem that the new unicode support had introduced when analyzing
824 problem that the new unicode support had introduced when analyzing
821 long definition lines for functions.
825 long definition lines for functions.
822
826
823 2007-03-24 Walter Doerwald <walter@livinglogic.de>
827 2007-03-24 Walter Doerwald <walter@livinglogic.de>
824
828
825 * IPython/Extensions/igrid.py: Fix picking. Using
829 * IPython/Extensions/igrid.py: Fix picking. Using
826 igrid with wxPython 2.6 and -wthread should work now.
830 igrid with wxPython 2.6 and -wthread should work now.
827 igrid.display() simply tries to create a frame without
831 igrid.display() simply tries to create a frame without
828 an application. Only if this fails an application is created.
832 an application. Only if this fails an application is created.
829
833
830 2007-03-23 Walter Doerwald <walter@livinglogic.de>
834 2007-03-23 Walter Doerwald <walter@livinglogic.de>
831
835
832 * IPython/Extensions/path.py: Updated to version 2.2.
836 * IPython/Extensions/path.py: Updated to version 2.2.
833
837
834 2007-03-23 Ville Vainio <vivainio@gmail.com>
838 2007-03-23 Ville Vainio <vivainio@gmail.com>
835
839
836 * iplib.py: recursive alias expansion now works better, so that
840 * iplib.py: recursive alias expansion now works better, so that
837 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
841 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
838 doesn't trip up the process, if 'd' has been aliased to 'ls'.
842 doesn't trip up the process, if 'd' has been aliased to 'ls'.
839
843
840 * Extensions/ipy_gnuglobal.py added, provides %global magic
844 * Extensions/ipy_gnuglobal.py added, provides %global magic
841 for users of http://www.gnu.org/software/global
845 for users of http://www.gnu.org/software/global
842
846
843 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
847 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
844 Closes #52. Patch by Stefan van der Walt.
848 Closes #52. Patch by Stefan van der Walt.
845
849
846 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
850 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
847
851
848 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
852 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
849 respect the __file__ attribute when using %run. Thanks to a bug
853 respect the __file__ attribute when using %run. Thanks to a bug
850 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
854 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
851
855
852 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
856 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
853
857
854 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
858 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
855 input. Patch sent by Stefan.
859 input. Patch sent by Stefan.
856
860
857 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
861 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
858 * IPython/Extensions/ipy_stock_completer.py
862 * IPython/Extensions/ipy_stock_completer.py
859 shlex_split, fix bug in shlex_split. len function
863 shlex_split, fix bug in shlex_split. len function
860 call was missing an if statement. Caused shlex_split to
864 call was missing an if statement. Caused shlex_split to
861 sometimes return "" as last element.
865 sometimes return "" as last element.
862
866
863 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
867 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
864
868
865 * IPython/completer.py
869 * IPython/completer.py
866 (IPCompleter.file_matches.single_dir_expand): fix a problem
870 (IPCompleter.file_matches.single_dir_expand): fix a problem
867 reported by Stefan, where directories containign a single subdir
871 reported by Stefan, where directories containign a single subdir
868 would be completed too early.
872 would be completed too early.
869
873
870 * IPython/Shell.py (_load_pylab): Make the execution of 'from
874 * IPython/Shell.py (_load_pylab): Make the execution of 'from
871 pylab import *' when -pylab is given be optional. A new flag,
875 pylab import *' when -pylab is given be optional. A new flag,
872 pylab_import_all controls this behavior, the default is True for
876 pylab_import_all controls this behavior, the default is True for
873 backwards compatibility.
877 backwards compatibility.
874
878
875 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
879 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
876 modified) R. Bernstein's patch for fully syntax highlighted
880 modified) R. Bernstein's patch for fully syntax highlighted
877 tracebacks. The functionality is also available under ultraTB for
881 tracebacks. The functionality is also available under ultraTB for
878 non-ipython users (someone using ultraTB but outside an ipython
882 non-ipython users (someone using ultraTB but outside an ipython
879 session). They can select the color scheme by setting the
883 session). They can select the color scheme by setting the
880 module-level global DEFAULT_SCHEME. The highlight functionality
884 module-level global DEFAULT_SCHEME. The highlight functionality
881 also works when debugging.
885 also works when debugging.
882
886
883 * IPython/genutils.py (IOStream.close): small patch by
887 * IPython/genutils.py (IOStream.close): small patch by
884 R. Bernstein for improved pydb support.
888 R. Bernstein for improved pydb support.
885
889
886 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
890 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
887 DaveS <davls@telus.net> to improve support of debugging under
891 DaveS <davls@telus.net> to improve support of debugging under
888 NTEmacs, including improved pydb behavior.
892 NTEmacs, including improved pydb behavior.
889
893
890 * IPython/Magic.py (magic_prun): Fix saving of profile info for
894 * IPython/Magic.py (magic_prun): Fix saving of profile info for
891 Python 2.5, where the stats object API changed a little. Thanks
895 Python 2.5, where the stats object API changed a little. Thanks
892 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
896 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
893
897
894 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
898 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
895 Pernetty's patch to improve support for (X)Emacs under Win32.
899 Pernetty's patch to improve support for (X)Emacs under Win32.
896
900
897 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
901 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
898
902
899 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
903 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
900 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
904 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
901 a report by Nik Tautenhahn.
905 a report by Nik Tautenhahn.
902
906
903 2007-03-16 Walter Doerwald <walter@livinglogic.de>
907 2007-03-16 Walter Doerwald <walter@livinglogic.de>
904
908
905 * setup.py: Add the igrid help files to the list of data files
909 * setup.py: Add the igrid help files to the list of data files
906 to be installed alongside igrid.
910 to be installed alongside igrid.
907 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
911 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
908 Show the input object of the igrid browser as the window tile.
912 Show the input object of the igrid browser as the window tile.
909 Show the object the cursor is on in the statusbar.
913 Show the object the cursor is on in the statusbar.
910
914
911 2007-03-15 Ville Vainio <vivainio@gmail.com>
915 2007-03-15 Ville Vainio <vivainio@gmail.com>
912
916
913 * Extensions/ipy_stock_completers.py: Fixed exception
917 * Extensions/ipy_stock_completers.py: Fixed exception
914 on mismatching quotes in %run completer. Patch by
918 on mismatching quotes in %run completer. Patch by
915 Jorgen Stenarson. Closes #127.
919 Jorgen Stenarson. Closes #127.
916
920
917 2007-03-14 Ville Vainio <vivainio@gmail.com>
921 2007-03-14 Ville Vainio <vivainio@gmail.com>
918
922
919 * Extensions/ext_rehashdir.py: Do not do auto_alias
923 * Extensions/ext_rehashdir.py: Do not do auto_alias
920 in %rehashdir, it clobbers %store'd aliases.
924 in %rehashdir, it clobbers %store'd aliases.
921
925
922 * UserConfig/ipy_profile_sh.py: envpersist.py extension
926 * UserConfig/ipy_profile_sh.py: envpersist.py extension
923 (beefed up %env) imported for sh profile.
927 (beefed up %env) imported for sh profile.
924
928
925 2007-03-10 Walter Doerwald <walter@livinglogic.de>
929 2007-03-10 Walter Doerwald <walter@livinglogic.de>
926
930
927 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
931 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
928 as the default browser.
932 as the default browser.
929 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
933 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
930 As igrid displays all attributes it ever encounters, fetch() (which has
934 As igrid displays all attributes it ever encounters, fetch() (which has
931 been renamed to _fetch()) doesn't have to recalculate the display attributes
935 been renamed to _fetch()) doesn't have to recalculate the display attributes
932 every time a new item is fetched. This should speed up scrolling.
936 every time a new item is fetched. This should speed up scrolling.
933
937
934 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
938 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
935
939
936 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
940 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
937 Schmolck's recently reported tab-completion bug (my previous one
941 Schmolck's recently reported tab-completion bug (my previous one
938 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
942 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
939
943
940 2007-03-09 Walter Doerwald <walter@livinglogic.de>
944 2007-03-09 Walter Doerwald <walter@livinglogic.de>
941
945
942 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
946 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
943 Close help window if exiting igrid.
947 Close help window if exiting igrid.
944
948
945 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
949 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
946
950
947 * IPython/Extensions/ipy_defaults.py: Check if readline is available
951 * IPython/Extensions/ipy_defaults.py: Check if readline is available
948 before calling functions from readline.
952 before calling functions from readline.
949
953
950 2007-03-02 Walter Doerwald <walter@livinglogic.de>
954 2007-03-02 Walter Doerwald <walter@livinglogic.de>
951
955
952 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
956 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
953 igrid is a wxPython-based display object for ipipe. If your system has
957 igrid is a wxPython-based display object for ipipe. If your system has
954 wx installed igrid will be the default display. Without wx ipipe falls
958 wx installed igrid will be the default display. Without wx ipipe falls
955 back to ibrowse (which needs curses). If no curses is installed ipipe
959 back to ibrowse (which needs curses). If no curses is installed ipipe
956 falls back to idump.
960 falls back to idump.
957
961
958 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
962 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
959
963
960 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
964 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
961 my changes from yesterday, they introduced bugs. Will reactivate
965 my changes from yesterday, they introduced bugs. Will reactivate
962 once I get a correct solution, which will be much easier thanks to
966 once I get a correct solution, which will be much easier thanks to
963 Dan Milstein's new prefilter test suite.
967 Dan Milstein's new prefilter test suite.
964
968
965 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
969 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
966
970
967 * IPython/iplib.py (split_user_input): fix input splitting so we
971 * IPython/iplib.py (split_user_input): fix input splitting so we
968 don't attempt attribute accesses on things that can't possibly be
972 don't attempt attribute accesses on things that can't possibly be
969 valid Python attributes. After a bug report by Alex Schmolck.
973 valid Python attributes. After a bug report by Alex Schmolck.
970 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
974 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
971 %magic with explicit % prefix.
975 %magic with explicit % prefix.
972
976
973 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
977 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
974
978
975 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
979 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
976 avoid a DeprecationWarning from GTK.
980 avoid a DeprecationWarning from GTK.
977
981
978 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
982 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
979
983
980 * IPython/genutils.py (clock): I modified clock() to return total
984 * IPython/genutils.py (clock): I modified clock() to return total
981 time, user+system. This is a more commonly needed metric. I also
985 time, user+system. This is a more commonly needed metric. I also
982 introduced the new clocku/clocks to get only user/system time if
986 introduced the new clocku/clocks to get only user/system time if
983 one wants those instead.
987 one wants those instead.
984
988
985 ***WARNING: API CHANGE*** clock() used to return only user time,
989 ***WARNING: API CHANGE*** clock() used to return only user time,
986 so if you want exactly the same results as before, use clocku
990 so if you want exactly the same results as before, use clocku
987 instead.
991 instead.
988
992
989 2007-02-22 Ville Vainio <vivainio@gmail.com>
993 2007-02-22 Ville Vainio <vivainio@gmail.com>
990
994
991 * IPython/Extensions/ipy_p4.py: Extension for improved
995 * IPython/Extensions/ipy_p4.py: Extension for improved
992 p4 (perforce version control system) experience.
996 p4 (perforce version control system) experience.
993 Adds %p4 magic with p4 command completion and
997 Adds %p4 magic with p4 command completion and
994 automatic -G argument (marshall output as python dict)
998 automatic -G argument (marshall output as python dict)
995
999
996 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1000 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
997
1001
998 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1002 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
999 stop marks.
1003 stop marks.
1000 (ClearingMixin): a simple mixin to easily make a Demo class clear
1004 (ClearingMixin): a simple mixin to easily make a Demo class clear
1001 the screen in between blocks and have empty marquees. The
1005 the screen in between blocks and have empty marquees. The
1002 ClearDemo and ClearIPDemo classes that use it are included.
1006 ClearDemo and ClearIPDemo classes that use it are included.
1003
1007
1004 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1008 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1005
1009
1006 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1010 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1007 protect against exceptions at Python shutdown time. Patch
1011 protect against exceptions at Python shutdown time. Patch
1008 sumbmitted to upstream.
1012 sumbmitted to upstream.
1009
1013
1010 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1014 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1011
1015
1012 * IPython/Extensions/ibrowse.py: If entering the first object level
1016 * IPython/Extensions/ibrowse.py: If entering the first object level
1013 (i.e. the object for which the browser has been started) fails,
1017 (i.e. the object for which the browser has been started) fails,
1014 now the error is raised directly (aborting the browser) instead of
1018 now the error is raised directly (aborting the browser) instead of
1015 running into an empty levels list later.
1019 running into an empty levels list later.
1016
1020
1017 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1021 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1018
1022
1019 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1023 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1020 for the noitem object.
1024 for the noitem object.
1021
1025
1022 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1026 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1023
1027
1024 * IPython/completer.py (Completer.attr_matches): Fix small
1028 * IPython/completer.py (Completer.attr_matches): Fix small
1025 tab-completion bug with Enthought Traits objects with units.
1029 tab-completion bug with Enthought Traits objects with units.
1026 Thanks to a bug report by Tom Denniston
1030 Thanks to a bug report by Tom Denniston
1027 <tom.denniston-AT-alum.dartmouth.org>.
1031 <tom.denniston-AT-alum.dartmouth.org>.
1028
1032
1029 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1030
1034
1031 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1035 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1032 bug where only .ipy or .py would be completed. Once the first
1036 bug where only .ipy or .py would be completed. Once the first
1033 argument to %run has been given, all completions are valid because
1037 argument to %run has been given, all completions are valid because
1034 they are the arguments to the script, which may well be non-python
1038 they are the arguments to the script, which may well be non-python
1035 filenames.
1039 filenames.
1036
1040
1037 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1041 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1038 to irunner to allow it to correctly support real doctesting of
1042 to irunner to allow it to correctly support real doctesting of
1039 out-of-process ipython code.
1043 out-of-process ipython code.
1040
1044
1041 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1045 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1042 title an option (-noterm_title) because it completely breaks
1046 title an option (-noterm_title) because it completely breaks
1043 doctesting.
1047 doctesting.
1044
1048
1045 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1049 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1046
1050
1047 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1051 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1048
1052
1049 * IPython/irunner.py (main): fix small bug where extensions were
1053 * IPython/irunner.py (main): fix small bug where extensions were
1050 not being correctly recognized.
1054 not being correctly recognized.
1051
1055
1052 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1056 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1053
1057
1054 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1058 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1055 a string containing a single line yields the string itself as the
1059 a string containing a single line yields the string itself as the
1056 only item.
1060 only item.
1057
1061
1058 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1062 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1059 object if it's the same as the one on the last level (This avoids
1063 object if it's the same as the one on the last level (This avoids
1060 infinite recursion for one line strings).
1064 infinite recursion for one line strings).
1061
1065
1062 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1066 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1063
1067
1064 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1068 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1065 all output streams before printing tracebacks. This ensures that
1069 all output streams before printing tracebacks. This ensures that
1066 user output doesn't end up interleaved with traceback output.
1070 user output doesn't end up interleaved with traceback output.
1067
1071
1068 2007-01-10 Ville Vainio <vivainio@gmail.com>
1072 2007-01-10 Ville Vainio <vivainio@gmail.com>
1069
1073
1070 * Extensions/envpersist.py: Turbocharged %env that remembers
1074 * Extensions/envpersist.py: Turbocharged %env that remembers
1071 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1075 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1072 "%env VISUAL=jed".
1076 "%env VISUAL=jed".
1073
1077
1074 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1078 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1075
1079
1076 * IPython/iplib.py (showtraceback): ensure that we correctly call
1080 * IPython/iplib.py (showtraceback): ensure that we correctly call
1077 custom handlers in all cases (some with pdb were slipping through,
1081 custom handlers in all cases (some with pdb were slipping through,
1078 but I'm not exactly sure why).
1082 but I'm not exactly sure why).
1079
1083
1080 * IPython/Debugger.py (Tracer.__init__): added new class to
1084 * IPython/Debugger.py (Tracer.__init__): added new class to
1081 support set_trace-like usage of IPython's enhanced debugger.
1085 support set_trace-like usage of IPython's enhanced debugger.
1082
1086
1083 2006-12-24 Ville Vainio <vivainio@gmail.com>
1087 2006-12-24 Ville Vainio <vivainio@gmail.com>
1084
1088
1085 * ipmaker.py: more informative message when ipy_user_conf
1089 * ipmaker.py: more informative message when ipy_user_conf
1086 import fails (suggest running %upgrade).
1090 import fails (suggest running %upgrade).
1087
1091
1088 * tools/run_ipy_in_profiler.py: Utility to see where
1092 * tools/run_ipy_in_profiler.py: Utility to see where
1089 the time during IPython startup is spent.
1093 the time during IPython startup is spent.
1090
1094
1091 2006-12-20 Ville Vainio <vivainio@gmail.com>
1095 2006-12-20 Ville Vainio <vivainio@gmail.com>
1092
1096
1093 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1097 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1094
1098
1095 * ipapi.py: Add new ipapi method, expand_alias.
1099 * ipapi.py: Add new ipapi method, expand_alias.
1096
1100
1097 * Release.py: Bump up version to 0.7.4.svn
1101 * Release.py: Bump up version to 0.7.4.svn
1098
1102
1099 2006-12-17 Ville Vainio <vivainio@gmail.com>
1103 2006-12-17 Ville Vainio <vivainio@gmail.com>
1100
1104
1101 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1105 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1102 to work properly on posix too
1106 to work properly on posix too
1103
1107
1104 * Release.py: Update revnum (version is still just 0.7.3).
1108 * Release.py: Update revnum (version is still just 0.7.3).
1105
1109
1106 2006-12-15 Ville Vainio <vivainio@gmail.com>
1110 2006-12-15 Ville Vainio <vivainio@gmail.com>
1107
1111
1108 * scripts/ipython_win_post_install: create ipython.py in
1112 * scripts/ipython_win_post_install: create ipython.py in
1109 prefix + "/scripts".
1113 prefix + "/scripts".
1110
1114
1111 * Release.py: Update version to 0.7.3.
1115 * Release.py: Update version to 0.7.3.
1112
1116
1113 2006-12-14 Ville Vainio <vivainio@gmail.com>
1117 2006-12-14 Ville Vainio <vivainio@gmail.com>
1114
1118
1115 * scripts/ipython_win_post_install: Overwrite old shortcuts
1119 * scripts/ipython_win_post_install: Overwrite old shortcuts
1116 if they already exist
1120 if they already exist
1117
1121
1118 * Release.py: release 0.7.3rc2
1122 * Release.py: release 0.7.3rc2
1119
1123
1120 2006-12-13 Ville Vainio <vivainio@gmail.com>
1124 2006-12-13 Ville Vainio <vivainio@gmail.com>
1121
1125
1122 * Branch and update Release.py for 0.7.3rc1
1126 * Branch and update Release.py for 0.7.3rc1
1123
1127
1124 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1128 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1125
1129
1126 * IPython/Shell.py (IPShellWX): update for current WX naming
1130 * IPython/Shell.py (IPShellWX): update for current WX naming
1127 conventions, to avoid a deprecation warning with current WX
1131 conventions, to avoid a deprecation warning with current WX
1128 versions. Thanks to a report by Danny Shevitz.
1132 versions. Thanks to a report by Danny Shevitz.
1129
1133
1130 2006-12-12 Ville Vainio <vivainio@gmail.com>
1134 2006-12-12 Ville Vainio <vivainio@gmail.com>
1131
1135
1132 * ipmaker.py: apply david cournapeau's patch to make
1136 * ipmaker.py: apply david cournapeau's patch to make
1133 import_some work properly even when ipythonrc does
1137 import_some work properly even when ipythonrc does
1134 import_some on empty list (it was an old bug!).
1138 import_some on empty list (it was an old bug!).
1135
1139
1136 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1140 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1137 Add deprecation note to ipythonrc and a url to wiki
1141 Add deprecation note to ipythonrc and a url to wiki
1138 in ipy_user_conf.py
1142 in ipy_user_conf.py
1139
1143
1140
1144
1141 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1145 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1142 as if it was typed on IPython command prompt, i.e.
1146 as if it was typed on IPython command prompt, i.e.
1143 as IPython script.
1147 as IPython script.
1144
1148
1145 * example-magic.py, magic_grepl.py: remove outdated examples
1149 * example-magic.py, magic_grepl.py: remove outdated examples
1146
1150
1147 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1151 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1148
1152
1149 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1153 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1150 is called before any exception has occurred.
1154 is called before any exception has occurred.
1151
1155
1152 2006-12-08 Ville Vainio <vivainio@gmail.com>
1156 2006-12-08 Ville Vainio <vivainio@gmail.com>
1153
1157
1154 * Extensions/ipy_stock_completers.py: fix cd completer
1158 * Extensions/ipy_stock_completers.py: fix cd completer
1155 to translate /'s to \'s again.
1159 to translate /'s to \'s again.
1156
1160
1157 * completer.py: prevent traceback on file completions w/
1161 * completer.py: prevent traceback on file completions w/
1158 backslash.
1162 backslash.
1159
1163
1160 * Release.py: Update release number to 0.7.3b3 for release
1164 * Release.py: Update release number to 0.7.3b3 for release
1161
1165
1162 2006-12-07 Ville Vainio <vivainio@gmail.com>
1166 2006-12-07 Ville Vainio <vivainio@gmail.com>
1163
1167
1164 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1168 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1165 while executing external code. Provides more shell-like behaviour
1169 while executing external code. Provides more shell-like behaviour
1166 and overall better response to ctrl + C / ctrl + break.
1170 and overall better response to ctrl + C / ctrl + break.
1167
1171
1168 * tools/make_tarball.py: new script to create tarball straight from svn
1172 * tools/make_tarball.py: new script to create tarball straight from svn
1169 (setup.py sdist doesn't work on win32).
1173 (setup.py sdist doesn't work on win32).
1170
1174
1171 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1175 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1172 on dirnames with spaces and use the default completer instead.
1176 on dirnames with spaces and use the default completer instead.
1173
1177
1174 * Revision.py: Change version to 0.7.3b2 for release.
1178 * Revision.py: Change version to 0.7.3b2 for release.
1175
1179
1176 2006-12-05 Ville Vainio <vivainio@gmail.com>
1180 2006-12-05 Ville Vainio <vivainio@gmail.com>
1177
1181
1178 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1182 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1179 pydb patch 4 (rm debug printing, py 2.5 checking)
1183 pydb patch 4 (rm debug printing, py 2.5 checking)
1180
1184
1181 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1185 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1182 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1186 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1183 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1187 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1184 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1188 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1185 object the cursor was on before the refresh. The command "markrange" is
1189 object the cursor was on before the refresh. The command "markrange" is
1186 mapped to "%" now.
1190 mapped to "%" now.
1187 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1191 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1188
1192
1189 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1193 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1190
1194
1191 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1195 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1192 interactive debugger on the last traceback, without having to call
1196 interactive debugger on the last traceback, without having to call
1193 %pdb and rerun your code. Made minor changes in various modules,
1197 %pdb and rerun your code. Made minor changes in various modules,
1194 should automatically recognize pydb if available.
1198 should automatically recognize pydb if available.
1195
1199
1196 2006-11-28 Ville Vainio <vivainio@gmail.com>
1200 2006-11-28 Ville Vainio <vivainio@gmail.com>
1197
1201
1198 * completer.py: If the text start with !, show file completions
1202 * completer.py: If the text start with !, show file completions
1199 properly. This helps when trying to complete command name
1203 properly. This helps when trying to complete command name
1200 for shell escapes.
1204 for shell escapes.
1201
1205
1202 2006-11-27 Ville Vainio <vivainio@gmail.com>
1206 2006-11-27 Ville Vainio <vivainio@gmail.com>
1203
1207
1204 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1208 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1205 der Walt. Clean up svn and hg completers by using a common
1209 der Walt. Clean up svn and hg completers by using a common
1206 vcs_completer.
1210 vcs_completer.
1207
1211
1208 2006-11-26 Ville Vainio <vivainio@gmail.com>
1212 2006-11-26 Ville Vainio <vivainio@gmail.com>
1209
1213
1210 * Remove ipconfig and %config; you should use _ip.options structure
1214 * Remove ipconfig and %config; you should use _ip.options structure
1211 directly instead!
1215 directly instead!
1212
1216
1213 * genutils.py: add wrap_deprecated function for deprecating callables
1217 * genutils.py: add wrap_deprecated function for deprecating callables
1214
1218
1215 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1219 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1216 _ip.system instead. ipalias is redundant.
1220 _ip.system instead. ipalias is redundant.
1217
1221
1218 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1222 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1219 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1223 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1220 explicit.
1224 explicit.
1221
1225
1222 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1226 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1223 completer. Try it by entering 'hg ' and pressing tab.
1227 completer. Try it by entering 'hg ' and pressing tab.
1224
1228
1225 * macro.py: Give Macro a useful __repr__ method
1229 * macro.py: Give Macro a useful __repr__ method
1226
1230
1227 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1231 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1228
1232
1229 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1233 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1230 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1234 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1231 we don't get a duplicate ipipe module, where registration of the xrepr
1235 we don't get a duplicate ipipe module, where registration of the xrepr
1232 implementation for Text is useless.
1236 implementation for Text is useless.
1233
1237
1234 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1238 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1235
1239
1236 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1240 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1237
1241
1238 2006-11-24 Ville Vainio <vivainio@gmail.com>
1242 2006-11-24 Ville Vainio <vivainio@gmail.com>
1239
1243
1240 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1244 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1241 try to use "cProfile" instead of the slower pure python
1245 try to use "cProfile" instead of the slower pure python
1242 "profile"
1246 "profile"
1243
1247
1244 2006-11-23 Ville Vainio <vivainio@gmail.com>
1248 2006-11-23 Ville Vainio <vivainio@gmail.com>
1245
1249
1246 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1250 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1247 Qt+IPython+Designer link in documentation.
1251 Qt+IPython+Designer link in documentation.
1248
1252
1249 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1253 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1250 correct Pdb object to %pydb.
1254 correct Pdb object to %pydb.
1251
1255
1252
1256
1253 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1257 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1254 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1258 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1255 generic xrepr(), otherwise the list implementation would kick in.
1259 generic xrepr(), otherwise the list implementation would kick in.
1256
1260
1257 2006-11-21 Ville Vainio <vivainio@gmail.com>
1261 2006-11-21 Ville Vainio <vivainio@gmail.com>
1258
1262
1259 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1263 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1260 with one from UserConfig.
1264 with one from UserConfig.
1261
1265
1262 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1266 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1263 it was missing which broke the sh profile.
1267 it was missing which broke the sh profile.
1264
1268
1265 * completer.py: file completer now uses explicit '/' instead
1269 * completer.py: file completer now uses explicit '/' instead
1266 of os.path.join, expansion of 'foo' was broken on win32
1270 of os.path.join, expansion of 'foo' was broken on win32
1267 if there was one directory with name 'foobar'.
1271 if there was one directory with name 'foobar'.
1268
1272
1269 * A bunch of patches from Kirill Smelkov:
1273 * A bunch of patches from Kirill Smelkov:
1270
1274
1271 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1275 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1272
1276
1273 * [patch 7/9] Implement %page -r (page in raw mode) -
1277 * [patch 7/9] Implement %page -r (page in raw mode) -
1274
1278
1275 * [patch 5/9] ScientificPython webpage has moved
1279 * [patch 5/9] ScientificPython webpage has moved
1276
1280
1277 * [patch 4/9] The manual mentions %ds, should be %dhist
1281 * [patch 4/9] The manual mentions %ds, should be %dhist
1278
1282
1279 * [patch 3/9] Kill old bits from %prun doc.
1283 * [patch 3/9] Kill old bits from %prun doc.
1280
1284
1281 * [patch 1/9] Fix typos here and there.
1285 * [patch 1/9] Fix typos here and there.
1282
1286
1283 2006-11-08 Ville Vainio <vivainio@gmail.com>
1287 2006-11-08 Ville Vainio <vivainio@gmail.com>
1284
1288
1285 * completer.py (attr_matches): catch all exceptions raised
1289 * completer.py (attr_matches): catch all exceptions raised
1286 by eval of expr with dots.
1290 by eval of expr with dots.
1287
1291
1288 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1292 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1289
1293
1290 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1294 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1291 input if it starts with whitespace. This allows you to paste
1295 input if it starts with whitespace. This allows you to paste
1292 indented input from any editor without manually having to type in
1296 indented input from any editor without manually having to type in
1293 the 'if 1:', which is convenient when working interactively.
1297 the 'if 1:', which is convenient when working interactively.
1294 Slightly modifed version of a patch by Bo Peng
1298 Slightly modifed version of a patch by Bo Peng
1295 <bpeng-AT-rice.edu>.
1299 <bpeng-AT-rice.edu>.
1296
1300
1297 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1301 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1298
1302
1299 * IPython/irunner.py (main): modified irunner so it automatically
1303 * IPython/irunner.py (main): modified irunner so it automatically
1300 recognizes the right runner to use based on the extension (.py for
1304 recognizes the right runner to use based on the extension (.py for
1301 python, .ipy for ipython and .sage for sage).
1305 python, .ipy for ipython and .sage for sage).
1302
1306
1303 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1307 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1304 visible in ipapi as ip.config(), to programatically control the
1308 visible in ipapi as ip.config(), to programatically control the
1305 internal rc object. There's an accompanying %config magic for
1309 internal rc object. There's an accompanying %config magic for
1306 interactive use, which has been enhanced to match the
1310 interactive use, which has been enhanced to match the
1307 funtionality in ipconfig.
1311 funtionality in ipconfig.
1308
1312
1309 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1313 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1310 so it's not just a toggle, it now takes an argument. Add support
1314 so it's not just a toggle, it now takes an argument. Add support
1311 for a customizable header when making system calls, as the new
1315 for a customizable header when making system calls, as the new
1312 system_header variable in the ipythonrc file.
1316 system_header variable in the ipythonrc file.
1313
1317
1314 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1318 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1315
1319
1316 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1320 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1317 generic functions (using Philip J. Eby's simplegeneric package).
1321 generic functions (using Philip J. Eby's simplegeneric package).
1318 This makes it possible to customize the display of third-party classes
1322 This makes it possible to customize the display of third-party classes
1319 without having to monkeypatch them. xiter() no longer supports a mode
1323 without having to monkeypatch them. xiter() no longer supports a mode
1320 argument and the XMode class has been removed. The same functionality can
1324 argument and the XMode class has been removed. The same functionality can
1321 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1325 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1322 One consequence of the switch to generic functions is that xrepr() and
1326 One consequence of the switch to generic functions is that xrepr() and
1323 xattrs() implementation must define the default value for the mode
1327 xattrs() implementation must define the default value for the mode
1324 argument themselves and xattrs() implementations must return real
1328 argument themselves and xattrs() implementations must return real
1325 descriptors.
1329 descriptors.
1326
1330
1327 * IPython/external: This new subpackage will contain all third-party
1331 * IPython/external: This new subpackage will contain all third-party
1328 packages that are bundled with IPython. (The first one is simplegeneric).
1332 packages that are bundled with IPython. (The first one is simplegeneric).
1329
1333
1330 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1334 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1331 directory which as been dropped in r1703.
1335 directory which as been dropped in r1703.
1332
1336
1333 * IPython/Extensions/ipipe.py (iless): Fixed.
1337 * IPython/Extensions/ipipe.py (iless): Fixed.
1334
1338
1335 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1339 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1336
1340
1337 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1341 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1338
1342
1339 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1343 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1340 handling in variable expansion so that shells and magics recognize
1344 handling in variable expansion so that shells and magics recognize
1341 function local scopes correctly. Bug reported by Brian.
1345 function local scopes correctly. Bug reported by Brian.
1342
1346
1343 * scripts/ipython: remove the very first entry in sys.path which
1347 * scripts/ipython: remove the very first entry in sys.path which
1344 Python auto-inserts for scripts, so that sys.path under IPython is
1348 Python auto-inserts for scripts, so that sys.path under IPython is
1345 as similar as possible to that under plain Python.
1349 as similar as possible to that under plain Python.
1346
1350
1347 * IPython/completer.py (IPCompleter.file_matches): Fix
1351 * IPython/completer.py (IPCompleter.file_matches): Fix
1348 tab-completion so that quotes are not closed unless the completion
1352 tab-completion so that quotes are not closed unless the completion
1349 is unambiguous. After a request by Stefan. Minor cleanups in
1353 is unambiguous. After a request by Stefan. Minor cleanups in
1350 ipy_stock_completers.
1354 ipy_stock_completers.
1351
1355
1352 2006-11-02 Ville Vainio <vivainio@gmail.com>
1356 2006-11-02 Ville Vainio <vivainio@gmail.com>
1353
1357
1354 * ipy_stock_completers.py: Add %run and %cd completers.
1358 * ipy_stock_completers.py: Add %run and %cd completers.
1355
1359
1356 * completer.py: Try running custom completer for both
1360 * completer.py: Try running custom completer for both
1357 "foo" and "%foo" if the command is just "foo". Ignore case
1361 "foo" and "%foo" if the command is just "foo". Ignore case
1358 when filtering possible completions.
1362 when filtering possible completions.
1359
1363
1360 * UserConfig/ipy_user_conf.py: install stock completers as default
1364 * UserConfig/ipy_user_conf.py: install stock completers as default
1361
1365
1362 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1366 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1363 simplified readline history save / restore through a wrapper
1367 simplified readline history save / restore through a wrapper
1364 function
1368 function
1365
1369
1366
1370
1367 2006-10-31 Ville Vainio <vivainio@gmail.com>
1371 2006-10-31 Ville Vainio <vivainio@gmail.com>
1368
1372
1369 * strdispatch.py, completer.py, ipy_stock_completers.py:
1373 * strdispatch.py, completer.py, ipy_stock_completers.py:
1370 Allow str_key ("command") in completer hooks. Implement
1374 Allow str_key ("command") in completer hooks. Implement
1371 trivial completer for 'import' (stdlib modules only). Rename
1375 trivial completer for 'import' (stdlib modules only). Rename
1372 ipy_linux_package_managers.py to ipy_stock_completers.py.
1376 ipy_linux_package_managers.py to ipy_stock_completers.py.
1373 SVN completer.
1377 SVN completer.
1374
1378
1375 * Extensions/ledit.py: %magic line editor for easily and
1379 * Extensions/ledit.py: %magic line editor for easily and
1376 incrementally manipulating lists of strings. The magic command
1380 incrementally manipulating lists of strings. The magic command
1377 name is %led.
1381 name is %led.
1378
1382
1379 2006-10-30 Ville Vainio <vivainio@gmail.com>
1383 2006-10-30 Ville Vainio <vivainio@gmail.com>
1380
1384
1381 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1385 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1382 Bernsteins's patches for pydb integration.
1386 Bernsteins's patches for pydb integration.
1383 http://bashdb.sourceforge.net/pydb/
1387 http://bashdb.sourceforge.net/pydb/
1384
1388
1385 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1389 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1386 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1390 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1387 custom completer hook to allow the users to implement their own
1391 custom completer hook to allow the users to implement their own
1388 completers. See ipy_linux_package_managers.py for example. The
1392 completers. See ipy_linux_package_managers.py for example. The
1389 hook name is 'complete_command'.
1393 hook name is 'complete_command'.
1390
1394
1391 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1395 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1392
1396
1393 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1397 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1394 Numeric leftovers.
1398 Numeric leftovers.
1395
1399
1396 * ipython.el (py-execute-region): apply Stefan's patch to fix
1400 * ipython.el (py-execute-region): apply Stefan's patch to fix
1397 garbled results if the python shell hasn't been previously started.
1401 garbled results if the python shell hasn't been previously started.
1398
1402
1399 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1403 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1400 pretty generic function and useful for other things.
1404 pretty generic function and useful for other things.
1401
1405
1402 * IPython/OInspect.py (getsource): Add customizable source
1406 * IPython/OInspect.py (getsource): Add customizable source
1403 extractor. After a request/patch form W. Stein (SAGE).
1407 extractor. After a request/patch form W. Stein (SAGE).
1404
1408
1405 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1409 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1406 window size to a more reasonable value from what pexpect does,
1410 window size to a more reasonable value from what pexpect does,
1407 since their choice causes wrapping bugs with long input lines.
1411 since their choice causes wrapping bugs with long input lines.
1408
1412
1409 2006-10-28 Ville Vainio <vivainio@gmail.com>
1413 2006-10-28 Ville Vainio <vivainio@gmail.com>
1410
1414
1411 * Magic.py (%run): Save and restore the readline history from
1415 * Magic.py (%run): Save and restore the readline history from
1412 file around %run commands to prevent side effects from
1416 file around %run commands to prevent side effects from
1413 %runned programs that might use readline (e.g. pydb).
1417 %runned programs that might use readline (e.g. pydb).
1414
1418
1415 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1419 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1416 invoking the pydb enhanced debugger.
1420 invoking the pydb enhanced debugger.
1417
1421
1418 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1422 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1419
1423
1420 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1424 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1421 call the base class method and propagate the return value to
1425 call the base class method and propagate the return value to
1422 ifile. This is now done by path itself.
1426 ifile. This is now done by path itself.
1423
1427
1424 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1428 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1425
1429
1426 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1430 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1427 api: set_crash_handler(), to expose the ability to change the
1431 api: set_crash_handler(), to expose the ability to change the
1428 internal crash handler.
1432 internal crash handler.
1429
1433
1430 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1434 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1431 the various parameters of the crash handler so that apps using
1435 the various parameters of the crash handler so that apps using
1432 IPython as their engine can customize crash handling. Ipmlemented
1436 IPython as their engine can customize crash handling. Ipmlemented
1433 at the request of SAGE.
1437 at the request of SAGE.
1434
1438
1435 2006-10-14 Ville Vainio <vivainio@gmail.com>
1439 2006-10-14 Ville Vainio <vivainio@gmail.com>
1436
1440
1437 * Magic.py, ipython.el: applied first "safe" part of Rocky
1441 * Magic.py, ipython.el: applied first "safe" part of Rocky
1438 Bernstein's patch set for pydb integration.
1442 Bernstein's patch set for pydb integration.
1439
1443
1440 * Magic.py (%unalias, %alias): %store'd aliases can now be
1444 * Magic.py (%unalias, %alias): %store'd aliases can now be
1441 removed with '%unalias'. %alias w/o args now shows most
1445 removed with '%unalias'. %alias w/o args now shows most
1442 interesting (stored / manually defined) aliases last
1446 interesting (stored / manually defined) aliases last
1443 where they catch the eye w/o scrolling.
1447 where they catch the eye w/o scrolling.
1444
1448
1445 * Magic.py (%rehashx), ext_rehashdir.py: files with
1449 * Magic.py (%rehashx), ext_rehashdir.py: files with
1446 'py' extension are always considered executable, even
1450 'py' extension are always considered executable, even
1447 when not in PATHEXT environment variable.
1451 when not in PATHEXT environment variable.
1448
1452
1449 2006-10-12 Ville Vainio <vivainio@gmail.com>
1453 2006-10-12 Ville Vainio <vivainio@gmail.com>
1450
1454
1451 * jobctrl.py: Add new "jobctrl" extension for spawning background
1455 * jobctrl.py: Add new "jobctrl" extension for spawning background
1452 processes with "&find /". 'import jobctrl' to try it out. Requires
1456 processes with "&find /". 'import jobctrl' to try it out. Requires
1453 'subprocess' module, standard in python 2.4+.
1457 'subprocess' module, standard in python 2.4+.
1454
1458
1455 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1459 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1456 so if foo -> bar and bar -> baz, then foo -> baz.
1460 so if foo -> bar and bar -> baz, then foo -> baz.
1457
1461
1458 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1462 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1459
1463
1460 * IPython/Magic.py (Magic.parse_options): add a new posix option
1464 * IPython/Magic.py (Magic.parse_options): add a new posix option
1461 to allow parsing of input args in magics that doesn't strip quotes
1465 to allow parsing of input args in magics that doesn't strip quotes
1462 (if posix=False). This also closes %timeit bug reported by
1466 (if posix=False). This also closes %timeit bug reported by
1463 Stefan.
1467 Stefan.
1464
1468
1465 2006-10-03 Ville Vainio <vivainio@gmail.com>
1469 2006-10-03 Ville Vainio <vivainio@gmail.com>
1466
1470
1467 * iplib.py (raw_input, interact): Return ValueError catching for
1471 * iplib.py (raw_input, interact): Return ValueError catching for
1468 raw_input. Fixes infinite loop for sys.stdin.close() or
1472 raw_input. Fixes infinite loop for sys.stdin.close() or
1469 sys.stdout.close().
1473 sys.stdout.close().
1470
1474
1471 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1475 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1472
1476
1473 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1477 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1474 to help in handling doctests. irunner is now pretty useful for
1478 to help in handling doctests. irunner is now pretty useful for
1475 running standalone scripts and simulate a full interactive session
1479 running standalone scripts and simulate a full interactive session
1476 in a format that can be then pasted as a doctest.
1480 in a format that can be then pasted as a doctest.
1477
1481
1478 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1482 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1479 on top of the default (useless) ones. This also fixes the nasty
1483 on top of the default (useless) ones. This also fixes the nasty
1480 way in which 2.5's Quitter() exits (reverted [1785]).
1484 way in which 2.5's Quitter() exits (reverted [1785]).
1481
1485
1482 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1486 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1483 2.5.
1487 2.5.
1484
1488
1485 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1489 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1486 color scheme is updated as well when color scheme is changed
1490 color scheme is updated as well when color scheme is changed
1487 interactively.
1491 interactively.
1488
1492
1489 2006-09-27 Ville Vainio <vivainio@gmail.com>
1493 2006-09-27 Ville Vainio <vivainio@gmail.com>
1490
1494
1491 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1495 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1492 infinite loop and just exit. It's a hack, but will do for a while.
1496 infinite loop and just exit. It's a hack, but will do for a while.
1493
1497
1494 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1498 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1495
1499
1496 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1500 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1497 the constructor, this makes it possible to get a list of only directories
1501 the constructor, this makes it possible to get a list of only directories
1498 or only files.
1502 or only files.
1499
1503
1500 2006-08-12 Ville Vainio <vivainio@gmail.com>
1504 2006-08-12 Ville Vainio <vivainio@gmail.com>
1501
1505
1502 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1506 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1503 they broke unittest
1507 they broke unittest
1504
1508
1505 2006-08-11 Ville Vainio <vivainio@gmail.com>
1509 2006-08-11 Ville Vainio <vivainio@gmail.com>
1506
1510
1507 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1511 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1508 by resolving issue properly, i.e. by inheriting FakeModule
1512 by resolving issue properly, i.e. by inheriting FakeModule
1509 from types.ModuleType. Pickling ipython interactive data
1513 from types.ModuleType. Pickling ipython interactive data
1510 should still work as usual (testing appreciated).
1514 should still work as usual (testing appreciated).
1511
1515
1512 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1516 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1517
1514 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1518 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1515 running under python 2.3 with code from 2.4 to fix a bug with
1519 running under python 2.3 with code from 2.4 to fix a bug with
1516 help(). Reported by the Debian maintainers, Norbert Tretkowski
1520 help(). Reported by the Debian maintainers, Norbert Tretkowski
1517 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1521 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1518 <afayolle-AT-debian.org>.
1522 <afayolle-AT-debian.org>.
1519
1523
1520 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1524 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1521
1525
1522 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1526 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1523 (which was displaying "quit" twice).
1527 (which was displaying "quit" twice).
1524
1528
1525 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1529 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1526
1530
1527 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1531 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1528 the mode argument).
1532 the mode argument).
1529
1533
1530 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1534 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1531
1535
1532 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1536 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1533 not running under IPython.
1537 not running under IPython.
1534
1538
1535 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1539 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1536 and make it iterable (iterating over the attribute itself). Add two new
1540 and make it iterable (iterating over the attribute itself). Add two new
1537 magic strings for __xattrs__(): If the string starts with "-", the attribute
1541 magic strings for __xattrs__(): If the string starts with "-", the attribute
1538 will not be displayed in ibrowse's detail view (but it can still be
1542 will not be displayed in ibrowse's detail view (but it can still be
1539 iterated over). This makes it possible to add attributes that are large
1543 iterated over). This makes it possible to add attributes that are large
1540 lists or generator methods to the detail view. Replace magic attribute names
1544 lists or generator methods to the detail view. Replace magic attribute names
1541 and _attrname() and _getattr() with "descriptors": For each type of magic
1545 and _attrname() and _getattr() with "descriptors": For each type of magic
1542 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1546 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1543 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1547 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1544 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1548 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1545 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1549 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1546 are still supported.
1550 are still supported.
1547
1551
1548 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1552 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1549 fails in ibrowse.fetch(), the exception object is added as the last item
1553 fails in ibrowse.fetch(), the exception object is added as the last item
1550 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1554 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1551 a generator throws an exception midway through execution.
1555 a generator throws an exception midway through execution.
1552
1556
1553 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1557 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1554 encoding into methods.
1558 encoding into methods.
1555
1559
1556 2006-07-26 Ville Vainio <vivainio@gmail.com>
1560 2006-07-26 Ville Vainio <vivainio@gmail.com>
1557
1561
1558 * iplib.py: history now stores multiline input as single
1562 * iplib.py: history now stores multiline input as single
1559 history entries. Patch by Jorgen Cederlof.
1563 history entries. Patch by Jorgen Cederlof.
1560
1564
1561 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1565 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1562
1566
1563 * IPython/Extensions/ibrowse.py: Make cursor visible over
1567 * IPython/Extensions/ibrowse.py: Make cursor visible over
1564 non existing attributes.
1568 non existing attributes.
1565
1569
1566 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1570 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1567
1571
1568 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1572 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1569 error output of the running command doesn't mess up the screen.
1573 error output of the running command doesn't mess up the screen.
1570
1574
1571 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1575 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1572
1576
1573 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1577 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1574 argument. This sorts the items themselves.
1578 argument. This sorts the items themselves.
1575
1579
1576 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1580 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1577
1581
1578 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1582 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1579 Compile expression strings into code objects. This should speed
1583 Compile expression strings into code objects. This should speed
1580 up ifilter and friends somewhat.
1584 up ifilter and friends somewhat.
1581
1585
1582 2006-07-08 Ville Vainio <vivainio@gmail.com>
1586 2006-07-08 Ville Vainio <vivainio@gmail.com>
1583
1587
1584 * Magic.py: %cpaste now strips > from the beginning of lines
1588 * Magic.py: %cpaste now strips > from the beginning of lines
1585 to ease pasting quoted code from emails. Contributed by
1589 to ease pasting quoted code from emails. Contributed by
1586 Stefan van der Walt.
1590 Stefan van der Walt.
1587
1591
1588 2006-06-29 Ville Vainio <vivainio@gmail.com>
1592 2006-06-29 Ville Vainio <vivainio@gmail.com>
1589
1593
1590 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1594 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1591 mode, patch contributed by Darren Dale. NEEDS TESTING!
1595 mode, patch contributed by Darren Dale. NEEDS TESTING!
1592
1596
1593 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1597 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1594
1598
1595 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1599 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1596 a blue background. Fix fetching new display rows when the browser
1600 a blue background. Fix fetching new display rows when the browser
1597 scrolls more than a screenful (e.g. by using the goto command).
1601 scrolls more than a screenful (e.g. by using the goto command).
1598
1602
1599 2006-06-27 Ville Vainio <vivainio@gmail.com>
1603 2006-06-27 Ville Vainio <vivainio@gmail.com>
1600
1604
1601 * Magic.py (_inspect, _ofind) Apply David Huard's
1605 * Magic.py (_inspect, _ofind) Apply David Huard's
1602 patch for displaying the correct docstring for 'property'
1606 patch for displaying the correct docstring for 'property'
1603 attributes.
1607 attributes.
1604
1608
1605 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1609 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1606
1610
1607 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1611 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1608 commands into the methods implementing them.
1612 commands into the methods implementing them.
1609
1613
1610 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1614 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1611
1615
1612 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1616 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1613 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1617 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1614 autoindent support was authored by Jin Liu.
1618 autoindent support was authored by Jin Liu.
1615
1619
1616 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1620 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1617
1621
1618 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1622 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1619 for keymaps with a custom class that simplifies handling.
1623 for keymaps with a custom class that simplifies handling.
1620
1624
1621 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1625 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1622
1626
1623 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1627 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1624 resizing. This requires Python 2.5 to work.
1628 resizing. This requires Python 2.5 to work.
1625
1629
1626 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1630 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1627
1631
1628 * IPython/Extensions/ibrowse.py: Add two new commands to
1632 * IPython/Extensions/ibrowse.py: Add two new commands to
1629 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1633 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1630 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1634 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1631 attributes again. Remapped the help command to "?". Display
1635 attributes again. Remapped the help command to "?". Display
1632 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1636 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1633 as keys for the "home" and "end" commands. Add three new commands
1637 as keys for the "home" and "end" commands. Add three new commands
1634 to the input mode for "find" and friends: "delend" (CTRL-K)
1638 to the input mode for "find" and friends: "delend" (CTRL-K)
1635 deletes to the end of line. "incsearchup" searches upwards in the
1639 deletes to the end of line. "incsearchup" searches upwards in the
1636 command history for an input that starts with the text before the cursor.
1640 command history for an input that starts with the text before the cursor.
1637 "incsearchdown" does the same downwards. Removed a bogus mapping of
1641 "incsearchdown" does the same downwards. Removed a bogus mapping of
1638 the x key to "delete".
1642 the x key to "delete".
1639
1643
1640 2006-06-15 Ville Vainio <vivainio@gmail.com>
1644 2006-06-15 Ville Vainio <vivainio@gmail.com>
1641
1645
1642 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1646 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1643 used to create prompts dynamically, instead of the "old" way of
1647 used to create prompts dynamically, instead of the "old" way of
1644 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1648 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1645 way still works (it's invoked by the default hook), of course.
1649 way still works (it's invoked by the default hook), of course.
1646
1650
1647 * Prompts.py: added generate_output_prompt hook for altering output
1651 * Prompts.py: added generate_output_prompt hook for altering output
1648 prompt
1652 prompt
1649
1653
1650 * Release.py: Changed version string to 0.7.3.svn.
1654 * Release.py: Changed version string to 0.7.3.svn.
1651
1655
1652 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1656 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1653
1657
1654 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1658 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1655 the call to fetch() always tries to fetch enough data for at least one
1659 the call to fetch() always tries to fetch enough data for at least one
1656 full screen. This makes it possible to simply call moveto(0,0,True) in
1660 full screen. This makes it possible to simply call moveto(0,0,True) in
1657 the constructor. Fix typos and removed the obsolete goto attribute.
1661 the constructor. Fix typos and removed the obsolete goto attribute.
1658
1662
1659 2006-06-12 Ville Vainio <vivainio@gmail.com>
1663 2006-06-12 Ville Vainio <vivainio@gmail.com>
1660
1664
1661 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1665 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1662 allowing $variable interpolation within multiline statements,
1666 allowing $variable interpolation within multiline statements,
1663 though so far only with "sh" profile for a testing period.
1667 though so far only with "sh" profile for a testing period.
1664 The patch also enables splitting long commands with \ but it
1668 The patch also enables splitting long commands with \ but it
1665 doesn't work properly yet.
1669 doesn't work properly yet.
1666
1670
1667 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1671 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1668
1672
1669 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1673 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1670 input history and the position of the cursor in the input history for
1674 input history and the position of the cursor in the input history for
1671 the find, findbackwards and goto command.
1675 the find, findbackwards and goto command.
1672
1676
1673 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1677 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1674
1678
1675 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1679 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1676 implements the basic functionality of browser commands that require
1680 implements the basic functionality of browser commands that require
1677 input. Reimplement the goto, find and findbackwards commands as
1681 input. Reimplement the goto, find and findbackwards commands as
1678 subclasses of _CommandInput. Add an input history and keymaps to those
1682 subclasses of _CommandInput. Add an input history and keymaps to those
1679 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1683 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1680 execute commands.
1684 execute commands.
1681
1685
1682 2006-06-07 Ville Vainio <vivainio@gmail.com>
1686 2006-06-07 Ville Vainio <vivainio@gmail.com>
1683
1687
1684 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1688 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1685 running the batch files instead of leaving the session open.
1689 running the batch files instead of leaving the session open.
1686
1690
1687 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1691 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1692
1689 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1693 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1690 the original fix was incomplete. Patch submitted by W. Maier.
1694 the original fix was incomplete. Patch submitted by W. Maier.
1691
1695
1692 2006-06-07 Ville Vainio <vivainio@gmail.com>
1696 2006-06-07 Ville Vainio <vivainio@gmail.com>
1693
1697
1694 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1698 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1695 Confirmation prompts can be supressed by 'quiet' option.
1699 Confirmation prompts can be supressed by 'quiet' option.
1696 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1700 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1697
1701
1698 2006-06-06 *** Released version 0.7.2
1702 2006-06-06 *** Released version 0.7.2
1699
1703
1700 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1704 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1701
1705
1702 * IPython/Release.py (version): Made 0.7.2 final for release.
1706 * IPython/Release.py (version): Made 0.7.2 final for release.
1703 Repo tagged and release cut.
1707 Repo tagged and release cut.
1704
1708
1705 2006-06-05 Ville Vainio <vivainio@gmail.com>
1709 2006-06-05 Ville Vainio <vivainio@gmail.com>
1706
1710
1707 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1711 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1708 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1712 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1709
1713
1710 * upgrade_dir.py: try import 'path' module a bit harder
1714 * upgrade_dir.py: try import 'path' module a bit harder
1711 (for %upgrade)
1715 (for %upgrade)
1712
1716
1713 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1717 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1714
1718
1715 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1719 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1716 instead of looping 20 times.
1720 instead of looping 20 times.
1717
1721
1718 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1722 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1719 correctly at initialization time. Bug reported by Krishna Mohan
1723 correctly at initialization time. Bug reported by Krishna Mohan
1720 Gundu <gkmohan-AT-gmail.com> on the user list.
1724 Gundu <gkmohan-AT-gmail.com> on the user list.
1721
1725
1722 * IPython/Release.py (version): Mark 0.7.2 version to start
1726 * IPython/Release.py (version): Mark 0.7.2 version to start
1723 testing for release on 06/06.
1727 testing for release on 06/06.
1724
1728
1725 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1729 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1726
1730
1727 * scripts/irunner: thin script interface so users don't have to
1731 * scripts/irunner: thin script interface so users don't have to
1728 find the module and call it as an executable, since modules rarely
1732 find the module and call it as an executable, since modules rarely
1729 live in people's PATH.
1733 live in people's PATH.
1730
1734
1731 * IPython/irunner.py (InteractiveRunner.__init__): added
1735 * IPython/irunner.py (InteractiveRunner.__init__): added
1732 delaybeforesend attribute to control delays with newer versions of
1736 delaybeforesend attribute to control delays with newer versions of
1733 pexpect. Thanks to detailed help from pexpect's author, Noah
1737 pexpect. Thanks to detailed help from pexpect's author, Noah
1734 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1738 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1735 correctly (it works in NoColor mode).
1739 correctly (it works in NoColor mode).
1736
1740
1737 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1741 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1738 SAGE list, from improper log() calls.
1742 SAGE list, from improper log() calls.
1739
1743
1740 2006-05-31 Ville Vainio <vivainio@gmail.com>
1744 2006-05-31 Ville Vainio <vivainio@gmail.com>
1741
1745
1742 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1746 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1743 with args in parens to work correctly with dirs that have spaces.
1747 with args in parens to work correctly with dirs that have spaces.
1744
1748
1745 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1749 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1746
1750
1747 * IPython/Logger.py (Logger.logstart): add option to log raw input
1751 * IPython/Logger.py (Logger.logstart): add option to log raw input
1748 instead of the processed one. A -r flag was added to the
1752 instead of the processed one. A -r flag was added to the
1749 %logstart magic used for controlling logging.
1753 %logstart magic used for controlling logging.
1750
1754
1751 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1755 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1752
1756
1753 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1757 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1754 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1758 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1755 recognize the option. After a bug report by Will Maier. This
1759 recognize the option. After a bug report by Will Maier. This
1756 closes #64 (will do it after confirmation from W. Maier).
1760 closes #64 (will do it after confirmation from W. Maier).
1757
1761
1758 * IPython/irunner.py: New module to run scripts as if manually
1762 * IPython/irunner.py: New module to run scripts as if manually
1759 typed into an interactive environment, based on pexpect. After a
1763 typed into an interactive environment, based on pexpect. After a
1760 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1764 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1761 ipython-user list. Simple unittests in the tests/ directory.
1765 ipython-user list. Simple unittests in the tests/ directory.
1762
1766
1763 * tools/release: add Will Maier, OpenBSD port maintainer, to
1767 * tools/release: add Will Maier, OpenBSD port maintainer, to
1764 recepients list. We are now officially part of the OpenBSD ports:
1768 recepients list. We are now officially part of the OpenBSD ports:
1765 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1769 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1766 work.
1770 work.
1767
1771
1768 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1772 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1769
1773
1770 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1774 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1771 so that it doesn't break tkinter apps.
1775 so that it doesn't break tkinter apps.
1772
1776
1773 * IPython/iplib.py (_prefilter): fix bug where aliases would
1777 * IPython/iplib.py (_prefilter): fix bug where aliases would
1774 shadow variables when autocall was fully off. Reported by SAGE
1778 shadow variables when autocall was fully off. Reported by SAGE
1775 author William Stein.
1779 author William Stein.
1776
1780
1777 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1781 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1778 at what detail level strings are computed when foo? is requested.
1782 at what detail level strings are computed when foo? is requested.
1779 This allows users to ask for example that the string form of an
1783 This allows users to ask for example that the string form of an
1780 object is only computed when foo?? is called, or even never, by
1784 object is only computed when foo?? is called, or even never, by
1781 setting the object_info_string_level >= 2 in the configuration
1785 setting the object_info_string_level >= 2 in the configuration
1782 file. This new option has been added and documented. After a
1786 file. This new option has been added and documented. After a
1783 request by SAGE to be able to control the printing of very large
1787 request by SAGE to be able to control the printing of very large
1784 objects more easily.
1788 objects more easily.
1785
1789
1786 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1790 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1787
1791
1788 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1792 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1789 from sys.argv, to be 100% consistent with how Python itself works
1793 from sys.argv, to be 100% consistent with how Python itself works
1790 (as seen for example with python -i file.py). After a bug report
1794 (as seen for example with python -i file.py). After a bug report
1791 by Jeffrey Collins.
1795 by Jeffrey Collins.
1792
1796
1793 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1797 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1794 nasty bug which was preventing custom namespaces with -pylab,
1798 nasty bug which was preventing custom namespaces with -pylab,
1795 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1799 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1796 compatibility (long gone from mpl).
1800 compatibility (long gone from mpl).
1797
1801
1798 * IPython/ipapi.py (make_session): name change: create->make. We
1802 * IPython/ipapi.py (make_session): name change: create->make. We
1799 use make in other places (ipmaker,...), it's shorter and easier to
1803 use make in other places (ipmaker,...), it's shorter and easier to
1800 type and say, etc. I'm trying to clean things before 0.7.2 so
1804 type and say, etc. I'm trying to clean things before 0.7.2 so
1801 that I can keep things stable wrt to ipapi in the chainsaw branch.
1805 that I can keep things stable wrt to ipapi in the chainsaw branch.
1802
1806
1803 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1807 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1804 python-mode recognizes our debugger mode. Add support for
1808 python-mode recognizes our debugger mode. Add support for
1805 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1809 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1806 <m.liu.jin-AT-gmail.com> originally written by
1810 <m.liu.jin-AT-gmail.com> originally written by
1807 doxgen-AT-newsmth.net (with minor modifications for xemacs
1811 doxgen-AT-newsmth.net (with minor modifications for xemacs
1808 compatibility)
1812 compatibility)
1809
1813
1810 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1814 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1811 tracebacks when walking the stack so that the stack tracking system
1815 tracebacks when walking the stack so that the stack tracking system
1812 in emacs' python-mode can identify the frames correctly.
1816 in emacs' python-mode can identify the frames correctly.
1813
1817
1814 * IPython/ipmaker.py (make_IPython): make the internal (and
1818 * IPython/ipmaker.py (make_IPython): make the internal (and
1815 default config) autoedit_syntax value false by default. Too many
1819 default config) autoedit_syntax value false by default. Too many
1816 users have complained to me (both on and off-list) about problems
1820 users have complained to me (both on and off-list) about problems
1817 with this option being on by default, so I'm making it default to
1821 with this option being on by default, so I'm making it default to
1818 off. It can still be enabled by anyone via the usual mechanisms.
1822 off. It can still be enabled by anyone via the usual mechanisms.
1819
1823
1820 * IPython/completer.py (Completer.attr_matches): add support for
1824 * IPython/completer.py (Completer.attr_matches): add support for
1821 PyCrust-style _getAttributeNames magic method. Patch contributed
1825 PyCrust-style _getAttributeNames magic method. Patch contributed
1822 by <mscott-AT-goldenspud.com>. Closes #50.
1826 by <mscott-AT-goldenspud.com>. Closes #50.
1823
1827
1824 * IPython/iplib.py (InteractiveShell.__init__): remove the
1828 * IPython/iplib.py (InteractiveShell.__init__): remove the
1825 deletion of exit/quit from __builtin__, which can break
1829 deletion of exit/quit from __builtin__, which can break
1826 third-party tools like the Zope debugging console. The
1830 third-party tools like the Zope debugging console. The
1827 %exit/%quit magics remain. In general, it's probably a good idea
1831 %exit/%quit magics remain. In general, it's probably a good idea
1828 not to delete anything from __builtin__, since we never know what
1832 not to delete anything from __builtin__, since we never know what
1829 that will break. In any case, python now (for 2.5) will support
1833 that will break. In any case, python now (for 2.5) will support
1830 'real' exit/quit, so this issue is moot. Closes #55.
1834 'real' exit/quit, so this issue is moot. Closes #55.
1831
1835
1832 * IPython/genutils.py (with_obj): rename the 'with' function to
1836 * IPython/genutils.py (with_obj): rename the 'with' function to
1833 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1837 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1834 becomes a language keyword. Closes #53.
1838 becomes a language keyword. Closes #53.
1835
1839
1836 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1840 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1837 __file__ attribute to this so it fools more things into thinking
1841 __file__ attribute to this so it fools more things into thinking
1838 it is a real module. Closes #59.
1842 it is a real module. Closes #59.
1839
1843
1840 * IPython/Magic.py (magic_edit): add -n option to open the editor
1844 * IPython/Magic.py (magic_edit): add -n option to open the editor
1841 at a specific line number. After a patch by Stefan van der Walt.
1845 at a specific line number. After a patch by Stefan van der Walt.
1842
1846
1843 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1847 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1844
1848
1845 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1849 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1846 reason the file could not be opened. After automatic crash
1850 reason the file could not be opened. After automatic crash
1847 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1851 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1848 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1852 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1849 (_should_recompile): Don't fire editor if using %bg, since there
1853 (_should_recompile): Don't fire editor if using %bg, since there
1850 is no file in the first place. From the same report as above.
1854 is no file in the first place. From the same report as above.
1851 (raw_input): protect against faulty third-party prefilters. After
1855 (raw_input): protect against faulty third-party prefilters. After
1852 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1856 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1853 while running under SAGE.
1857 while running under SAGE.
1854
1858
1855 2006-05-23 Ville Vainio <vivainio@gmail.com>
1859 2006-05-23 Ville Vainio <vivainio@gmail.com>
1856
1860
1857 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1861 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1858 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1862 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1859 now returns None (again), unless dummy is specifically allowed by
1863 now returns None (again), unless dummy is specifically allowed by
1860 ipapi.get(allow_dummy=True).
1864 ipapi.get(allow_dummy=True).
1861
1865
1862 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1866 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1863
1867
1864 * IPython: remove all 2.2-compatibility objects and hacks from
1868 * IPython: remove all 2.2-compatibility objects and hacks from
1865 everywhere, since we only support 2.3 at this point. Docs
1869 everywhere, since we only support 2.3 at this point. Docs
1866 updated.
1870 updated.
1867
1871
1868 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1872 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1869 Anything requiring extra validation can be turned into a Python
1873 Anything requiring extra validation can be turned into a Python
1870 property in the future. I used a property for the db one b/c
1874 property in the future. I used a property for the db one b/c
1871 there was a nasty circularity problem with the initialization
1875 there was a nasty circularity problem with the initialization
1872 order, which right now I don't have time to clean up.
1876 order, which right now I don't have time to clean up.
1873
1877
1874 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1878 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1875 another locking bug reported by Jorgen. I'm not 100% sure though,
1879 another locking bug reported by Jorgen. I'm not 100% sure though,
1876 so more testing is needed...
1880 so more testing is needed...
1877
1881
1878 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1882 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1879
1883
1880 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1884 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1881 local variables from any routine in user code (typically executed
1885 local variables from any routine in user code (typically executed
1882 with %run) directly into the interactive namespace. Very useful
1886 with %run) directly into the interactive namespace. Very useful
1883 when doing complex debugging.
1887 when doing complex debugging.
1884 (IPythonNotRunning): Changed the default None object to a dummy
1888 (IPythonNotRunning): Changed the default None object to a dummy
1885 whose attributes can be queried as well as called without
1889 whose attributes can be queried as well as called without
1886 exploding, to ease writing code which works transparently both in
1890 exploding, to ease writing code which works transparently both in
1887 and out of ipython and uses some of this API.
1891 and out of ipython and uses some of this API.
1888
1892
1889 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1893 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1890
1894
1891 * IPython/hooks.py (result_display): Fix the fact that our display
1895 * IPython/hooks.py (result_display): Fix the fact that our display
1892 hook was using str() instead of repr(), as the default python
1896 hook was using str() instead of repr(), as the default python
1893 console does. This had gone unnoticed b/c it only happened if
1897 console does. This had gone unnoticed b/c it only happened if
1894 %Pprint was off, but the inconsistency was there.
1898 %Pprint was off, but the inconsistency was there.
1895
1899
1896 2006-05-15 Ville Vainio <vivainio@gmail.com>
1900 2006-05-15 Ville Vainio <vivainio@gmail.com>
1897
1901
1898 * Oinspect.py: Only show docstring for nonexisting/binary files
1902 * Oinspect.py: Only show docstring for nonexisting/binary files
1899 when doing object??, closing ticket #62
1903 when doing object??, closing ticket #62
1900
1904
1901 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1905 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1902
1906
1903 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1907 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1904 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1908 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1905 was being released in a routine which hadn't checked if it had
1909 was being released in a routine which hadn't checked if it had
1906 been the one to acquire it.
1910 been the one to acquire it.
1907
1911
1908 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1912 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1909
1913
1910 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1914 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1911
1915
1912 2006-04-11 Ville Vainio <vivainio@gmail.com>
1916 2006-04-11 Ville Vainio <vivainio@gmail.com>
1913
1917
1914 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1918 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1915 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1919 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1916 prefilters, allowing stuff like magics and aliases in the file.
1920 prefilters, allowing stuff like magics and aliases in the file.
1917
1921
1918 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1922 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1919 added. Supported now are "%clear in" and "%clear out" (clear input and
1923 added. Supported now are "%clear in" and "%clear out" (clear input and
1920 output history, respectively). Also fixed CachedOutput.flush to
1924 output history, respectively). Also fixed CachedOutput.flush to
1921 properly flush the output cache.
1925 properly flush the output cache.
1922
1926
1923 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1927 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1924 half-success (and fail explicitly).
1928 half-success (and fail explicitly).
1925
1929
1926 2006-03-28 Ville Vainio <vivainio@gmail.com>
1930 2006-03-28 Ville Vainio <vivainio@gmail.com>
1927
1931
1928 * iplib.py: Fix quoting of aliases so that only argless ones
1932 * iplib.py: Fix quoting of aliases so that only argless ones
1929 are quoted
1933 are quoted
1930
1934
1931 2006-03-28 Ville Vainio <vivainio@gmail.com>
1935 2006-03-28 Ville Vainio <vivainio@gmail.com>
1932
1936
1933 * iplib.py: Quote aliases with spaces in the name.
1937 * iplib.py: Quote aliases with spaces in the name.
1934 "c:\program files\blah\bin" is now legal alias target.
1938 "c:\program files\blah\bin" is now legal alias target.
1935
1939
1936 * ext_rehashdir.py: Space no longer allowed as arg
1940 * ext_rehashdir.py: Space no longer allowed as arg
1937 separator, since space is legal in path names.
1941 separator, since space is legal in path names.
1938
1942
1939 2006-03-16 Ville Vainio <vivainio@gmail.com>
1943 2006-03-16 Ville Vainio <vivainio@gmail.com>
1940
1944
1941 * upgrade_dir.py: Take path.py from Extensions, correcting
1945 * upgrade_dir.py: Take path.py from Extensions, correcting
1942 %upgrade magic
1946 %upgrade magic
1943
1947
1944 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1948 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1945
1949
1946 * hooks.py: Only enclose editor binary in quotes if legal and
1950 * hooks.py: Only enclose editor binary in quotes if legal and
1947 necessary (space in the name, and is an existing file). Fixes a bug
1951 necessary (space in the name, and is an existing file). Fixes a bug
1948 reported by Zachary Pincus.
1952 reported by Zachary Pincus.
1949
1953
1950 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1954 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1951
1955
1952 * Manual: thanks to a tip on proper color handling for Emacs, by
1956 * Manual: thanks to a tip on proper color handling for Emacs, by
1953 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1957 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1954
1958
1955 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1959 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1956 by applying the provided patch. Thanks to Liu Jin
1960 by applying the provided patch. Thanks to Liu Jin
1957 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1961 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1958 XEmacs/Linux, I'm trusting the submitter that it actually helps
1962 XEmacs/Linux, I'm trusting the submitter that it actually helps
1959 under win32/GNU Emacs. Will revisit if any problems are reported.
1963 under win32/GNU Emacs. Will revisit if any problems are reported.
1960
1964
1961 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1965 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1962
1966
1963 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1967 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1964 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1968 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1965
1969
1966 2006-03-12 Ville Vainio <vivainio@gmail.com>
1970 2006-03-12 Ville Vainio <vivainio@gmail.com>
1967
1971
1968 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1972 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1969 Torsten Marek.
1973 Torsten Marek.
1970
1974
1971 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1975 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1972
1976
1973 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1977 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1974 line ranges works again.
1978 line ranges works again.
1975
1979
1976 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1980 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1977
1981
1978 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1982 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1979 and friends, after a discussion with Zach Pincus on ipython-user.
1983 and friends, after a discussion with Zach Pincus on ipython-user.
1980 I'm not 100% sure, but after thinking about it quite a bit, it may
1984 I'm not 100% sure, but after thinking about it quite a bit, it may
1981 be OK. Testing with the multithreaded shells didn't reveal any
1985 be OK. Testing with the multithreaded shells didn't reveal any
1982 problems, but let's keep an eye out.
1986 problems, but let's keep an eye out.
1983
1987
1984 In the process, I fixed a few things which were calling
1988 In the process, I fixed a few things which were calling
1985 self.InteractiveTB() directly (like safe_execfile), which is a
1989 self.InteractiveTB() directly (like safe_execfile), which is a
1986 mistake: ALL exception reporting should be done by calling
1990 mistake: ALL exception reporting should be done by calling
1987 self.showtraceback(), which handles state and tab-completion and
1991 self.showtraceback(), which handles state and tab-completion and
1988 more.
1992 more.
1989
1993
1990 2006-03-01 Ville Vainio <vivainio@gmail.com>
1994 2006-03-01 Ville Vainio <vivainio@gmail.com>
1991
1995
1992 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1996 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1993 To use, do "from ipipe import *".
1997 To use, do "from ipipe import *".
1994
1998
1995 2006-02-24 Ville Vainio <vivainio@gmail.com>
1999 2006-02-24 Ville Vainio <vivainio@gmail.com>
1996
2000
1997 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2001 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1998 "cleanly" and safely than the older upgrade mechanism.
2002 "cleanly" and safely than the older upgrade mechanism.
1999
2003
2000 2006-02-21 Ville Vainio <vivainio@gmail.com>
2004 2006-02-21 Ville Vainio <vivainio@gmail.com>
2001
2005
2002 * Magic.py: %save works again.
2006 * Magic.py: %save works again.
2003
2007
2004 2006-02-15 Ville Vainio <vivainio@gmail.com>
2008 2006-02-15 Ville Vainio <vivainio@gmail.com>
2005
2009
2006 * Magic.py: %Pprint works again
2010 * Magic.py: %Pprint works again
2007
2011
2008 * Extensions/ipy_sane_defaults.py: Provide everything provided
2012 * Extensions/ipy_sane_defaults.py: Provide everything provided
2009 in default ipythonrc, to make it possible to have a completely empty
2013 in default ipythonrc, to make it possible to have a completely empty
2010 ipythonrc (and thus completely rc-file free configuration)
2014 ipythonrc (and thus completely rc-file free configuration)
2011
2015
2012 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2016 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2013
2017
2014 * IPython/hooks.py (editor): quote the call to the editor command,
2018 * IPython/hooks.py (editor): quote the call to the editor command,
2015 to allow commands with spaces in them. Problem noted by watching
2019 to allow commands with spaces in them. Problem noted by watching
2016 Ian Oswald's video about textpad under win32 at
2020 Ian Oswald's video about textpad under win32 at
2017 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2021 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2018
2022
2019 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2023 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2020 describing magics (we haven't used @ for a loong time).
2024 describing magics (we haven't used @ for a loong time).
2021
2025
2022 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2026 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2023 contributed by marienz to close
2027 contributed by marienz to close
2024 http://www.scipy.net/roundup/ipython/issue53.
2028 http://www.scipy.net/roundup/ipython/issue53.
2025
2029
2026 2006-02-10 Ville Vainio <vivainio@gmail.com>
2030 2006-02-10 Ville Vainio <vivainio@gmail.com>
2027
2031
2028 * genutils.py: getoutput now works in win32 too
2032 * genutils.py: getoutput now works in win32 too
2029
2033
2030 * completer.py: alias and magic completion only invoked
2034 * completer.py: alias and magic completion only invoked
2031 at the first "item" in the line, to avoid "cd %store"
2035 at the first "item" in the line, to avoid "cd %store"
2032 nonsense.
2036 nonsense.
2033
2037
2034 2006-02-09 Ville Vainio <vivainio@gmail.com>
2038 2006-02-09 Ville Vainio <vivainio@gmail.com>
2035
2039
2036 * test/*: Added a unit testing framework (finally).
2040 * test/*: Added a unit testing framework (finally).
2037 '%run runtests.py' to run test_*.
2041 '%run runtests.py' to run test_*.
2038
2042
2039 * ipapi.py: Exposed runlines and set_custom_exc
2043 * ipapi.py: Exposed runlines and set_custom_exc
2040
2044
2041 2006-02-07 Ville Vainio <vivainio@gmail.com>
2045 2006-02-07 Ville Vainio <vivainio@gmail.com>
2042
2046
2043 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2047 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2044 instead use "f(1 2)" as before.
2048 instead use "f(1 2)" as before.
2045
2049
2046 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2050 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2047
2051
2048 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2052 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2049 facilities, for demos processed by the IPython input filter
2053 facilities, for demos processed by the IPython input filter
2050 (IPythonDemo), and for running a script one-line-at-a-time as a
2054 (IPythonDemo), and for running a script one-line-at-a-time as a
2051 demo, both for pure Python (LineDemo) and for IPython-processed
2055 demo, both for pure Python (LineDemo) and for IPython-processed
2052 input (IPythonLineDemo). After a request by Dave Kohel, from the
2056 input (IPythonLineDemo). After a request by Dave Kohel, from the
2053 SAGE team.
2057 SAGE team.
2054 (Demo.edit): added an edit() method to the demo objects, to edit
2058 (Demo.edit): added an edit() method to the demo objects, to edit
2055 the in-memory copy of the last executed block.
2059 the in-memory copy of the last executed block.
2056
2060
2057 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2061 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2058 processing to %edit, %macro and %save. These commands can now be
2062 processing to %edit, %macro and %save. These commands can now be
2059 invoked on the unprocessed input as it was typed by the user
2063 invoked on the unprocessed input as it was typed by the user
2060 (without any prefilters applied). After requests by the SAGE team
2064 (without any prefilters applied). After requests by the SAGE team
2061 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2065 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2062
2066
2063 2006-02-01 Ville Vainio <vivainio@gmail.com>
2067 2006-02-01 Ville Vainio <vivainio@gmail.com>
2064
2068
2065 * setup.py, eggsetup.py: easy_install ipython==dev works
2069 * setup.py, eggsetup.py: easy_install ipython==dev works
2066 correctly now (on Linux)
2070 correctly now (on Linux)
2067
2071
2068 * ipy_user_conf,ipmaker: user config changes, removed spurious
2072 * ipy_user_conf,ipmaker: user config changes, removed spurious
2069 warnings
2073 warnings
2070
2074
2071 * iplib: if rc.banner is string, use it as is.
2075 * iplib: if rc.banner is string, use it as is.
2072
2076
2073 * Magic: %pycat accepts a string argument and pages it's contents.
2077 * Magic: %pycat accepts a string argument and pages it's contents.
2074
2078
2075
2079
2076 2006-01-30 Ville Vainio <vivainio@gmail.com>
2080 2006-01-30 Ville Vainio <vivainio@gmail.com>
2077
2081
2078 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2082 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2079 Now %store and bookmarks work through PickleShare, meaning that
2083 Now %store and bookmarks work through PickleShare, meaning that
2080 concurrent access is possible and all ipython sessions see the
2084 concurrent access is possible and all ipython sessions see the
2081 same database situation all the time, instead of snapshot of
2085 same database situation all the time, instead of snapshot of
2082 the situation when the session was started. Hence, %bookmark
2086 the situation when the session was started. Hence, %bookmark
2083 results are immediately accessible from othes sessions. The database
2087 results are immediately accessible from othes sessions. The database
2084 is also available for use by user extensions. See:
2088 is also available for use by user extensions. See:
2085 http://www.python.org/pypi/pickleshare
2089 http://www.python.org/pypi/pickleshare
2086
2090
2087 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2091 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2088
2092
2089 * aliases can now be %store'd
2093 * aliases can now be %store'd
2090
2094
2091 * path.py moved to Extensions so that pickleshare does not need
2095 * path.py moved to Extensions so that pickleshare does not need
2092 IPython-specific import. Extensions added to pythonpath right
2096 IPython-specific import. Extensions added to pythonpath right
2093 at __init__.
2097 at __init__.
2094
2098
2095 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2099 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2096 called with _ip.system and the pre-transformed command string.
2100 called with _ip.system and the pre-transformed command string.
2097
2101
2098 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2102 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2099
2103
2100 * IPython/iplib.py (interact): Fix that we were not catching
2104 * IPython/iplib.py (interact): Fix that we were not catching
2101 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2105 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2102 logic here had to change, but it's fixed now.
2106 logic here had to change, but it's fixed now.
2103
2107
2104 2006-01-29 Ville Vainio <vivainio@gmail.com>
2108 2006-01-29 Ville Vainio <vivainio@gmail.com>
2105
2109
2106 * iplib.py: Try to import pyreadline on Windows.
2110 * iplib.py: Try to import pyreadline on Windows.
2107
2111
2108 2006-01-27 Ville Vainio <vivainio@gmail.com>
2112 2006-01-27 Ville Vainio <vivainio@gmail.com>
2109
2113
2110 * iplib.py: Expose ipapi as _ip in builtin namespace.
2114 * iplib.py: Expose ipapi as _ip in builtin namespace.
2111 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2115 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2112 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2116 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2113 syntax now produce _ip.* variant of the commands.
2117 syntax now produce _ip.* variant of the commands.
2114
2118
2115 * "_ip.options().autoedit_syntax = 2" automatically throws
2119 * "_ip.options().autoedit_syntax = 2" automatically throws
2116 user to editor for syntax error correction without prompting.
2120 user to editor for syntax error correction without prompting.
2117
2121
2118 2006-01-27 Ville Vainio <vivainio@gmail.com>
2122 2006-01-27 Ville Vainio <vivainio@gmail.com>
2119
2123
2120 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2124 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2121 'ipython' at argv[0]) executed through command line.
2125 'ipython' at argv[0]) executed through command line.
2122 NOTE: this DEPRECATES calling ipython with multiple scripts
2126 NOTE: this DEPRECATES calling ipython with multiple scripts
2123 ("ipython a.py b.py c.py")
2127 ("ipython a.py b.py c.py")
2124
2128
2125 * iplib.py, hooks.py: Added configurable input prefilter,
2129 * iplib.py, hooks.py: Added configurable input prefilter,
2126 named 'input_prefilter'. See ext_rescapture.py for example
2130 named 'input_prefilter'. See ext_rescapture.py for example
2127 usage.
2131 usage.
2128
2132
2129 * ext_rescapture.py, Magic.py: Better system command output capture
2133 * ext_rescapture.py, Magic.py: Better system command output capture
2130 through 'var = !ls' (deprecates user-visible %sc). Same notation
2134 through 'var = !ls' (deprecates user-visible %sc). Same notation
2131 applies for magics, 'var = %alias' assigns alias list to var.
2135 applies for magics, 'var = %alias' assigns alias list to var.
2132
2136
2133 * ipapi.py: added meta() for accessing extension-usable data store.
2137 * ipapi.py: added meta() for accessing extension-usable data store.
2134
2138
2135 * iplib.py: added InteractiveShell.getapi(). New magics should be
2139 * iplib.py: added InteractiveShell.getapi(). New magics should be
2136 written doing self.getapi() instead of using the shell directly.
2140 written doing self.getapi() instead of using the shell directly.
2137
2141
2138 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2142 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2139 %store foo >> ~/myfoo.txt to store variables to files (in clean
2143 %store foo >> ~/myfoo.txt to store variables to files (in clean
2140 textual form, not a restorable pickle).
2144 textual form, not a restorable pickle).
2141
2145
2142 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2146 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2143
2147
2144 * usage.py, Magic.py: added %quickref
2148 * usage.py, Magic.py: added %quickref
2145
2149
2146 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2150 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2147
2151
2148 * GetoptErrors when invoking magics etc. with wrong args
2152 * GetoptErrors when invoking magics etc. with wrong args
2149 are now more helpful:
2153 are now more helpful:
2150 GetoptError: option -l not recognized (allowed: "qb" )
2154 GetoptError: option -l not recognized (allowed: "qb" )
2151
2155
2152 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2156 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2153
2157
2154 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2158 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2155 computationally intensive blocks don't appear to stall the demo.
2159 computationally intensive blocks don't appear to stall the demo.
2156
2160
2157 2006-01-24 Ville Vainio <vivainio@gmail.com>
2161 2006-01-24 Ville Vainio <vivainio@gmail.com>
2158
2162
2159 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2163 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2160 value to manipulate resulting history entry.
2164 value to manipulate resulting history entry.
2161
2165
2162 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2166 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2163 to instance methods of IPApi class, to make extending an embedded
2167 to instance methods of IPApi class, to make extending an embedded
2164 IPython feasible. See ext_rehashdir.py for example usage.
2168 IPython feasible. See ext_rehashdir.py for example usage.
2165
2169
2166 * Merged 1071-1076 from branches/0.7.1
2170 * Merged 1071-1076 from branches/0.7.1
2167
2171
2168
2172
2169 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2173 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2170
2174
2171 * tools/release (daystamp): Fix build tools to use the new
2175 * tools/release (daystamp): Fix build tools to use the new
2172 eggsetup.py script to build lightweight eggs.
2176 eggsetup.py script to build lightweight eggs.
2173
2177
2174 * Applied changesets 1062 and 1064 before 0.7.1 release.
2178 * Applied changesets 1062 and 1064 before 0.7.1 release.
2175
2179
2176 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2180 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2177 see the raw input history (without conversions like %ls ->
2181 see the raw input history (without conversions like %ls ->
2178 ipmagic("ls")). After a request from W. Stein, SAGE
2182 ipmagic("ls")). After a request from W. Stein, SAGE
2179 (http://modular.ucsd.edu/sage) developer. This information is
2183 (http://modular.ucsd.edu/sage) developer. This information is
2180 stored in the input_hist_raw attribute of the IPython instance, so
2184 stored in the input_hist_raw attribute of the IPython instance, so
2181 developers can access it if needed (it's an InputList instance).
2185 developers can access it if needed (it's an InputList instance).
2182
2186
2183 * Versionstring = 0.7.2.svn
2187 * Versionstring = 0.7.2.svn
2184
2188
2185 * eggsetup.py: A separate script for constructing eggs, creates
2189 * eggsetup.py: A separate script for constructing eggs, creates
2186 proper launch scripts even on Windows (an .exe file in
2190 proper launch scripts even on Windows (an .exe file in
2187 \python24\scripts).
2191 \python24\scripts).
2188
2192
2189 * ipapi.py: launch_new_instance, launch entry point needed for the
2193 * ipapi.py: launch_new_instance, launch entry point needed for the
2190 egg.
2194 egg.
2191
2195
2192 2006-01-23 Ville Vainio <vivainio@gmail.com>
2196 2006-01-23 Ville Vainio <vivainio@gmail.com>
2193
2197
2194 * Added %cpaste magic for pasting python code
2198 * Added %cpaste magic for pasting python code
2195
2199
2196 2006-01-22 Ville Vainio <vivainio@gmail.com>
2200 2006-01-22 Ville Vainio <vivainio@gmail.com>
2197
2201
2198 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2202 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2199
2203
2200 * Versionstring = 0.7.2.svn
2204 * Versionstring = 0.7.2.svn
2201
2205
2202 * eggsetup.py: A separate script for constructing eggs, creates
2206 * eggsetup.py: A separate script for constructing eggs, creates
2203 proper launch scripts even on Windows (an .exe file in
2207 proper launch scripts even on Windows (an .exe file in
2204 \python24\scripts).
2208 \python24\scripts).
2205
2209
2206 * ipapi.py: launch_new_instance, launch entry point needed for the
2210 * ipapi.py: launch_new_instance, launch entry point needed for the
2207 egg.
2211 egg.
2208
2212
2209 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2213 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2210
2214
2211 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2215 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2212 %pfile foo would print the file for foo even if it was a binary.
2216 %pfile foo would print the file for foo even if it was a binary.
2213 Now, extensions '.so' and '.dll' are skipped.
2217 Now, extensions '.so' and '.dll' are skipped.
2214
2218
2215 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2219 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2216 bug, where macros would fail in all threaded modes. I'm not 100%
2220 bug, where macros would fail in all threaded modes. I'm not 100%
2217 sure, so I'm going to put out an rc instead of making a release
2221 sure, so I'm going to put out an rc instead of making a release
2218 today, and wait for feedback for at least a few days.
2222 today, and wait for feedback for at least a few days.
2219
2223
2220 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2224 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2221 it...) the handling of pasting external code with autoindent on.
2225 it...) the handling of pasting external code with autoindent on.
2222 To get out of a multiline input, the rule will appear for most
2226 To get out of a multiline input, the rule will appear for most
2223 users unchanged: two blank lines or change the indent level
2227 users unchanged: two blank lines or change the indent level
2224 proposed by IPython. But there is a twist now: you can
2228 proposed by IPython. But there is a twist now: you can
2225 add/subtract only *one or two spaces*. If you add/subtract three
2229 add/subtract only *one or two spaces*. If you add/subtract three
2226 or more (unless you completely delete the line), IPython will
2230 or more (unless you completely delete the line), IPython will
2227 accept that line, and you'll need to enter a second one of pure
2231 accept that line, and you'll need to enter a second one of pure
2228 whitespace. I know it sounds complicated, but I can't find a
2232 whitespace. I know it sounds complicated, but I can't find a
2229 different solution that covers all the cases, with the right
2233 different solution that covers all the cases, with the right
2230 heuristics. Hopefully in actual use, nobody will really notice
2234 heuristics. Hopefully in actual use, nobody will really notice
2231 all these strange rules and things will 'just work'.
2235 all these strange rules and things will 'just work'.
2232
2236
2233 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2237 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2234
2238
2235 * IPython/iplib.py (interact): catch exceptions which can be
2239 * IPython/iplib.py (interact): catch exceptions which can be
2236 triggered asynchronously by signal handlers. Thanks to an
2240 triggered asynchronously by signal handlers. Thanks to an
2237 automatic crash report, submitted by Colin Kingsley
2241 automatic crash report, submitted by Colin Kingsley
2238 <tercel-AT-gentoo.org>.
2242 <tercel-AT-gentoo.org>.
2239
2243
2240 2006-01-20 Ville Vainio <vivainio@gmail.com>
2244 2006-01-20 Ville Vainio <vivainio@gmail.com>
2241
2245
2242 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2246 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2243 (%rehashdir, very useful, try it out) of how to extend ipython
2247 (%rehashdir, very useful, try it out) of how to extend ipython
2244 with new magics. Also added Extensions dir to pythonpath to make
2248 with new magics. Also added Extensions dir to pythonpath to make
2245 importing extensions easy.
2249 importing extensions easy.
2246
2250
2247 * %store now complains when trying to store interactively declared
2251 * %store now complains when trying to store interactively declared
2248 classes / instances of those classes.
2252 classes / instances of those classes.
2249
2253
2250 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2254 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2251 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2255 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2252 if they exist, and ipy_user_conf.py with some defaults is created for
2256 if they exist, and ipy_user_conf.py with some defaults is created for
2253 the user.
2257 the user.
2254
2258
2255 * Startup rehashing done by the config file, not InterpreterExec.
2259 * Startup rehashing done by the config file, not InterpreterExec.
2256 This means system commands are available even without selecting the
2260 This means system commands are available even without selecting the
2257 pysh profile. It's the sensible default after all.
2261 pysh profile. It's the sensible default after all.
2258
2262
2259 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2263 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2260
2264
2261 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2265 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2262 multiline code with autoindent on working. But I am really not
2266 multiline code with autoindent on working. But I am really not
2263 sure, so this needs more testing. Will commit a debug-enabled
2267 sure, so this needs more testing. Will commit a debug-enabled
2264 version for now, while I test it some more, so that Ville and
2268 version for now, while I test it some more, so that Ville and
2265 others may also catch any problems. Also made
2269 others may also catch any problems. Also made
2266 self.indent_current_str() a method, to ensure that there's no
2270 self.indent_current_str() a method, to ensure that there's no
2267 chance of the indent space count and the corresponding string
2271 chance of the indent space count and the corresponding string
2268 falling out of sync. All code needing the string should just call
2272 falling out of sync. All code needing the string should just call
2269 the method.
2273 the method.
2270
2274
2271 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2275 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2272
2276
2273 * IPython/Magic.py (magic_edit): fix check for when users don't
2277 * IPython/Magic.py (magic_edit): fix check for when users don't
2274 save their output files, the try/except was in the wrong section.
2278 save their output files, the try/except was in the wrong section.
2275
2279
2276 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2280 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2277
2281
2278 * IPython/Magic.py (magic_run): fix __file__ global missing from
2282 * IPython/Magic.py (magic_run): fix __file__ global missing from
2279 script's namespace when executed via %run. After a report by
2283 script's namespace when executed via %run. After a report by
2280 Vivian.
2284 Vivian.
2281
2285
2282 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2286 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2283 when using python 2.4. The parent constructor changed in 2.4, and
2287 when using python 2.4. The parent constructor changed in 2.4, and
2284 we need to track it directly (we can't call it, as it messes up
2288 we need to track it directly (we can't call it, as it messes up
2285 readline and tab-completion inside our pdb would stop working).
2289 readline and tab-completion inside our pdb would stop working).
2286 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2290 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2287
2291
2288 2006-01-16 Ville Vainio <vivainio@gmail.com>
2292 2006-01-16 Ville Vainio <vivainio@gmail.com>
2289
2293
2290 * Ipython/magic.py: Reverted back to old %edit functionality
2294 * Ipython/magic.py: Reverted back to old %edit functionality
2291 that returns file contents on exit.
2295 that returns file contents on exit.
2292
2296
2293 * IPython/path.py: Added Jason Orendorff's "path" module to
2297 * IPython/path.py: Added Jason Orendorff's "path" module to
2294 IPython tree, http://www.jorendorff.com/articles/python/path/.
2298 IPython tree, http://www.jorendorff.com/articles/python/path/.
2295 You can get path objects conveniently through %sc, and !!, e.g.:
2299 You can get path objects conveniently through %sc, and !!, e.g.:
2296 sc files=ls
2300 sc files=ls
2297 for p in files.paths: # or files.p
2301 for p in files.paths: # or files.p
2298 print p,p.mtime
2302 print p,p.mtime
2299
2303
2300 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2304 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2301 now work again without considering the exclusion regexp -
2305 now work again without considering the exclusion regexp -
2302 hence, things like ',foo my/path' turn to 'foo("my/path")'
2306 hence, things like ',foo my/path' turn to 'foo("my/path")'
2303 instead of syntax error.
2307 instead of syntax error.
2304
2308
2305
2309
2306 2006-01-14 Ville Vainio <vivainio@gmail.com>
2310 2006-01-14 Ville Vainio <vivainio@gmail.com>
2307
2311
2308 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2312 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2309 ipapi decorators for python 2.4 users, options() provides access to rc
2313 ipapi decorators for python 2.4 users, options() provides access to rc
2310 data.
2314 data.
2311
2315
2312 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2316 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2313 as path separators (even on Linux ;-). Space character after
2317 as path separators (even on Linux ;-). Space character after
2314 backslash (as yielded by tab completer) is still space;
2318 backslash (as yielded by tab completer) is still space;
2315 "%cd long\ name" works as expected.
2319 "%cd long\ name" works as expected.
2316
2320
2317 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2321 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2318 as "chain of command", with priority. API stays the same,
2322 as "chain of command", with priority. API stays the same,
2319 TryNext exception raised by a hook function signals that
2323 TryNext exception raised by a hook function signals that
2320 current hook failed and next hook should try handling it, as
2324 current hook failed and next hook should try handling it, as
2321 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2325 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2322 requested configurable display hook, which is now implemented.
2326 requested configurable display hook, which is now implemented.
2323
2327
2324 2006-01-13 Ville Vainio <vivainio@gmail.com>
2328 2006-01-13 Ville Vainio <vivainio@gmail.com>
2325
2329
2326 * IPython/platutils*.py: platform specific utility functions,
2330 * IPython/platutils*.py: platform specific utility functions,
2327 so far only set_term_title is implemented (change terminal
2331 so far only set_term_title is implemented (change terminal
2328 label in windowing systems). %cd now changes the title to
2332 label in windowing systems). %cd now changes the title to
2329 current dir.
2333 current dir.
2330
2334
2331 * IPython/Release.py: Added myself to "authors" list,
2335 * IPython/Release.py: Added myself to "authors" list,
2332 had to create new files.
2336 had to create new files.
2333
2337
2334 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2338 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2335 shell escape; not a known bug but had potential to be one in the
2339 shell escape; not a known bug but had potential to be one in the
2336 future.
2340 future.
2337
2341
2338 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2342 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2339 extension API for IPython! See the module for usage example. Fix
2343 extension API for IPython! See the module for usage example. Fix
2340 OInspect for docstring-less magic functions.
2344 OInspect for docstring-less magic functions.
2341
2345
2342
2346
2343 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2347 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2344
2348
2345 * IPython/iplib.py (raw_input): temporarily deactivate all
2349 * IPython/iplib.py (raw_input): temporarily deactivate all
2346 attempts at allowing pasting of code with autoindent on. It
2350 attempts at allowing pasting of code with autoindent on. It
2347 introduced bugs (reported by Prabhu) and I can't seem to find a
2351 introduced bugs (reported by Prabhu) and I can't seem to find a
2348 robust combination which works in all cases. Will have to revisit
2352 robust combination which works in all cases. Will have to revisit
2349 later.
2353 later.
2350
2354
2351 * IPython/genutils.py: remove isspace() function. We've dropped
2355 * IPython/genutils.py: remove isspace() function. We've dropped
2352 2.2 compatibility, so it's OK to use the string method.
2356 2.2 compatibility, so it's OK to use the string method.
2353
2357
2354 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2358 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2355
2359
2356 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2360 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2357 matching what NOT to autocall on, to include all python binary
2361 matching what NOT to autocall on, to include all python binary
2358 operators (including things like 'and', 'or', 'is' and 'in').
2362 operators (including things like 'and', 'or', 'is' and 'in').
2359 Prompted by a bug report on 'foo & bar', but I realized we had
2363 Prompted by a bug report on 'foo & bar', but I realized we had
2360 many more potential bug cases with other operators. The regexp is
2364 many more potential bug cases with other operators. The regexp is
2361 self.re_exclude_auto, it's fairly commented.
2365 self.re_exclude_auto, it's fairly commented.
2362
2366
2363 2006-01-12 Ville Vainio <vivainio@gmail.com>
2367 2006-01-12 Ville Vainio <vivainio@gmail.com>
2364
2368
2365 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2369 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2366 Prettified and hardened string/backslash quoting with ipsystem(),
2370 Prettified and hardened string/backslash quoting with ipsystem(),
2367 ipalias() and ipmagic(). Now even \ characters are passed to
2371 ipalias() and ipmagic(). Now even \ characters are passed to
2368 %magics, !shell escapes and aliases exactly as they are in the
2372 %magics, !shell escapes and aliases exactly as they are in the
2369 ipython command line. Should improve backslash experience,
2373 ipython command line. Should improve backslash experience,
2370 particularly in Windows (path delimiter for some commands that
2374 particularly in Windows (path delimiter for some commands that
2371 won't understand '/'), but Unix benefits as well (regexps). %cd
2375 won't understand '/'), but Unix benefits as well (regexps). %cd
2372 magic still doesn't support backslash path delimiters, though. Also
2376 magic still doesn't support backslash path delimiters, though. Also
2373 deleted all pretense of supporting multiline command strings in
2377 deleted all pretense of supporting multiline command strings in
2374 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2378 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2375
2379
2376 * doc/build_doc_instructions.txt added. Documentation on how to
2380 * doc/build_doc_instructions.txt added. Documentation on how to
2377 use doc/update_manual.py, added yesterday. Both files contributed
2381 use doc/update_manual.py, added yesterday. Both files contributed
2378 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2382 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2379 doc/*.sh for deprecation at a later date.
2383 doc/*.sh for deprecation at a later date.
2380
2384
2381 * /ipython.py Added ipython.py to root directory for
2385 * /ipython.py Added ipython.py to root directory for
2382 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2386 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2383 ipython.py) and development convenience (no need to keep doing
2387 ipython.py) and development convenience (no need to keep doing
2384 "setup.py install" between changes).
2388 "setup.py install" between changes).
2385
2389
2386 * Made ! and !! shell escapes work (again) in multiline expressions:
2390 * Made ! and !! shell escapes work (again) in multiline expressions:
2387 if 1:
2391 if 1:
2388 !ls
2392 !ls
2389 !!ls
2393 !!ls
2390
2394
2391 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2395 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2392
2396
2393 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2397 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2394 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2398 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2395 module in case-insensitive installation. Was causing crashes
2399 module in case-insensitive installation. Was causing crashes
2396 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2400 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2397
2401
2398 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2402 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2399 <marienz-AT-gentoo.org>, closes
2403 <marienz-AT-gentoo.org>, closes
2400 http://www.scipy.net/roundup/ipython/issue51.
2404 http://www.scipy.net/roundup/ipython/issue51.
2401
2405
2402 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2406 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2403
2407
2404 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2408 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2405 problem of excessive CPU usage under *nix and keyboard lag under
2409 problem of excessive CPU usage under *nix and keyboard lag under
2406 win32.
2410 win32.
2407
2411
2408 2006-01-10 *** Released version 0.7.0
2412 2006-01-10 *** Released version 0.7.0
2409
2413
2410 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2414 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2411
2415
2412 * IPython/Release.py (revision): tag version number to 0.7.0,
2416 * IPython/Release.py (revision): tag version number to 0.7.0,
2413 ready for release.
2417 ready for release.
2414
2418
2415 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2419 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2416 it informs the user of the name of the temp. file used. This can
2420 it informs the user of the name of the temp. file used. This can
2417 help if you decide later to reuse that same file, so you know
2421 help if you decide later to reuse that same file, so you know
2418 where to copy the info from.
2422 where to copy the info from.
2419
2423
2420 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2424 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2421
2425
2422 * setup_bdist_egg.py: little script to build an egg. Added
2426 * setup_bdist_egg.py: little script to build an egg. Added
2423 support in the release tools as well.
2427 support in the release tools as well.
2424
2428
2425 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2429 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2426
2430
2427 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2431 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2428 version selection (new -wxversion command line and ipythonrc
2432 version selection (new -wxversion command line and ipythonrc
2429 parameter). Patch contributed by Arnd Baecker
2433 parameter). Patch contributed by Arnd Baecker
2430 <arnd.baecker-AT-web.de>.
2434 <arnd.baecker-AT-web.de>.
2431
2435
2432 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2436 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2433 embedded instances, for variables defined at the interactive
2437 embedded instances, for variables defined at the interactive
2434 prompt of the embedded ipython. Reported by Arnd.
2438 prompt of the embedded ipython. Reported by Arnd.
2435
2439
2436 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2440 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2437 it can be used as a (stateful) toggle, or with a direct parameter.
2441 it can be used as a (stateful) toggle, or with a direct parameter.
2438
2442
2439 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2443 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2440 could be triggered in certain cases and cause the traceback
2444 could be triggered in certain cases and cause the traceback
2441 printer not to work.
2445 printer not to work.
2442
2446
2443 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2447 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2444
2448
2445 * IPython/iplib.py (_should_recompile): Small fix, closes
2449 * IPython/iplib.py (_should_recompile): Small fix, closes
2446 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2450 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2447
2451
2448 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2452 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2449
2453
2450 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2454 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2451 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2455 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2452 Moad for help with tracking it down.
2456 Moad for help with tracking it down.
2453
2457
2454 * IPython/iplib.py (handle_auto): fix autocall handling for
2458 * IPython/iplib.py (handle_auto): fix autocall handling for
2455 objects which support BOTH __getitem__ and __call__ (so that f [x]
2459 objects which support BOTH __getitem__ and __call__ (so that f [x]
2456 is left alone, instead of becoming f([x]) automatically).
2460 is left alone, instead of becoming f([x]) automatically).
2457
2461
2458 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2462 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2459 Ville's patch.
2463 Ville's patch.
2460
2464
2461 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2465 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2462
2466
2463 * IPython/iplib.py (handle_auto): changed autocall semantics to
2467 * IPython/iplib.py (handle_auto): changed autocall semantics to
2464 include 'smart' mode, where the autocall transformation is NOT
2468 include 'smart' mode, where the autocall transformation is NOT
2465 applied if there are no arguments on the line. This allows you to
2469 applied if there are no arguments on the line. This allows you to
2466 just type 'foo' if foo is a callable to see its internal form,
2470 just type 'foo' if foo is a callable to see its internal form,
2467 instead of having it called with no arguments (typically a
2471 instead of having it called with no arguments (typically a
2468 mistake). The old 'full' autocall still exists: for that, you
2472 mistake). The old 'full' autocall still exists: for that, you
2469 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2473 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2470
2474
2471 * IPython/completer.py (Completer.attr_matches): add
2475 * IPython/completer.py (Completer.attr_matches): add
2472 tab-completion support for Enthoughts' traits. After a report by
2476 tab-completion support for Enthoughts' traits. After a report by
2473 Arnd and a patch by Prabhu.
2477 Arnd and a patch by Prabhu.
2474
2478
2475 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2479 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2476
2480
2477 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2481 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2478 Schmolck's patch to fix inspect.getinnerframes().
2482 Schmolck's patch to fix inspect.getinnerframes().
2479
2483
2480 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2484 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2481 for embedded instances, regarding handling of namespaces and items
2485 for embedded instances, regarding handling of namespaces and items
2482 added to the __builtin__ one. Multiple embedded instances and
2486 added to the __builtin__ one. Multiple embedded instances and
2483 recursive embeddings should work better now (though I'm not sure
2487 recursive embeddings should work better now (though I'm not sure
2484 I've got all the corner cases fixed, that code is a bit of a brain
2488 I've got all the corner cases fixed, that code is a bit of a brain
2485 twister).
2489 twister).
2486
2490
2487 * IPython/Magic.py (magic_edit): added support to edit in-memory
2491 * IPython/Magic.py (magic_edit): added support to edit in-memory
2488 macros (automatically creates the necessary temp files). %edit
2492 macros (automatically creates the necessary temp files). %edit
2489 also doesn't return the file contents anymore, it's just noise.
2493 also doesn't return the file contents anymore, it's just noise.
2490
2494
2491 * IPython/completer.py (Completer.attr_matches): revert change to
2495 * IPython/completer.py (Completer.attr_matches): revert change to
2492 complete only on attributes listed in __all__. I realized it
2496 complete only on attributes listed in __all__. I realized it
2493 cripples the tab-completion system as a tool for exploring the
2497 cripples the tab-completion system as a tool for exploring the
2494 internals of unknown libraries (it renders any non-__all__
2498 internals of unknown libraries (it renders any non-__all__
2495 attribute off-limits). I got bit by this when trying to see
2499 attribute off-limits). I got bit by this when trying to see
2496 something inside the dis module.
2500 something inside the dis module.
2497
2501
2498 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2502 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2499
2503
2500 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2504 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2501 namespace for users and extension writers to hold data in. This
2505 namespace for users and extension writers to hold data in. This
2502 follows the discussion in
2506 follows the discussion in
2503 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2507 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2504
2508
2505 * IPython/completer.py (IPCompleter.complete): small patch to help
2509 * IPython/completer.py (IPCompleter.complete): small patch to help
2506 tab-completion under Emacs, after a suggestion by John Barnard
2510 tab-completion under Emacs, after a suggestion by John Barnard
2507 <barnarj-AT-ccf.org>.
2511 <barnarj-AT-ccf.org>.
2508
2512
2509 * IPython/Magic.py (Magic.extract_input_slices): added support for
2513 * IPython/Magic.py (Magic.extract_input_slices): added support for
2510 the slice notation in magics to use N-M to represent numbers N...M
2514 the slice notation in magics to use N-M to represent numbers N...M
2511 (closed endpoints). This is used by %macro and %save.
2515 (closed endpoints). This is used by %macro and %save.
2512
2516
2513 * IPython/completer.py (Completer.attr_matches): for modules which
2517 * IPython/completer.py (Completer.attr_matches): for modules which
2514 define __all__, complete only on those. After a patch by Jeffrey
2518 define __all__, complete only on those. After a patch by Jeffrey
2515 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2519 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2516 speed up this routine.
2520 speed up this routine.
2517
2521
2518 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2522 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2519 don't know if this is the end of it, but the behavior now is
2523 don't know if this is the end of it, but the behavior now is
2520 certainly much more correct. Note that coupled with macros,
2524 certainly much more correct. Note that coupled with macros,
2521 slightly surprising (at first) behavior may occur: a macro will in
2525 slightly surprising (at first) behavior may occur: a macro will in
2522 general expand to multiple lines of input, so upon exiting, the
2526 general expand to multiple lines of input, so upon exiting, the
2523 in/out counters will both be bumped by the corresponding amount
2527 in/out counters will both be bumped by the corresponding amount
2524 (as if the macro's contents had been typed interactively). Typing
2528 (as if the macro's contents had been typed interactively). Typing
2525 %hist will reveal the intermediate (silently processed) lines.
2529 %hist will reveal the intermediate (silently processed) lines.
2526
2530
2527 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2531 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2528 pickle to fail (%run was overwriting __main__ and not restoring
2532 pickle to fail (%run was overwriting __main__ and not restoring
2529 it, but pickle relies on __main__ to operate).
2533 it, but pickle relies on __main__ to operate).
2530
2534
2531 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2535 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2532 using properties, but forgot to make the main InteractiveShell
2536 using properties, but forgot to make the main InteractiveShell
2533 class a new-style class. Properties fail silently, and
2537 class a new-style class. Properties fail silently, and
2534 mysteriously, with old-style class (getters work, but
2538 mysteriously, with old-style class (getters work, but
2535 setters don't do anything).
2539 setters don't do anything).
2536
2540
2537 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2541 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2538
2542
2539 * IPython/Magic.py (magic_history): fix history reporting bug (I
2543 * IPython/Magic.py (magic_history): fix history reporting bug (I
2540 know some nasties are still there, I just can't seem to find a
2544 know some nasties are still there, I just can't seem to find a
2541 reproducible test case to track them down; the input history is
2545 reproducible test case to track them down; the input history is
2542 falling out of sync...)
2546 falling out of sync...)
2543
2547
2544 * IPython/iplib.py (handle_shell_escape): fix bug where both
2548 * IPython/iplib.py (handle_shell_escape): fix bug where both
2545 aliases and system accesses where broken for indented code (such
2549 aliases and system accesses where broken for indented code (such
2546 as loops).
2550 as loops).
2547
2551
2548 * IPython/genutils.py (shell): fix small but critical bug for
2552 * IPython/genutils.py (shell): fix small but critical bug for
2549 win32 system access.
2553 win32 system access.
2550
2554
2551 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2555 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2552
2556
2553 * IPython/iplib.py (showtraceback): remove use of the
2557 * IPython/iplib.py (showtraceback): remove use of the
2554 sys.last_{type/value/traceback} structures, which are non
2558 sys.last_{type/value/traceback} structures, which are non
2555 thread-safe.
2559 thread-safe.
2556 (_prefilter): change control flow to ensure that we NEVER
2560 (_prefilter): change control flow to ensure that we NEVER
2557 introspect objects when autocall is off. This will guarantee that
2561 introspect objects when autocall is off. This will guarantee that
2558 having an input line of the form 'x.y', where access to attribute
2562 having an input line of the form 'x.y', where access to attribute
2559 'y' has side effects, doesn't trigger the side effect TWICE. It
2563 'y' has side effects, doesn't trigger the side effect TWICE. It
2560 is important to note that, with autocall on, these side effects
2564 is important to note that, with autocall on, these side effects
2561 can still happen.
2565 can still happen.
2562 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2566 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2563 trio. IPython offers these three kinds of special calls which are
2567 trio. IPython offers these three kinds of special calls which are
2564 not python code, and it's a good thing to have their call method
2568 not python code, and it's a good thing to have their call method
2565 be accessible as pure python functions (not just special syntax at
2569 be accessible as pure python functions (not just special syntax at
2566 the command line). It gives us a better internal implementation
2570 the command line). It gives us a better internal implementation
2567 structure, as well as exposing these for user scripting more
2571 structure, as well as exposing these for user scripting more
2568 cleanly.
2572 cleanly.
2569
2573
2570 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2574 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2571 file. Now that they'll be more likely to be used with the
2575 file. Now that they'll be more likely to be used with the
2572 persistance system (%store), I want to make sure their module path
2576 persistance system (%store), I want to make sure their module path
2573 doesn't change in the future, so that we don't break things for
2577 doesn't change in the future, so that we don't break things for
2574 users' persisted data.
2578 users' persisted data.
2575
2579
2576 * IPython/iplib.py (autoindent_update): move indentation
2580 * IPython/iplib.py (autoindent_update): move indentation
2577 management into the _text_ processing loop, not the keyboard
2581 management into the _text_ processing loop, not the keyboard
2578 interactive one. This is necessary to correctly process non-typed
2582 interactive one. This is necessary to correctly process non-typed
2579 multiline input (such as macros).
2583 multiline input (such as macros).
2580
2584
2581 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2585 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2582 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2586 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2583 which was producing problems in the resulting manual.
2587 which was producing problems in the resulting manual.
2584 (magic_whos): improve reporting of instances (show their class,
2588 (magic_whos): improve reporting of instances (show their class,
2585 instead of simply printing 'instance' which isn't terribly
2589 instead of simply printing 'instance' which isn't terribly
2586 informative).
2590 informative).
2587
2591
2588 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2592 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2589 (minor mods) to support network shares under win32.
2593 (minor mods) to support network shares under win32.
2590
2594
2591 * IPython/winconsole.py (get_console_size): add new winconsole
2595 * IPython/winconsole.py (get_console_size): add new winconsole
2592 module and fixes to page_dumb() to improve its behavior under
2596 module and fixes to page_dumb() to improve its behavior under
2593 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2597 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2594
2598
2595 * IPython/Magic.py (Macro): simplified Macro class to just
2599 * IPython/Magic.py (Macro): simplified Macro class to just
2596 subclass list. We've had only 2.2 compatibility for a very long
2600 subclass list. We've had only 2.2 compatibility for a very long
2597 time, yet I was still avoiding subclassing the builtin types. No
2601 time, yet I was still avoiding subclassing the builtin types. No
2598 more (I'm also starting to use properties, though I won't shift to
2602 more (I'm also starting to use properties, though I won't shift to
2599 2.3-specific features quite yet).
2603 2.3-specific features quite yet).
2600 (magic_store): added Ville's patch for lightweight variable
2604 (magic_store): added Ville's patch for lightweight variable
2601 persistence, after a request on the user list by Matt Wilkie
2605 persistence, after a request on the user list by Matt Wilkie
2602 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2606 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2603 details.
2607 details.
2604
2608
2605 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2609 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2606 changed the default logfile name from 'ipython.log' to
2610 changed the default logfile name from 'ipython.log' to
2607 'ipython_log.py'. These logs are real python files, and now that
2611 'ipython_log.py'. These logs are real python files, and now that
2608 we have much better multiline support, people are more likely to
2612 we have much better multiline support, people are more likely to
2609 want to use them as such. Might as well name them correctly.
2613 want to use them as such. Might as well name them correctly.
2610
2614
2611 * IPython/Magic.py: substantial cleanup. While we can't stop
2615 * IPython/Magic.py: substantial cleanup. While we can't stop
2612 using magics as mixins, due to the existing customizations 'out
2616 using magics as mixins, due to the existing customizations 'out
2613 there' which rely on the mixin naming conventions, at least I
2617 there' which rely on the mixin naming conventions, at least I
2614 cleaned out all cross-class name usage. So once we are OK with
2618 cleaned out all cross-class name usage. So once we are OK with
2615 breaking compatibility, the two systems can be separated.
2619 breaking compatibility, the two systems can be separated.
2616
2620
2617 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2621 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2618 anymore, and the class is a fair bit less hideous as well. New
2622 anymore, and the class is a fair bit less hideous as well. New
2619 features were also introduced: timestamping of input, and logging
2623 features were also introduced: timestamping of input, and logging
2620 of output results. These are user-visible with the -t and -o
2624 of output results. These are user-visible with the -t and -o
2621 options to %logstart. Closes
2625 options to %logstart. Closes
2622 http://www.scipy.net/roundup/ipython/issue11 and a request by
2626 http://www.scipy.net/roundup/ipython/issue11 and a request by
2623 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2627 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2624
2628
2625 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2629 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2626
2630
2627 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2631 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2628 better handle backslashes in paths. See the thread 'More Windows
2632 better handle backslashes in paths. See the thread 'More Windows
2629 questions part 2 - \/ characters revisited' on the iypthon user
2633 questions part 2 - \/ characters revisited' on the iypthon user
2630 list:
2634 list:
2631 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2635 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2632
2636
2633 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2637 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2634
2638
2635 (InteractiveShell.__init__): change threaded shells to not use the
2639 (InteractiveShell.__init__): change threaded shells to not use the
2636 ipython crash handler. This was causing more problems than not,
2640 ipython crash handler. This was causing more problems than not,
2637 as exceptions in the main thread (GUI code, typically) would
2641 as exceptions in the main thread (GUI code, typically) would
2638 always show up as a 'crash', when they really weren't.
2642 always show up as a 'crash', when they really weren't.
2639
2643
2640 The colors and exception mode commands (%colors/%xmode) have been
2644 The colors and exception mode commands (%colors/%xmode) have been
2641 synchronized to also take this into account, so users can get
2645 synchronized to also take this into account, so users can get
2642 verbose exceptions for their threaded code as well. I also added
2646 verbose exceptions for their threaded code as well. I also added
2643 support for activating pdb inside this exception handler as well,
2647 support for activating pdb inside this exception handler as well,
2644 so now GUI authors can use IPython's enhanced pdb at runtime.
2648 so now GUI authors can use IPython's enhanced pdb at runtime.
2645
2649
2646 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2650 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2647 true by default, and add it to the shipped ipythonrc file. Since
2651 true by default, and add it to the shipped ipythonrc file. Since
2648 this asks the user before proceeding, I think it's OK to make it
2652 this asks the user before proceeding, I think it's OK to make it
2649 true by default.
2653 true by default.
2650
2654
2651 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2655 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2652 of the previous special-casing of input in the eval loop. I think
2656 of the previous special-casing of input in the eval loop. I think
2653 this is cleaner, as they really are commands and shouldn't have
2657 this is cleaner, as they really are commands and shouldn't have
2654 a special role in the middle of the core code.
2658 a special role in the middle of the core code.
2655
2659
2656 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2660 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2657
2661
2658 * IPython/iplib.py (edit_syntax_error): added support for
2662 * IPython/iplib.py (edit_syntax_error): added support for
2659 automatically reopening the editor if the file had a syntax error
2663 automatically reopening the editor if the file had a syntax error
2660 in it. Thanks to scottt who provided the patch at:
2664 in it. Thanks to scottt who provided the patch at:
2661 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2665 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2662 version committed).
2666 version committed).
2663
2667
2664 * IPython/iplib.py (handle_normal): add suport for multi-line
2668 * IPython/iplib.py (handle_normal): add suport for multi-line
2665 input with emtpy lines. This fixes
2669 input with emtpy lines. This fixes
2666 http://www.scipy.net/roundup/ipython/issue43 and a similar
2670 http://www.scipy.net/roundup/ipython/issue43 and a similar
2667 discussion on the user list.
2671 discussion on the user list.
2668
2672
2669 WARNING: a behavior change is necessarily introduced to support
2673 WARNING: a behavior change is necessarily introduced to support
2670 blank lines: now a single blank line with whitespace does NOT
2674 blank lines: now a single blank line with whitespace does NOT
2671 break the input loop, which means that when autoindent is on, by
2675 break the input loop, which means that when autoindent is on, by
2672 default hitting return on the next (indented) line does NOT exit.
2676 default hitting return on the next (indented) line does NOT exit.
2673
2677
2674 Instead, to exit a multiline input you can either have:
2678 Instead, to exit a multiline input you can either have:
2675
2679
2676 - TWO whitespace lines (just hit return again), or
2680 - TWO whitespace lines (just hit return again), or
2677 - a single whitespace line of a different length than provided
2681 - a single whitespace line of a different length than provided
2678 by the autoindent (add or remove a space).
2682 by the autoindent (add or remove a space).
2679
2683
2680 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2684 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2681 module to better organize all readline-related functionality.
2685 module to better organize all readline-related functionality.
2682 I've deleted FlexCompleter and put all completion clases here.
2686 I've deleted FlexCompleter and put all completion clases here.
2683
2687
2684 * IPython/iplib.py (raw_input): improve indentation management.
2688 * IPython/iplib.py (raw_input): improve indentation management.
2685 It is now possible to paste indented code with autoindent on, and
2689 It is now possible to paste indented code with autoindent on, and
2686 the code is interpreted correctly (though it still looks bad on
2690 the code is interpreted correctly (though it still looks bad on
2687 screen, due to the line-oriented nature of ipython).
2691 screen, due to the line-oriented nature of ipython).
2688 (MagicCompleter.complete): change behavior so that a TAB key on an
2692 (MagicCompleter.complete): change behavior so that a TAB key on an
2689 otherwise empty line actually inserts a tab, instead of completing
2693 otherwise empty line actually inserts a tab, instead of completing
2690 on the entire global namespace. This makes it easier to use the
2694 on the entire global namespace. This makes it easier to use the
2691 TAB key for indentation. After a request by Hans Meine
2695 TAB key for indentation. After a request by Hans Meine
2692 <hans_meine-AT-gmx.net>
2696 <hans_meine-AT-gmx.net>
2693 (_prefilter): add support so that typing plain 'exit' or 'quit'
2697 (_prefilter): add support so that typing plain 'exit' or 'quit'
2694 does a sensible thing. Originally I tried to deviate as little as
2698 does a sensible thing. Originally I tried to deviate as little as
2695 possible from the default python behavior, but even that one may
2699 possible from the default python behavior, but even that one may
2696 change in this direction (thread on python-dev to that effect).
2700 change in this direction (thread on python-dev to that effect).
2697 Regardless, ipython should do the right thing even if CPython's
2701 Regardless, ipython should do the right thing even if CPython's
2698 '>>>' prompt doesn't.
2702 '>>>' prompt doesn't.
2699 (InteractiveShell): removed subclassing code.InteractiveConsole
2703 (InteractiveShell): removed subclassing code.InteractiveConsole
2700 class. By now we'd overridden just about all of its methods: I've
2704 class. By now we'd overridden just about all of its methods: I've
2701 copied the remaining two over, and now ipython is a standalone
2705 copied the remaining two over, and now ipython is a standalone
2702 class. This will provide a clearer picture for the chainsaw
2706 class. This will provide a clearer picture for the chainsaw
2703 branch refactoring.
2707 branch refactoring.
2704
2708
2705 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2709 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2706
2710
2707 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2711 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2708 failures for objects which break when dir() is called on them.
2712 failures for objects which break when dir() is called on them.
2709
2713
2710 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2714 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2711 distinct local and global namespaces in the completer API. This
2715 distinct local and global namespaces in the completer API. This
2712 change allows us to properly handle completion with distinct
2716 change allows us to properly handle completion with distinct
2713 scopes, including in embedded instances (this had never really
2717 scopes, including in embedded instances (this had never really
2714 worked correctly).
2718 worked correctly).
2715
2719
2716 Note: this introduces a change in the constructor for
2720 Note: this introduces a change in the constructor for
2717 MagicCompleter, as a new global_namespace parameter is now the
2721 MagicCompleter, as a new global_namespace parameter is now the
2718 second argument (the others were bumped one position).
2722 second argument (the others were bumped one position).
2719
2723
2720 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2724 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2721
2725
2722 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2726 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2723 embedded instances (which can be done now thanks to Vivian's
2727 embedded instances (which can be done now thanks to Vivian's
2724 frame-handling fixes for pdb).
2728 frame-handling fixes for pdb).
2725 (InteractiveShell.__init__): Fix namespace handling problem in
2729 (InteractiveShell.__init__): Fix namespace handling problem in
2726 embedded instances. We were overwriting __main__ unconditionally,
2730 embedded instances. We were overwriting __main__ unconditionally,
2727 and this should only be done for 'full' (non-embedded) IPython;
2731 and this should only be done for 'full' (non-embedded) IPython;
2728 embedded instances must respect the caller's __main__. Thanks to
2732 embedded instances must respect the caller's __main__. Thanks to
2729 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2733 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2730
2734
2731 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2735 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2732
2736
2733 * setup.py: added download_url to setup(). This registers the
2737 * setup.py: added download_url to setup(). This registers the
2734 download address at PyPI, which is not only useful to humans
2738 download address at PyPI, which is not only useful to humans
2735 browsing the site, but is also picked up by setuptools (the Eggs
2739 browsing the site, but is also picked up by setuptools (the Eggs
2736 machinery). Thanks to Ville and R. Kern for the info/discussion
2740 machinery). Thanks to Ville and R. Kern for the info/discussion
2737 on this.
2741 on this.
2738
2742
2739 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2743 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2740
2744
2741 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2745 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2742 This brings a lot of nice functionality to the pdb mode, which now
2746 This brings a lot of nice functionality to the pdb mode, which now
2743 has tab-completion, syntax highlighting, and better stack handling
2747 has tab-completion, syntax highlighting, and better stack handling
2744 than before. Many thanks to Vivian De Smedt
2748 than before. Many thanks to Vivian De Smedt
2745 <vivian-AT-vdesmedt.com> for the original patches.
2749 <vivian-AT-vdesmedt.com> for the original patches.
2746
2750
2747 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2751 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2748
2752
2749 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2753 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2750 sequence to consistently accept the banner argument. The
2754 sequence to consistently accept the banner argument. The
2751 inconsistency was tripping SAGE, thanks to Gary Zablackis
2755 inconsistency was tripping SAGE, thanks to Gary Zablackis
2752 <gzabl-AT-yahoo.com> for the report.
2756 <gzabl-AT-yahoo.com> for the report.
2753
2757
2754 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2758 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2755
2759
2756 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2760 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2757 Fix bug where a naked 'alias' call in the ipythonrc file would
2761 Fix bug where a naked 'alias' call in the ipythonrc file would
2758 cause a crash. Bug reported by Jorgen Stenarson.
2762 cause a crash. Bug reported by Jorgen Stenarson.
2759
2763
2760 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2764 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2761
2765
2762 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2766 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2763 startup time.
2767 startup time.
2764
2768
2765 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2769 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2766 instances had introduced a bug with globals in normal code. Now
2770 instances had introduced a bug with globals in normal code. Now
2767 it's working in all cases.
2771 it's working in all cases.
2768
2772
2769 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2773 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2770 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2774 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2771 has been introduced to set the default case sensitivity of the
2775 has been introduced to set the default case sensitivity of the
2772 searches. Users can still select either mode at runtime on a
2776 searches. Users can still select either mode at runtime on a
2773 per-search basis.
2777 per-search basis.
2774
2778
2775 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2779 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2776
2780
2777 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2781 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2778 attributes in wildcard searches for subclasses. Modified version
2782 attributes in wildcard searches for subclasses. Modified version
2779 of a patch by Jorgen.
2783 of a patch by Jorgen.
2780
2784
2781 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2785 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2782
2786
2783 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2787 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2784 embedded instances. I added a user_global_ns attribute to the
2788 embedded instances. I added a user_global_ns attribute to the
2785 InteractiveShell class to handle this.
2789 InteractiveShell class to handle this.
2786
2790
2787 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2791 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2788
2792
2789 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2793 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2790 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2794 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2791 (reported under win32, but may happen also in other platforms).
2795 (reported under win32, but may happen also in other platforms).
2792 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2796 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2793
2797
2794 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2798 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2795
2799
2796 * IPython/Magic.py (magic_psearch): new support for wildcard
2800 * IPython/Magic.py (magic_psearch): new support for wildcard
2797 patterns. Now, typing ?a*b will list all names which begin with a
2801 patterns. Now, typing ?a*b will list all names which begin with a
2798 and end in b, for example. The %psearch magic has full
2802 and end in b, for example. The %psearch magic has full
2799 docstrings. Many thanks to JΓΆrgen Stenarson
2803 docstrings. Many thanks to JΓΆrgen Stenarson
2800 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2804 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2801 implementing this functionality.
2805 implementing this functionality.
2802
2806
2803 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2807 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2804
2808
2805 * Manual: fixed long-standing annoyance of double-dashes (as in
2809 * Manual: fixed long-standing annoyance of double-dashes (as in
2806 --prefix=~, for example) being stripped in the HTML version. This
2810 --prefix=~, for example) being stripped in the HTML version. This
2807 is a latex2html bug, but a workaround was provided. Many thanks
2811 is a latex2html bug, but a workaround was provided. Many thanks
2808 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2812 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2809 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2813 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2810 rolling. This seemingly small issue had tripped a number of users
2814 rolling. This seemingly small issue had tripped a number of users
2811 when first installing, so I'm glad to see it gone.
2815 when first installing, so I'm glad to see it gone.
2812
2816
2813 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2817 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2814
2818
2815 * IPython/Extensions/numeric_formats.py: fix missing import,
2819 * IPython/Extensions/numeric_formats.py: fix missing import,
2816 reported by Stephen Walton.
2820 reported by Stephen Walton.
2817
2821
2818 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2822 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2819
2823
2820 * IPython/demo.py: finish demo module, fully documented now.
2824 * IPython/demo.py: finish demo module, fully documented now.
2821
2825
2822 * IPython/genutils.py (file_read): simple little utility to read a
2826 * IPython/genutils.py (file_read): simple little utility to read a
2823 file and ensure it's closed afterwards.
2827 file and ensure it's closed afterwards.
2824
2828
2825 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2829 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2826
2830
2827 * IPython/demo.py (Demo.__init__): added support for individually
2831 * IPython/demo.py (Demo.__init__): added support for individually
2828 tagging blocks for automatic execution.
2832 tagging blocks for automatic execution.
2829
2833
2830 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2834 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2831 syntax-highlighted python sources, requested by John.
2835 syntax-highlighted python sources, requested by John.
2832
2836
2833 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2837 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2834
2838
2835 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2839 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2836 finishing.
2840 finishing.
2837
2841
2838 * IPython/genutils.py (shlex_split): moved from Magic to here,
2842 * IPython/genutils.py (shlex_split): moved from Magic to here,
2839 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2843 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2840
2844
2841 * IPython/demo.py (Demo.__init__): added support for silent
2845 * IPython/demo.py (Demo.__init__): added support for silent
2842 blocks, improved marks as regexps, docstrings written.
2846 blocks, improved marks as regexps, docstrings written.
2843 (Demo.__init__): better docstring, added support for sys.argv.
2847 (Demo.__init__): better docstring, added support for sys.argv.
2844
2848
2845 * IPython/genutils.py (marquee): little utility used by the demo
2849 * IPython/genutils.py (marquee): little utility used by the demo
2846 code, handy in general.
2850 code, handy in general.
2847
2851
2848 * IPython/demo.py (Demo.__init__): new class for interactive
2852 * IPython/demo.py (Demo.__init__): new class for interactive
2849 demos. Not documented yet, I just wrote it in a hurry for
2853 demos. Not documented yet, I just wrote it in a hurry for
2850 scipy'05. Will docstring later.
2854 scipy'05. Will docstring later.
2851
2855
2852 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2856 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2853
2857
2854 * IPython/Shell.py (sigint_handler): Drastic simplification which
2858 * IPython/Shell.py (sigint_handler): Drastic simplification which
2855 also seems to make Ctrl-C work correctly across threads! This is
2859 also seems to make Ctrl-C work correctly across threads! This is
2856 so simple, that I can't beleive I'd missed it before. Needs more
2860 so simple, that I can't beleive I'd missed it before. Needs more
2857 testing, though.
2861 testing, though.
2858 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2862 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2859 like this before...
2863 like this before...
2860
2864
2861 * IPython/genutils.py (get_home_dir): add protection against
2865 * IPython/genutils.py (get_home_dir): add protection against
2862 non-dirs in win32 registry.
2866 non-dirs in win32 registry.
2863
2867
2864 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2868 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2865 bug where dict was mutated while iterating (pysh crash).
2869 bug where dict was mutated while iterating (pysh crash).
2866
2870
2867 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2871 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2868
2872
2869 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2873 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2870 spurious newlines added by this routine. After a report by
2874 spurious newlines added by this routine. After a report by
2871 F. Mantegazza.
2875 F. Mantegazza.
2872
2876
2873 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2877 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2874
2878
2875 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2879 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2876 calls. These were a leftover from the GTK 1.x days, and can cause
2880 calls. These were a leftover from the GTK 1.x days, and can cause
2877 problems in certain cases (after a report by John Hunter).
2881 problems in certain cases (after a report by John Hunter).
2878
2882
2879 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2883 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2880 os.getcwd() fails at init time. Thanks to patch from David Remahl
2884 os.getcwd() fails at init time. Thanks to patch from David Remahl
2881 <chmod007-AT-mac.com>.
2885 <chmod007-AT-mac.com>.
2882 (InteractiveShell.__init__): prevent certain special magics from
2886 (InteractiveShell.__init__): prevent certain special magics from
2883 being shadowed by aliases. Closes
2887 being shadowed by aliases. Closes
2884 http://www.scipy.net/roundup/ipython/issue41.
2888 http://www.scipy.net/roundup/ipython/issue41.
2885
2889
2886 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2890 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2887
2891
2888 * IPython/iplib.py (InteractiveShell.complete): Added new
2892 * IPython/iplib.py (InteractiveShell.complete): Added new
2889 top-level completion method to expose the completion mechanism
2893 top-level completion method to expose the completion mechanism
2890 beyond readline-based environments.
2894 beyond readline-based environments.
2891
2895
2892 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2896 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2893
2897
2894 * tools/ipsvnc (svnversion): fix svnversion capture.
2898 * tools/ipsvnc (svnversion): fix svnversion capture.
2895
2899
2896 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2900 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2897 attribute to self, which was missing. Before, it was set by a
2901 attribute to self, which was missing. Before, it was set by a
2898 routine which in certain cases wasn't being called, so the
2902 routine which in certain cases wasn't being called, so the
2899 instance could end up missing the attribute. This caused a crash.
2903 instance could end up missing the attribute. This caused a crash.
2900 Closes http://www.scipy.net/roundup/ipython/issue40.
2904 Closes http://www.scipy.net/roundup/ipython/issue40.
2901
2905
2902 2005-08-16 Fernando Perez <fperez@colorado.edu>
2906 2005-08-16 Fernando Perez <fperez@colorado.edu>
2903
2907
2904 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2908 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2905 contains non-string attribute. Closes
2909 contains non-string attribute. Closes
2906 http://www.scipy.net/roundup/ipython/issue38.
2910 http://www.scipy.net/roundup/ipython/issue38.
2907
2911
2908 2005-08-14 Fernando Perez <fperez@colorado.edu>
2912 2005-08-14 Fernando Perez <fperez@colorado.edu>
2909
2913
2910 * tools/ipsvnc: Minor improvements, to add changeset info.
2914 * tools/ipsvnc: Minor improvements, to add changeset info.
2911
2915
2912 2005-08-12 Fernando Perez <fperez@colorado.edu>
2916 2005-08-12 Fernando Perez <fperez@colorado.edu>
2913
2917
2914 * IPython/iplib.py (runsource): remove self.code_to_run_src
2918 * IPython/iplib.py (runsource): remove self.code_to_run_src
2915 attribute. I realized this is nothing more than
2919 attribute. I realized this is nothing more than
2916 '\n'.join(self.buffer), and having the same data in two different
2920 '\n'.join(self.buffer), and having the same data in two different
2917 places is just asking for synchronization bugs. This may impact
2921 places is just asking for synchronization bugs. This may impact
2918 people who have custom exception handlers, so I need to warn
2922 people who have custom exception handlers, so I need to warn
2919 ipython-dev about it (F. Mantegazza may use them).
2923 ipython-dev about it (F. Mantegazza may use them).
2920
2924
2921 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2925 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2922
2926
2923 * IPython/genutils.py: fix 2.2 compatibility (generators)
2927 * IPython/genutils.py: fix 2.2 compatibility (generators)
2924
2928
2925 2005-07-18 Fernando Perez <fperez@colorado.edu>
2929 2005-07-18 Fernando Perez <fperez@colorado.edu>
2926
2930
2927 * IPython/genutils.py (get_home_dir): fix to help users with
2931 * IPython/genutils.py (get_home_dir): fix to help users with
2928 invalid $HOME under win32.
2932 invalid $HOME under win32.
2929
2933
2930 2005-07-17 Fernando Perez <fperez@colorado.edu>
2934 2005-07-17 Fernando Perez <fperez@colorado.edu>
2931
2935
2932 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2936 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2933 some old hacks and clean up a bit other routines; code should be
2937 some old hacks and clean up a bit other routines; code should be
2934 simpler and a bit faster.
2938 simpler and a bit faster.
2935
2939
2936 * IPython/iplib.py (interact): removed some last-resort attempts
2940 * IPython/iplib.py (interact): removed some last-resort attempts
2937 to survive broken stdout/stderr. That code was only making it
2941 to survive broken stdout/stderr. That code was only making it
2938 harder to abstract out the i/o (necessary for gui integration),
2942 harder to abstract out the i/o (necessary for gui integration),
2939 and the crashes it could prevent were extremely rare in practice
2943 and the crashes it could prevent were extremely rare in practice
2940 (besides being fully user-induced in a pretty violent manner).
2944 (besides being fully user-induced in a pretty violent manner).
2941
2945
2942 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2946 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2943 Nothing major yet, but the code is simpler to read; this should
2947 Nothing major yet, but the code is simpler to read; this should
2944 make it easier to do more serious modifications in the future.
2948 make it easier to do more serious modifications in the future.
2945
2949
2946 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2950 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2947 which broke in .15 (thanks to a report by Ville).
2951 which broke in .15 (thanks to a report by Ville).
2948
2952
2949 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2953 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2950 be quite correct, I know next to nothing about unicode). This
2954 be quite correct, I know next to nothing about unicode). This
2951 will allow unicode strings to be used in prompts, amongst other
2955 will allow unicode strings to be used in prompts, amongst other
2952 cases. It also will prevent ipython from crashing when unicode
2956 cases. It also will prevent ipython from crashing when unicode
2953 shows up unexpectedly in many places. If ascii encoding fails, we
2957 shows up unexpectedly in many places. If ascii encoding fails, we
2954 assume utf_8. Currently the encoding is not a user-visible
2958 assume utf_8. Currently the encoding is not a user-visible
2955 setting, though it could be made so if there is demand for it.
2959 setting, though it could be made so if there is demand for it.
2956
2960
2957 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2961 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2958
2962
2959 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2963 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2960
2964
2961 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2965 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2962
2966
2963 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2967 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2964 code can work transparently for 2.2/2.3.
2968 code can work transparently for 2.2/2.3.
2965
2969
2966 2005-07-16 Fernando Perez <fperez@colorado.edu>
2970 2005-07-16 Fernando Perez <fperez@colorado.edu>
2967
2971
2968 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2972 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2969 out of the color scheme table used for coloring exception
2973 out of the color scheme table used for coloring exception
2970 tracebacks. This allows user code to add new schemes at runtime.
2974 tracebacks. This allows user code to add new schemes at runtime.
2971 This is a minimally modified version of the patch at
2975 This is a minimally modified version of the patch at
2972 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2976 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2973 for the contribution.
2977 for the contribution.
2974
2978
2975 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2979 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2976 slightly modified version of the patch in
2980 slightly modified version of the patch in
2977 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2981 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2978 to remove the previous try/except solution (which was costlier).
2982 to remove the previous try/except solution (which was costlier).
2979 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2983 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2980
2984
2981 2005-06-08 Fernando Perez <fperez@colorado.edu>
2985 2005-06-08 Fernando Perez <fperez@colorado.edu>
2982
2986
2983 * IPython/iplib.py (write/write_err): Add methods to abstract all
2987 * IPython/iplib.py (write/write_err): Add methods to abstract all
2984 I/O a bit more.
2988 I/O a bit more.
2985
2989
2986 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2990 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2987 warning, reported by Aric Hagberg, fix by JD Hunter.
2991 warning, reported by Aric Hagberg, fix by JD Hunter.
2988
2992
2989 2005-06-02 *** Released version 0.6.15
2993 2005-06-02 *** Released version 0.6.15
2990
2994
2991 2005-06-01 Fernando Perez <fperez@colorado.edu>
2995 2005-06-01 Fernando Perez <fperez@colorado.edu>
2992
2996
2993 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2997 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2994 tab-completion of filenames within open-quoted strings. Note that
2998 tab-completion of filenames within open-quoted strings. Note that
2995 this requires that in ~/.ipython/ipythonrc, users change the
2999 this requires that in ~/.ipython/ipythonrc, users change the
2996 readline delimiters configuration to read:
3000 readline delimiters configuration to read:
2997
3001
2998 readline_remove_delims -/~
3002 readline_remove_delims -/~
2999
3003
3000
3004
3001 2005-05-31 *** Released version 0.6.14
3005 2005-05-31 *** Released version 0.6.14
3002
3006
3003 2005-05-29 Fernando Perez <fperez@colorado.edu>
3007 2005-05-29 Fernando Perez <fperez@colorado.edu>
3004
3008
3005 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3009 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3006 with files not on the filesystem. Reported by Eliyahu Sandler
3010 with files not on the filesystem. Reported by Eliyahu Sandler
3007 <eli@gondolin.net>
3011 <eli@gondolin.net>
3008
3012
3009 2005-05-22 Fernando Perez <fperez@colorado.edu>
3013 2005-05-22 Fernando Perez <fperez@colorado.edu>
3010
3014
3011 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3015 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3012 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3016 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3013
3017
3014 2005-05-19 Fernando Perez <fperez@colorado.edu>
3018 2005-05-19 Fernando Perez <fperez@colorado.edu>
3015
3019
3016 * IPython/iplib.py (safe_execfile): close a file which could be
3020 * IPython/iplib.py (safe_execfile): close a file which could be
3017 left open (causing problems in win32, which locks open files).
3021 left open (causing problems in win32, which locks open files).
3018 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3022 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3019
3023
3020 2005-05-18 Fernando Perez <fperez@colorado.edu>
3024 2005-05-18 Fernando Perez <fperez@colorado.edu>
3021
3025
3022 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3026 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3023 keyword arguments correctly to safe_execfile().
3027 keyword arguments correctly to safe_execfile().
3024
3028
3025 2005-05-13 Fernando Perez <fperez@colorado.edu>
3029 2005-05-13 Fernando Perez <fperez@colorado.edu>
3026
3030
3027 * ipython.1: Added info about Qt to manpage, and threads warning
3031 * ipython.1: Added info about Qt to manpage, and threads warning
3028 to usage page (invoked with --help).
3032 to usage page (invoked with --help).
3029
3033
3030 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3034 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3031 new matcher (it goes at the end of the priority list) to do
3035 new matcher (it goes at the end of the priority list) to do
3032 tab-completion on named function arguments. Submitted by George
3036 tab-completion on named function arguments. Submitted by George
3033 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3037 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3034 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3038 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3035 for more details.
3039 for more details.
3036
3040
3037 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3041 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3038 SystemExit exceptions in the script being run. Thanks to a report
3042 SystemExit exceptions in the script being run. Thanks to a report
3039 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3043 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3040 producing very annoying behavior when running unit tests.
3044 producing very annoying behavior when running unit tests.
3041
3045
3042 2005-05-12 Fernando Perez <fperez@colorado.edu>
3046 2005-05-12 Fernando Perez <fperez@colorado.edu>
3043
3047
3044 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3048 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3045 which I'd broken (again) due to a changed regexp. In the process,
3049 which I'd broken (again) due to a changed regexp. In the process,
3046 added ';' as an escape to auto-quote the whole line without
3050 added ';' as an escape to auto-quote the whole line without
3047 splitting its arguments. Thanks to a report by Jerry McRae
3051 splitting its arguments. Thanks to a report by Jerry McRae
3048 <qrs0xyc02-AT-sneakemail.com>.
3052 <qrs0xyc02-AT-sneakemail.com>.
3049
3053
3050 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3054 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3051 possible crashes caused by a TokenError. Reported by Ed Schofield
3055 possible crashes caused by a TokenError. Reported by Ed Schofield
3052 <schofield-AT-ftw.at>.
3056 <schofield-AT-ftw.at>.
3053
3057
3054 2005-05-06 Fernando Perez <fperez@colorado.edu>
3058 2005-05-06 Fernando Perez <fperez@colorado.edu>
3055
3059
3056 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3060 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3057
3061
3058 2005-04-29 Fernando Perez <fperez@colorado.edu>
3062 2005-04-29 Fernando Perez <fperez@colorado.edu>
3059
3063
3060 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3064 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3061 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3065 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3062 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3066 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3063 which provides support for Qt interactive usage (similar to the
3067 which provides support for Qt interactive usage (similar to the
3064 existing one for WX and GTK). This had been often requested.
3068 existing one for WX and GTK). This had been often requested.
3065
3069
3066 2005-04-14 *** Released version 0.6.13
3070 2005-04-14 *** Released version 0.6.13
3067
3071
3068 2005-04-08 Fernando Perez <fperez@colorado.edu>
3072 2005-04-08 Fernando Perez <fperez@colorado.edu>
3069
3073
3070 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3074 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3071 from _ofind, which gets called on almost every input line. Now,
3075 from _ofind, which gets called on almost every input line. Now,
3072 we only try to get docstrings if they are actually going to be
3076 we only try to get docstrings if they are actually going to be
3073 used (the overhead of fetching unnecessary docstrings can be
3077 used (the overhead of fetching unnecessary docstrings can be
3074 noticeable for certain objects, such as Pyro proxies).
3078 noticeable for certain objects, such as Pyro proxies).
3075
3079
3076 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3080 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3077 for completers. For some reason I had been passing them the state
3081 for completers. For some reason I had been passing them the state
3078 variable, which completers never actually need, and was in
3082 variable, which completers never actually need, and was in
3079 conflict with the rlcompleter API. Custom completers ONLY need to
3083 conflict with the rlcompleter API. Custom completers ONLY need to
3080 take the text parameter.
3084 take the text parameter.
3081
3085
3082 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3086 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3083 work correctly in pysh. I've also moved all the logic which used
3087 work correctly in pysh. I've also moved all the logic which used
3084 to be in pysh.py here, which will prevent problems with future
3088 to be in pysh.py here, which will prevent problems with future
3085 upgrades. However, this time I must warn users to update their
3089 upgrades. However, this time I must warn users to update their
3086 pysh profile to include the line
3090 pysh profile to include the line
3087
3091
3088 import_all IPython.Extensions.InterpreterExec
3092 import_all IPython.Extensions.InterpreterExec
3089
3093
3090 because otherwise things won't work for them. They MUST also
3094 because otherwise things won't work for them. They MUST also
3091 delete pysh.py and the line
3095 delete pysh.py and the line
3092
3096
3093 execfile pysh.py
3097 execfile pysh.py
3094
3098
3095 from their ipythonrc-pysh.
3099 from their ipythonrc-pysh.
3096
3100
3097 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3101 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3098 robust in the face of objects whose dir() returns non-strings
3102 robust in the face of objects whose dir() returns non-strings
3099 (which it shouldn't, but some broken libs like ITK do). Thanks to
3103 (which it shouldn't, but some broken libs like ITK do). Thanks to
3100 a patch by John Hunter (implemented differently, though). Also
3104 a patch by John Hunter (implemented differently, though). Also
3101 minor improvements by using .extend instead of + on lists.
3105 minor improvements by using .extend instead of + on lists.
3102
3106
3103 * pysh.py:
3107 * pysh.py:
3104
3108
3105 2005-04-06 Fernando Perez <fperez@colorado.edu>
3109 2005-04-06 Fernando Perez <fperez@colorado.edu>
3106
3110
3107 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3111 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3108 by default, so that all users benefit from it. Those who don't
3112 by default, so that all users benefit from it. Those who don't
3109 want it can still turn it off.
3113 want it can still turn it off.
3110
3114
3111 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3115 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3112 config file, I'd forgotten about this, so users were getting it
3116 config file, I'd forgotten about this, so users were getting it
3113 off by default.
3117 off by default.
3114
3118
3115 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3119 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3116 consistency. Now magics can be called in multiline statements,
3120 consistency. Now magics can be called in multiline statements,
3117 and python variables can be expanded in magic calls via $var.
3121 and python variables can be expanded in magic calls via $var.
3118 This makes the magic system behave just like aliases or !system
3122 This makes the magic system behave just like aliases or !system
3119 calls.
3123 calls.
3120
3124
3121 2005-03-28 Fernando Perez <fperez@colorado.edu>
3125 2005-03-28 Fernando Perez <fperez@colorado.edu>
3122
3126
3123 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3127 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3124 expensive string additions for building command. Add support for
3128 expensive string additions for building command. Add support for
3125 trailing ';' when autocall is used.
3129 trailing ';' when autocall is used.
3126
3130
3127 2005-03-26 Fernando Perez <fperez@colorado.edu>
3131 2005-03-26 Fernando Perez <fperez@colorado.edu>
3128
3132
3129 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3133 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3130 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3134 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3131 ipython.el robust against prompts with any number of spaces
3135 ipython.el robust against prompts with any number of spaces
3132 (including 0) after the ':' character.
3136 (including 0) after the ':' character.
3133
3137
3134 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3138 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3135 continuation prompt, which misled users to think the line was
3139 continuation prompt, which misled users to think the line was
3136 already indented. Closes debian Bug#300847, reported to me by
3140 already indented. Closes debian Bug#300847, reported to me by
3137 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3141 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3138
3142
3139 2005-03-23 Fernando Perez <fperez@colorado.edu>
3143 2005-03-23 Fernando Perez <fperez@colorado.edu>
3140
3144
3141 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3145 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3142 properly aligned if they have embedded newlines.
3146 properly aligned if they have embedded newlines.
3143
3147
3144 * IPython/iplib.py (runlines): Add a public method to expose
3148 * IPython/iplib.py (runlines): Add a public method to expose
3145 IPython's code execution machinery, so that users can run strings
3149 IPython's code execution machinery, so that users can run strings
3146 as if they had been typed at the prompt interactively.
3150 as if they had been typed at the prompt interactively.
3147 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3151 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3148 methods which can call the system shell, but with python variable
3152 methods which can call the system shell, but with python variable
3149 expansion. The three such methods are: __IPYTHON__.system,
3153 expansion. The three such methods are: __IPYTHON__.system,
3150 .getoutput and .getoutputerror. These need to be documented in a
3154 .getoutput and .getoutputerror. These need to be documented in a
3151 'public API' section (to be written) of the manual.
3155 'public API' section (to be written) of the manual.
3152
3156
3153 2005-03-20 Fernando Perez <fperez@colorado.edu>
3157 2005-03-20 Fernando Perez <fperez@colorado.edu>
3154
3158
3155 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3159 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3156 for custom exception handling. This is quite powerful, and it
3160 for custom exception handling. This is quite powerful, and it
3157 allows for user-installable exception handlers which can trap
3161 allows for user-installable exception handlers which can trap
3158 custom exceptions at runtime and treat them separately from
3162 custom exceptions at runtime and treat them separately from
3159 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3163 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3160 Mantegazza <mantegazza-AT-ill.fr>.
3164 Mantegazza <mantegazza-AT-ill.fr>.
3161 (InteractiveShell.set_custom_completer): public API function to
3165 (InteractiveShell.set_custom_completer): public API function to
3162 add new completers at runtime.
3166 add new completers at runtime.
3163
3167
3164 2005-03-19 Fernando Perez <fperez@colorado.edu>
3168 2005-03-19 Fernando Perez <fperez@colorado.edu>
3165
3169
3166 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3170 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3167 allow objects which provide their docstrings via non-standard
3171 allow objects which provide their docstrings via non-standard
3168 mechanisms (like Pyro proxies) to still be inspected by ipython's
3172 mechanisms (like Pyro proxies) to still be inspected by ipython's
3169 ? system.
3173 ? system.
3170
3174
3171 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3175 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3172 automatic capture system. I tried quite hard to make it work
3176 automatic capture system. I tried quite hard to make it work
3173 reliably, and simply failed. I tried many combinations with the
3177 reliably, and simply failed. I tried many combinations with the
3174 subprocess module, but eventually nothing worked in all needed
3178 subprocess module, but eventually nothing worked in all needed
3175 cases (not blocking stdin for the child, duplicating stdout
3179 cases (not blocking stdin for the child, duplicating stdout
3176 without blocking, etc). The new %sc/%sx still do capture to these
3180 without blocking, etc). The new %sc/%sx still do capture to these
3177 magical list/string objects which make shell use much more
3181 magical list/string objects which make shell use much more
3178 conveninent, so not all is lost.
3182 conveninent, so not all is lost.
3179
3183
3180 XXX - FIX MANUAL for the change above!
3184 XXX - FIX MANUAL for the change above!
3181
3185
3182 (runsource): I copied code.py's runsource() into ipython to modify
3186 (runsource): I copied code.py's runsource() into ipython to modify
3183 it a bit. Now the code object and source to be executed are
3187 it a bit. Now the code object and source to be executed are
3184 stored in ipython. This makes this info accessible to third-party
3188 stored in ipython. This makes this info accessible to third-party
3185 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3189 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3186 Mantegazza <mantegazza-AT-ill.fr>.
3190 Mantegazza <mantegazza-AT-ill.fr>.
3187
3191
3188 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3192 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3189 history-search via readline (like C-p/C-n). I'd wanted this for a
3193 history-search via readline (like C-p/C-n). I'd wanted this for a
3190 long time, but only recently found out how to do it. For users
3194 long time, but only recently found out how to do it. For users
3191 who already have their ipythonrc files made and want this, just
3195 who already have their ipythonrc files made and want this, just
3192 add:
3196 add:
3193
3197
3194 readline_parse_and_bind "\e[A": history-search-backward
3198 readline_parse_and_bind "\e[A": history-search-backward
3195 readline_parse_and_bind "\e[B": history-search-forward
3199 readline_parse_and_bind "\e[B": history-search-forward
3196
3200
3197 2005-03-18 Fernando Perez <fperez@colorado.edu>
3201 2005-03-18 Fernando Perez <fperez@colorado.edu>
3198
3202
3199 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3203 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3200 LSString and SList classes which allow transparent conversions
3204 LSString and SList classes which allow transparent conversions
3201 between list mode and whitespace-separated string.
3205 between list mode and whitespace-separated string.
3202 (magic_r): Fix recursion problem in %r.
3206 (magic_r): Fix recursion problem in %r.
3203
3207
3204 * IPython/genutils.py (LSString): New class to be used for
3208 * IPython/genutils.py (LSString): New class to be used for
3205 automatic storage of the results of all alias/system calls in _o
3209 automatic storage of the results of all alias/system calls in _o
3206 and _e (stdout/err). These provide a .l/.list attribute which
3210 and _e (stdout/err). These provide a .l/.list attribute which
3207 does automatic splitting on newlines. This means that for most
3211 does automatic splitting on newlines. This means that for most
3208 uses, you'll never need to do capturing of output with %sc/%sx
3212 uses, you'll never need to do capturing of output with %sc/%sx
3209 anymore, since ipython keeps this always done for you. Note that
3213 anymore, since ipython keeps this always done for you. Note that
3210 only the LAST results are stored, the _o/e variables are
3214 only the LAST results are stored, the _o/e variables are
3211 overwritten on each call. If you need to save their contents
3215 overwritten on each call. If you need to save their contents
3212 further, simply bind them to any other name.
3216 further, simply bind them to any other name.
3213
3217
3214 2005-03-17 Fernando Perez <fperez@colorado.edu>
3218 2005-03-17 Fernando Perez <fperez@colorado.edu>
3215
3219
3216 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3220 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3217 prompt namespace handling.
3221 prompt namespace handling.
3218
3222
3219 2005-03-16 Fernando Perez <fperez@colorado.edu>
3223 2005-03-16 Fernando Perez <fperez@colorado.edu>
3220
3224
3221 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3225 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3222 classic prompts to be '>>> ' (final space was missing, and it
3226 classic prompts to be '>>> ' (final space was missing, and it
3223 trips the emacs python mode).
3227 trips the emacs python mode).
3224 (BasePrompt.__str__): Added safe support for dynamic prompt
3228 (BasePrompt.__str__): Added safe support for dynamic prompt
3225 strings. Now you can set your prompt string to be '$x', and the
3229 strings. Now you can set your prompt string to be '$x', and the
3226 value of x will be printed from your interactive namespace. The
3230 value of x will be printed from your interactive namespace. The
3227 interpolation syntax includes the full Itpl support, so
3231 interpolation syntax includes the full Itpl support, so
3228 ${foo()+x+bar()} is a valid prompt string now, and the function
3232 ${foo()+x+bar()} is a valid prompt string now, and the function
3229 calls will be made at runtime.
3233 calls will be made at runtime.
3230
3234
3231 2005-03-15 Fernando Perez <fperez@colorado.edu>
3235 2005-03-15 Fernando Perez <fperez@colorado.edu>
3232
3236
3233 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3237 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3234 avoid name clashes in pylab. %hist still works, it just forwards
3238 avoid name clashes in pylab. %hist still works, it just forwards
3235 the call to %history.
3239 the call to %history.
3236
3240
3237 2005-03-02 *** Released version 0.6.12
3241 2005-03-02 *** Released version 0.6.12
3238
3242
3239 2005-03-02 Fernando Perez <fperez@colorado.edu>
3243 2005-03-02 Fernando Perez <fperez@colorado.edu>
3240
3244
3241 * IPython/iplib.py (handle_magic): log magic calls properly as
3245 * IPython/iplib.py (handle_magic): log magic calls properly as
3242 ipmagic() function calls.
3246 ipmagic() function calls.
3243
3247
3244 * IPython/Magic.py (magic_time): Improved %time to support
3248 * IPython/Magic.py (magic_time): Improved %time to support
3245 statements and provide wall-clock as well as CPU time.
3249 statements and provide wall-clock as well as CPU time.
3246
3250
3247 2005-02-27 Fernando Perez <fperez@colorado.edu>
3251 2005-02-27 Fernando Perez <fperez@colorado.edu>
3248
3252
3249 * IPython/hooks.py: New hooks module, to expose user-modifiable
3253 * IPython/hooks.py: New hooks module, to expose user-modifiable
3250 IPython functionality in a clean manner. For now only the editor
3254 IPython functionality in a clean manner. For now only the editor
3251 hook is actually written, and other thigns which I intend to turn
3255 hook is actually written, and other thigns which I intend to turn
3252 into proper hooks aren't yet there. The display and prefilter
3256 into proper hooks aren't yet there. The display and prefilter
3253 stuff, for example, should be hooks. But at least now the
3257 stuff, for example, should be hooks. But at least now the
3254 framework is in place, and the rest can be moved here with more
3258 framework is in place, and the rest can be moved here with more
3255 time later. IPython had had a .hooks variable for a long time for
3259 time later. IPython had had a .hooks variable for a long time for
3256 this purpose, but I'd never actually used it for anything.
3260 this purpose, but I'd never actually used it for anything.
3257
3261
3258 2005-02-26 Fernando Perez <fperez@colorado.edu>
3262 2005-02-26 Fernando Perez <fperez@colorado.edu>
3259
3263
3260 * IPython/ipmaker.py (make_IPython): make the default ipython
3264 * IPython/ipmaker.py (make_IPython): make the default ipython
3261 directory be called _ipython under win32, to follow more the
3265 directory be called _ipython under win32, to follow more the
3262 naming peculiarities of that platform (where buggy software like
3266 naming peculiarities of that platform (where buggy software like
3263 Visual Sourcesafe breaks with .named directories). Reported by
3267 Visual Sourcesafe breaks with .named directories). Reported by
3264 Ville Vainio.
3268 Ville Vainio.
3265
3269
3266 2005-02-23 Fernando Perez <fperez@colorado.edu>
3270 2005-02-23 Fernando Perez <fperez@colorado.edu>
3267
3271
3268 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3272 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3269 auto_aliases for win32 which were causing problems. Users can
3273 auto_aliases for win32 which were causing problems. Users can
3270 define the ones they personally like.
3274 define the ones they personally like.
3271
3275
3272 2005-02-21 Fernando Perez <fperez@colorado.edu>
3276 2005-02-21 Fernando Perez <fperez@colorado.edu>
3273
3277
3274 * IPython/Magic.py (magic_time): new magic to time execution of
3278 * IPython/Magic.py (magic_time): new magic to time execution of
3275 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3279 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3276
3280
3277 2005-02-19 Fernando Perez <fperez@colorado.edu>
3281 2005-02-19 Fernando Perez <fperez@colorado.edu>
3278
3282
3279 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3283 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3280 into keys (for prompts, for example).
3284 into keys (for prompts, for example).
3281
3285
3282 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3286 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3283 prompts in case users want them. This introduces a small behavior
3287 prompts in case users want them. This introduces a small behavior
3284 change: ipython does not automatically add a space to all prompts
3288 change: ipython does not automatically add a space to all prompts
3285 anymore. To get the old prompts with a space, users should add it
3289 anymore. To get the old prompts with a space, users should add it
3286 manually to their ipythonrc file, so for example prompt_in1 should
3290 manually to their ipythonrc file, so for example prompt_in1 should
3287 now read 'In [\#]: ' instead of 'In [\#]:'.
3291 now read 'In [\#]: ' instead of 'In [\#]:'.
3288 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3292 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3289 file) to control left-padding of secondary prompts.
3293 file) to control left-padding of secondary prompts.
3290
3294
3291 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3295 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3292 the profiler can't be imported. Fix for Debian, which removed
3296 the profiler can't be imported. Fix for Debian, which removed
3293 profile.py because of License issues. I applied a slightly
3297 profile.py because of License issues. I applied a slightly
3294 modified version of the original Debian patch at
3298 modified version of the original Debian patch at
3295 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3299 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3296
3300
3297 2005-02-17 Fernando Perez <fperez@colorado.edu>
3301 2005-02-17 Fernando Perez <fperez@colorado.edu>
3298
3302
3299 * IPython/genutils.py (native_line_ends): Fix bug which would
3303 * IPython/genutils.py (native_line_ends): Fix bug which would
3300 cause improper line-ends under win32 b/c I was not opening files
3304 cause improper line-ends under win32 b/c I was not opening files
3301 in binary mode. Bug report and fix thanks to Ville.
3305 in binary mode. Bug report and fix thanks to Ville.
3302
3306
3303 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3307 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3304 trying to catch spurious foo[1] autocalls. My fix actually broke
3308 trying to catch spurious foo[1] autocalls. My fix actually broke
3305 ',/' autoquote/call with explicit escape (bad regexp).
3309 ',/' autoquote/call with explicit escape (bad regexp).
3306
3310
3307 2005-02-15 *** Released version 0.6.11
3311 2005-02-15 *** Released version 0.6.11
3308
3312
3309 2005-02-14 Fernando Perez <fperez@colorado.edu>
3313 2005-02-14 Fernando Perez <fperez@colorado.edu>
3310
3314
3311 * IPython/background_jobs.py: New background job management
3315 * IPython/background_jobs.py: New background job management
3312 subsystem. This is implemented via a new set of classes, and
3316 subsystem. This is implemented via a new set of classes, and
3313 IPython now provides a builtin 'jobs' object for background job
3317 IPython now provides a builtin 'jobs' object for background job
3314 execution. A convenience %bg magic serves as a lightweight
3318 execution. A convenience %bg magic serves as a lightweight
3315 frontend for starting the more common type of calls. This was
3319 frontend for starting the more common type of calls. This was
3316 inspired by discussions with B. Granger and the BackgroundCommand
3320 inspired by discussions with B. Granger and the BackgroundCommand
3317 class described in the book Python Scripting for Computational
3321 class described in the book Python Scripting for Computational
3318 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3322 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3319 (although ultimately no code from this text was used, as IPython's
3323 (although ultimately no code from this text was used, as IPython's
3320 system is a separate implementation).
3324 system is a separate implementation).
3321
3325
3322 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3326 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3323 to control the completion of single/double underscore names
3327 to control the completion of single/double underscore names
3324 separately. As documented in the example ipytonrc file, the
3328 separately. As documented in the example ipytonrc file, the
3325 readline_omit__names variable can now be set to 2, to omit even
3329 readline_omit__names variable can now be set to 2, to omit even
3326 single underscore names. Thanks to a patch by Brian Wong
3330 single underscore names. Thanks to a patch by Brian Wong
3327 <BrianWong-AT-AirgoNetworks.Com>.
3331 <BrianWong-AT-AirgoNetworks.Com>.
3328 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3332 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3329 be autocalled as foo([1]) if foo were callable. A problem for
3333 be autocalled as foo([1]) if foo were callable. A problem for
3330 things which are both callable and implement __getitem__.
3334 things which are both callable and implement __getitem__.
3331 (init_readline): Fix autoindentation for win32. Thanks to a patch
3335 (init_readline): Fix autoindentation for win32. Thanks to a patch
3332 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3336 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3333
3337
3334 2005-02-12 Fernando Perez <fperez@colorado.edu>
3338 2005-02-12 Fernando Perez <fperez@colorado.edu>
3335
3339
3336 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3340 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3337 which I had written long ago to sort out user error messages which
3341 which I had written long ago to sort out user error messages which
3338 may occur during startup. This seemed like a good idea initially,
3342 may occur during startup. This seemed like a good idea initially,
3339 but it has proven a disaster in retrospect. I don't want to
3343 but it has proven a disaster in retrospect. I don't want to
3340 change much code for now, so my fix is to set the internal 'debug'
3344 change much code for now, so my fix is to set the internal 'debug'
3341 flag to true everywhere, whose only job was precisely to control
3345 flag to true everywhere, whose only job was precisely to control
3342 this subsystem. This closes issue 28 (as well as avoiding all
3346 this subsystem. This closes issue 28 (as well as avoiding all
3343 sorts of strange hangups which occur from time to time).
3347 sorts of strange hangups which occur from time to time).
3344
3348
3345 2005-02-07 Fernando Perez <fperez@colorado.edu>
3349 2005-02-07 Fernando Perez <fperez@colorado.edu>
3346
3350
3347 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3351 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3348 previous call produced a syntax error.
3352 previous call produced a syntax error.
3349
3353
3350 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3354 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3351 classes without constructor.
3355 classes without constructor.
3352
3356
3353 2005-02-06 Fernando Perez <fperez@colorado.edu>
3357 2005-02-06 Fernando Perez <fperez@colorado.edu>
3354
3358
3355 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3359 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3356 completions with the results of each matcher, so we return results
3360 completions with the results of each matcher, so we return results
3357 to the user from all namespaces. This breaks with ipython
3361 to the user from all namespaces. This breaks with ipython
3358 tradition, but I think it's a nicer behavior. Now you get all
3362 tradition, but I think it's a nicer behavior. Now you get all
3359 possible completions listed, from all possible namespaces (python,
3363 possible completions listed, from all possible namespaces (python,
3360 filesystem, magics...) After a request by John Hunter
3364 filesystem, magics...) After a request by John Hunter
3361 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3365 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3362
3366
3363 2005-02-05 Fernando Perez <fperez@colorado.edu>
3367 2005-02-05 Fernando Perez <fperez@colorado.edu>
3364
3368
3365 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3369 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3366 the call had quote characters in it (the quotes were stripped).
3370 the call had quote characters in it (the quotes were stripped).
3367
3371
3368 2005-01-31 Fernando Perez <fperez@colorado.edu>
3372 2005-01-31 Fernando Perez <fperez@colorado.edu>
3369
3373
3370 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3374 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3371 Itpl.itpl() to make the code more robust against psyco
3375 Itpl.itpl() to make the code more robust against psyco
3372 optimizations.
3376 optimizations.
3373
3377
3374 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3378 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3375 of causing an exception. Quicker, cleaner.
3379 of causing an exception. Quicker, cleaner.
3376
3380
3377 2005-01-28 Fernando Perez <fperez@colorado.edu>
3381 2005-01-28 Fernando Perez <fperez@colorado.edu>
3378
3382
3379 * scripts/ipython_win_post_install.py (install): hardcode
3383 * scripts/ipython_win_post_install.py (install): hardcode
3380 sys.prefix+'python.exe' as the executable path. It turns out that
3384 sys.prefix+'python.exe' as the executable path. It turns out that
3381 during the post-installation run, sys.executable resolves to the
3385 during the post-installation run, sys.executable resolves to the
3382 name of the binary installer! I should report this as a distutils
3386 name of the binary installer! I should report this as a distutils
3383 bug, I think. I updated the .10 release with this tiny fix, to
3387 bug, I think. I updated the .10 release with this tiny fix, to
3384 avoid annoying the lists further.
3388 avoid annoying the lists further.
3385
3389
3386 2005-01-27 *** Released version 0.6.10
3390 2005-01-27 *** Released version 0.6.10
3387
3391
3388 2005-01-27 Fernando Perez <fperez@colorado.edu>
3392 2005-01-27 Fernando Perez <fperez@colorado.edu>
3389
3393
3390 * IPython/numutils.py (norm): Added 'inf' as optional name for
3394 * IPython/numutils.py (norm): Added 'inf' as optional name for
3391 L-infinity norm, included references to mathworld.com for vector
3395 L-infinity norm, included references to mathworld.com for vector
3392 norm definitions.
3396 norm definitions.
3393 (amin/amax): added amin/amax for array min/max. Similar to what
3397 (amin/amax): added amin/amax for array min/max. Similar to what
3394 pylab ships with after the recent reorganization of names.
3398 pylab ships with after the recent reorganization of names.
3395 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3399 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3396
3400
3397 * ipython.el: committed Alex's recent fixes and improvements.
3401 * ipython.el: committed Alex's recent fixes and improvements.
3398 Tested with python-mode from CVS, and it looks excellent. Since
3402 Tested with python-mode from CVS, and it looks excellent. Since
3399 python-mode hasn't released anything in a while, I'm temporarily
3403 python-mode hasn't released anything in a while, I'm temporarily
3400 putting a copy of today's CVS (v 4.70) of python-mode in:
3404 putting a copy of today's CVS (v 4.70) of python-mode in:
3401 http://ipython.scipy.org/tmp/python-mode.el
3405 http://ipython.scipy.org/tmp/python-mode.el
3402
3406
3403 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3407 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3404 sys.executable for the executable name, instead of assuming it's
3408 sys.executable for the executable name, instead of assuming it's
3405 called 'python.exe' (the post-installer would have produced broken
3409 called 'python.exe' (the post-installer would have produced broken
3406 setups on systems with a differently named python binary).
3410 setups on systems with a differently named python binary).
3407
3411
3408 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3412 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3409 references to os.linesep, to make the code more
3413 references to os.linesep, to make the code more
3410 platform-independent. This is also part of the win32 coloring
3414 platform-independent. This is also part of the win32 coloring
3411 fixes.
3415 fixes.
3412
3416
3413 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3417 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3414 lines, which actually cause coloring bugs because the length of
3418 lines, which actually cause coloring bugs because the length of
3415 the line is very difficult to correctly compute with embedded
3419 the line is very difficult to correctly compute with embedded
3416 escapes. This was the source of all the coloring problems under
3420 escapes. This was the source of all the coloring problems under
3417 Win32. I think that _finally_, Win32 users have a properly
3421 Win32. I think that _finally_, Win32 users have a properly
3418 working ipython in all respects. This would never have happened
3422 working ipython in all respects. This would never have happened
3419 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3423 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3420
3424
3421 2005-01-26 *** Released version 0.6.9
3425 2005-01-26 *** Released version 0.6.9
3422
3426
3423 2005-01-25 Fernando Perez <fperez@colorado.edu>
3427 2005-01-25 Fernando Perez <fperez@colorado.edu>
3424
3428
3425 * setup.py: finally, we have a true Windows installer, thanks to
3429 * setup.py: finally, we have a true Windows installer, thanks to
3426 the excellent work of Viktor Ransmayr
3430 the excellent work of Viktor Ransmayr
3427 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3431 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3428 Windows users. The setup routine is quite a bit cleaner thanks to
3432 Windows users. The setup routine is quite a bit cleaner thanks to
3429 this, and the post-install script uses the proper functions to
3433 this, and the post-install script uses the proper functions to
3430 allow a clean de-installation using the standard Windows Control
3434 allow a clean de-installation using the standard Windows Control
3431 Panel.
3435 Panel.
3432
3436
3433 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3437 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3434 environment variable under all OSes (including win32) if
3438 environment variable under all OSes (including win32) if
3435 available. This will give consistency to win32 users who have set
3439 available. This will give consistency to win32 users who have set
3436 this variable for any reason. If os.environ['HOME'] fails, the
3440 this variable for any reason. If os.environ['HOME'] fails, the
3437 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3441 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3438
3442
3439 2005-01-24 Fernando Perez <fperez@colorado.edu>
3443 2005-01-24 Fernando Perez <fperez@colorado.edu>
3440
3444
3441 * IPython/numutils.py (empty_like): add empty_like(), similar to
3445 * IPython/numutils.py (empty_like): add empty_like(), similar to
3442 zeros_like() but taking advantage of the new empty() Numeric routine.
3446 zeros_like() but taking advantage of the new empty() Numeric routine.
3443
3447
3444 2005-01-23 *** Released version 0.6.8
3448 2005-01-23 *** Released version 0.6.8
3445
3449
3446 2005-01-22 Fernando Perez <fperez@colorado.edu>
3450 2005-01-22 Fernando Perez <fperez@colorado.edu>
3447
3451
3448 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3452 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3449 automatic show() calls. After discussing things with JDH, it
3453 automatic show() calls. After discussing things with JDH, it
3450 turns out there are too many corner cases where this can go wrong.
3454 turns out there are too many corner cases where this can go wrong.
3451 It's best not to try to be 'too smart', and simply have ipython
3455 It's best not to try to be 'too smart', and simply have ipython
3452 reproduce as much as possible the default behavior of a normal
3456 reproduce as much as possible the default behavior of a normal
3453 python shell.
3457 python shell.
3454
3458
3455 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3459 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3456 line-splitting regexp and _prefilter() to avoid calling getattr()
3460 line-splitting regexp and _prefilter() to avoid calling getattr()
3457 on assignments. This closes
3461 on assignments. This closes
3458 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3462 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3459 readline uses getattr(), so a simple <TAB> keypress is still
3463 readline uses getattr(), so a simple <TAB> keypress is still
3460 enough to trigger getattr() calls on an object.
3464 enough to trigger getattr() calls on an object.
3461
3465
3462 2005-01-21 Fernando Perez <fperez@colorado.edu>
3466 2005-01-21 Fernando Perez <fperez@colorado.edu>
3463
3467
3464 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3468 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3465 docstring under pylab so it doesn't mask the original.
3469 docstring under pylab so it doesn't mask the original.
3466
3470
3467 2005-01-21 *** Released version 0.6.7
3471 2005-01-21 *** Released version 0.6.7
3468
3472
3469 2005-01-21 Fernando Perez <fperez@colorado.edu>
3473 2005-01-21 Fernando Perez <fperez@colorado.edu>
3470
3474
3471 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3475 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3472 signal handling for win32 users in multithreaded mode.
3476 signal handling for win32 users in multithreaded mode.
3473
3477
3474 2005-01-17 Fernando Perez <fperez@colorado.edu>
3478 2005-01-17 Fernando Perez <fperez@colorado.edu>
3475
3479
3476 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3480 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3477 instances with no __init__. After a crash report by Norbert Nemec
3481 instances with no __init__. After a crash report by Norbert Nemec
3478 <Norbert-AT-nemec-online.de>.
3482 <Norbert-AT-nemec-online.de>.
3479
3483
3480 2005-01-14 Fernando Perez <fperez@colorado.edu>
3484 2005-01-14 Fernando Perez <fperez@colorado.edu>
3481
3485
3482 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3486 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3483 names for verbose exceptions, when multiple dotted names and the
3487 names for verbose exceptions, when multiple dotted names and the
3484 'parent' object were present on the same line.
3488 'parent' object were present on the same line.
3485
3489
3486 2005-01-11 Fernando Perez <fperez@colorado.edu>
3490 2005-01-11 Fernando Perez <fperez@colorado.edu>
3487
3491
3488 * IPython/genutils.py (flag_calls): new utility to trap and flag
3492 * IPython/genutils.py (flag_calls): new utility to trap and flag
3489 calls in functions. I need it to clean up matplotlib support.
3493 calls in functions. I need it to clean up matplotlib support.
3490 Also removed some deprecated code in genutils.
3494 Also removed some deprecated code in genutils.
3491
3495
3492 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3496 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3493 that matplotlib scripts called with %run, which don't call show()
3497 that matplotlib scripts called with %run, which don't call show()
3494 themselves, still have their plotting windows open.
3498 themselves, still have their plotting windows open.
3495
3499
3496 2005-01-05 Fernando Perez <fperez@colorado.edu>
3500 2005-01-05 Fernando Perez <fperez@colorado.edu>
3497
3501
3498 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3502 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3499 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3503 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3500
3504
3501 2004-12-19 Fernando Perez <fperez@colorado.edu>
3505 2004-12-19 Fernando Perez <fperez@colorado.edu>
3502
3506
3503 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3507 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3504 parent_runcode, which was an eyesore. The same result can be
3508 parent_runcode, which was an eyesore. The same result can be
3505 obtained with Python's regular superclass mechanisms.
3509 obtained with Python's regular superclass mechanisms.
3506
3510
3507 2004-12-17 Fernando Perez <fperez@colorado.edu>
3511 2004-12-17 Fernando Perez <fperez@colorado.edu>
3508
3512
3509 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3513 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3510 reported by Prabhu.
3514 reported by Prabhu.
3511 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3515 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3512 sys.stderr) instead of explicitly calling sys.stderr. This helps
3516 sys.stderr) instead of explicitly calling sys.stderr. This helps
3513 maintain our I/O abstractions clean, for future GUI embeddings.
3517 maintain our I/O abstractions clean, for future GUI embeddings.
3514
3518
3515 * IPython/genutils.py (info): added new utility for sys.stderr
3519 * IPython/genutils.py (info): added new utility for sys.stderr
3516 unified info message handling (thin wrapper around warn()).
3520 unified info message handling (thin wrapper around warn()).
3517
3521
3518 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3522 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3519 composite (dotted) names on verbose exceptions.
3523 composite (dotted) names on verbose exceptions.
3520 (VerboseTB.nullrepr): harden against another kind of errors which
3524 (VerboseTB.nullrepr): harden against another kind of errors which
3521 Python's inspect module can trigger, and which were crashing
3525 Python's inspect module can trigger, and which were crashing
3522 IPython. Thanks to a report by Marco Lombardi
3526 IPython. Thanks to a report by Marco Lombardi
3523 <mlombard-AT-ma010192.hq.eso.org>.
3527 <mlombard-AT-ma010192.hq.eso.org>.
3524
3528
3525 2004-12-13 *** Released version 0.6.6
3529 2004-12-13 *** Released version 0.6.6
3526
3530
3527 2004-12-12 Fernando Perez <fperez@colorado.edu>
3531 2004-12-12 Fernando Perez <fperez@colorado.edu>
3528
3532
3529 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3533 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3530 generated by pygtk upon initialization if it was built without
3534 generated by pygtk upon initialization if it was built without
3531 threads (for matplotlib users). After a crash reported by
3535 threads (for matplotlib users). After a crash reported by
3532 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3536 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3533
3537
3534 * IPython/ipmaker.py (make_IPython): fix small bug in the
3538 * IPython/ipmaker.py (make_IPython): fix small bug in the
3535 import_some parameter for multiple imports.
3539 import_some parameter for multiple imports.
3536
3540
3537 * IPython/iplib.py (ipmagic): simplified the interface of
3541 * IPython/iplib.py (ipmagic): simplified the interface of
3538 ipmagic() to take a single string argument, just as it would be
3542 ipmagic() to take a single string argument, just as it would be
3539 typed at the IPython cmd line.
3543 typed at the IPython cmd line.
3540 (ipalias): Added new ipalias() with an interface identical to
3544 (ipalias): Added new ipalias() with an interface identical to
3541 ipmagic(). This completes exposing a pure python interface to the
3545 ipmagic(). This completes exposing a pure python interface to the
3542 alias and magic system, which can be used in loops or more complex
3546 alias and magic system, which can be used in loops or more complex
3543 code where IPython's automatic line mangling is not active.
3547 code where IPython's automatic line mangling is not active.
3544
3548
3545 * IPython/genutils.py (timing): changed interface of timing to
3549 * IPython/genutils.py (timing): changed interface of timing to
3546 simply run code once, which is the most common case. timings()
3550 simply run code once, which is the most common case. timings()
3547 remains unchanged, for the cases where you want multiple runs.
3551 remains unchanged, for the cases where you want multiple runs.
3548
3552
3549 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3553 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3550 bug where Python2.2 crashes with exec'ing code which does not end
3554 bug where Python2.2 crashes with exec'ing code which does not end
3551 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3555 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3552 before.
3556 before.
3553
3557
3554 2004-12-10 Fernando Perez <fperez@colorado.edu>
3558 2004-12-10 Fernando Perez <fperez@colorado.edu>
3555
3559
3556 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3560 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3557 -t to -T, to accomodate the new -t flag in %run (the %run and
3561 -t to -T, to accomodate the new -t flag in %run (the %run and
3558 %prun options are kind of intermixed, and it's not easy to change
3562 %prun options are kind of intermixed, and it's not easy to change
3559 this with the limitations of python's getopt).
3563 this with the limitations of python's getopt).
3560
3564
3561 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3565 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3562 the execution of scripts. It's not as fine-tuned as timeit.py,
3566 the execution of scripts. It's not as fine-tuned as timeit.py,
3563 but it works from inside ipython (and under 2.2, which lacks
3567 but it works from inside ipython (and under 2.2, which lacks
3564 timeit.py). Optionally a number of runs > 1 can be given for
3568 timeit.py). Optionally a number of runs > 1 can be given for
3565 timing very short-running code.
3569 timing very short-running code.
3566
3570
3567 * IPython/genutils.py (uniq_stable): new routine which returns a
3571 * IPython/genutils.py (uniq_stable): new routine which returns a
3568 list of unique elements in any iterable, but in stable order of
3572 list of unique elements in any iterable, but in stable order of
3569 appearance. I needed this for the ultraTB fixes, and it's a handy
3573 appearance. I needed this for the ultraTB fixes, and it's a handy
3570 utility.
3574 utility.
3571
3575
3572 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3576 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3573 dotted names in Verbose exceptions. This had been broken since
3577 dotted names in Verbose exceptions. This had been broken since
3574 the very start, now x.y will properly be printed in a Verbose
3578 the very start, now x.y will properly be printed in a Verbose
3575 traceback, instead of x being shown and y appearing always as an
3579 traceback, instead of x being shown and y appearing always as an
3576 'undefined global'. Getting this to work was a bit tricky,
3580 'undefined global'. Getting this to work was a bit tricky,
3577 because by default python tokenizers are stateless. Saved by
3581 because by default python tokenizers are stateless. Saved by
3578 python's ability to easily add a bit of state to an arbitrary
3582 python's ability to easily add a bit of state to an arbitrary
3579 function (without needing to build a full-blown callable object).
3583 function (without needing to build a full-blown callable object).
3580
3584
3581 Also big cleanup of this code, which had horrendous runtime
3585 Also big cleanup of this code, which had horrendous runtime
3582 lookups of zillions of attributes for colorization. Moved all
3586 lookups of zillions of attributes for colorization. Moved all
3583 this code into a few templates, which make it cleaner and quicker.
3587 this code into a few templates, which make it cleaner and quicker.
3584
3588
3585 Printout quality was also improved for Verbose exceptions: one
3589 Printout quality was also improved for Verbose exceptions: one
3586 variable per line, and memory addresses are printed (this can be
3590 variable per line, and memory addresses are printed (this can be
3587 quite handy in nasty debugging situations, which is what Verbose
3591 quite handy in nasty debugging situations, which is what Verbose
3588 is for).
3592 is for).
3589
3593
3590 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3594 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3591 the command line as scripts to be loaded by embedded instances.
3595 the command line as scripts to be loaded by embedded instances.
3592 Doing so has the potential for an infinite recursion if there are
3596 Doing so has the potential for an infinite recursion if there are
3593 exceptions thrown in the process. This fixes a strange crash
3597 exceptions thrown in the process. This fixes a strange crash
3594 reported by Philippe MULLER <muller-AT-irit.fr>.
3598 reported by Philippe MULLER <muller-AT-irit.fr>.
3595
3599
3596 2004-12-09 Fernando Perez <fperez@colorado.edu>
3600 2004-12-09 Fernando Perez <fperez@colorado.edu>
3597
3601
3598 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3602 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3599 to reflect new names in matplotlib, which now expose the
3603 to reflect new names in matplotlib, which now expose the
3600 matlab-compatible interface via a pylab module instead of the
3604 matlab-compatible interface via a pylab module instead of the
3601 'matlab' name. The new code is backwards compatible, so users of
3605 'matlab' name. The new code is backwards compatible, so users of
3602 all matplotlib versions are OK. Patch by J. Hunter.
3606 all matplotlib versions are OK. Patch by J. Hunter.
3603
3607
3604 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3608 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3605 of __init__ docstrings for instances (class docstrings are already
3609 of __init__ docstrings for instances (class docstrings are already
3606 automatically printed). Instances with customized docstrings
3610 automatically printed). Instances with customized docstrings
3607 (indep. of the class) are also recognized and all 3 separate
3611 (indep. of the class) are also recognized and all 3 separate
3608 docstrings are printed (instance, class, constructor). After some
3612 docstrings are printed (instance, class, constructor). After some
3609 comments/suggestions by J. Hunter.
3613 comments/suggestions by J. Hunter.
3610
3614
3611 2004-12-05 Fernando Perez <fperez@colorado.edu>
3615 2004-12-05 Fernando Perez <fperez@colorado.edu>
3612
3616
3613 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3617 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3614 warnings when tab-completion fails and triggers an exception.
3618 warnings when tab-completion fails and triggers an exception.
3615
3619
3616 2004-12-03 Fernando Perez <fperez@colorado.edu>
3620 2004-12-03 Fernando Perez <fperez@colorado.edu>
3617
3621
3618 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3622 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3619 be triggered when using 'run -p'. An incorrect option flag was
3623 be triggered when using 'run -p'. An incorrect option flag was
3620 being set ('d' instead of 'D').
3624 being set ('d' instead of 'D').
3621 (manpage): fix missing escaped \- sign.
3625 (manpage): fix missing escaped \- sign.
3622
3626
3623 2004-11-30 *** Released version 0.6.5
3627 2004-11-30 *** Released version 0.6.5
3624
3628
3625 2004-11-30 Fernando Perez <fperez@colorado.edu>
3629 2004-11-30 Fernando Perez <fperez@colorado.edu>
3626
3630
3627 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3631 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3628 setting with -d option.
3632 setting with -d option.
3629
3633
3630 * setup.py (docfiles): Fix problem where the doc glob I was using
3634 * setup.py (docfiles): Fix problem where the doc glob I was using
3631 was COMPLETELY BROKEN. It was giving the right files by pure
3635 was COMPLETELY BROKEN. It was giving the right files by pure
3632 accident, but failed once I tried to include ipython.el. Note:
3636 accident, but failed once I tried to include ipython.el. Note:
3633 glob() does NOT allow you to do exclusion on multiple endings!
3637 glob() does NOT allow you to do exclusion on multiple endings!
3634
3638
3635 2004-11-29 Fernando Perez <fperez@colorado.edu>
3639 2004-11-29 Fernando Perez <fperez@colorado.edu>
3636
3640
3637 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3641 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3638 the manpage as the source. Better formatting & consistency.
3642 the manpage as the source. Better formatting & consistency.
3639
3643
3640 * IPython/Magic.py (magic_run): Added new -d option, to run
3644 * IPython/Magic.py (magic_run): Added new -d option, to run
3641 scripts under the control of the python pdb debugger. Note that
3645 scripts under the control of the python pdb debugger. Note that
3642 this required changing the %prun option -d to -D, to avoid a clash
3646 this required changing the %prun option -d to -D, to avoid a clash
3643 (since %run must pass options to %prun, and getopt is too dumb to
3647 (since %run must pass options to %prun, and getopt is too dumb to
3644 handle options with string values with embedded spaces). Thanks
3648 handle options with string values with embedded spaces). Thanks
3645 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3649 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3646 (magic_who_ls): added type matching to %who and %whos, so that one
3650 (magic_who_ls): added type matching to %who and %whos, so that one
3647 can filter their output to only include variables of certain
3651 can filter their output to only include variables of certain
3648 types. Another suggestion by Matthew.
3652 types. Another suggestion by Matthew.
3649 (magic_whos): Added memory summaries in kb and Mb for arrays.
3653 (magic_whos): Added memory summaries in kb and Mb for arrays.
3650 (magic_who): Improve formatting (break lines every 9 vars).
3654 (magic_who): Improve formatting (break lines every 9 vars).
3651
3655
3652 2004-11-28 Fernando Perez <fperez@colorado.edu>
3656 2004-11-28 Fernando Perez <fperez@colorado.edu>
3653
3657
3654 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3658 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3655 cache when empty lines were present.
3659 cache when empty lines were present.
3656
3660
3657 2004-11-24 Fernando Perez <fperez@colorado.edu>
3661 2004-11-24 Fernando Perez <fperez@colorado.edu>
3658
3662
3659 * IPython/usage.py (__doc__): document the re-activated threading
3663 * IPython/usage.py (__doc__): document the re-activated threading
3660 options for WX and GTK.
3664 options for WX and GTK.
3661
3665
3662 2004-11-23 Fernando Perez <fperez@colorado.edu>
3666 2004-11-23 Fernando Perez <fperez@colorado.edu>
3663
3667
3664 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3668 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3665 the -wthread and -gthread options, along with a new -tk one to try
3669 the -wthread and -gthread options, along with a new -tk one to try
3666 and coordinate Tk threading with wx/gtk. The tk support is very
3670 and coordinate Tk threading with wx/gtk. The tk support is very
3667 platform dependent, since it seems to require Tcl and Tk to be
3671 platform dependent, since it seems to require Tcl and Tk to be
3668 built with threads (Fedora1/2 appears NOT to have it, but in
3672 built with threads (Fedora1/2 appears NOT to have it, but in
3669 Prabhu's Debian boxes it works OK). But even with some Tk
3673 Prabhu's Debian boxes it works OK). But even with some Tk
3670 limitations, this is a great improvement.
3674 limitations, this is a great improvement.
3671
3675
3672 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3676 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3673 info in user prompts. Patch by Prabhu.
3677 info in user prompts. Patch by Prabhu.
3674
3678
3675 2004-11-18 Fernando Perez <fperez@colorado.edu>
3679 2004-11-18 Fernando Perez <fperez@colorado.edu>
3676
3680
3677 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3681 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3678 EOFErrors and bail, to avoid infinite loops if a non-terminating
3682 EOFErrors and bail, to avoid infinite loops if a non-terminating
3679 file is fed into ipython. Patch submitted in issue 19 by user,
3683 file is fed into ipython. Patch submitted in issue 19 by user,
3680 many thanks.
3684 many thanks.
3681
3685
3682 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3686 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3683 autoquote/parens in continuation prompts, which can cause lots of
3687 autoquote/parens in continuation prompts, which can cause lots of
3684 problems. Closes roundup issue 20.
3688 problems. Closes roundup issue 20.
3685
3689
3686 2004-11-17 Fernando Perez <fperez@colorado.edu>
3690 2004-11-17 Fernando Perez <fperez@colorado.edu>
3687
3691
3688 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3692 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3689 reported as debian bug #280505. I'm not sure my local changelog
3693 reported as debian bug #280505. I'm not sure my local changelog
3690 entry has the proper debian format (Jack?).
3694 entry has the proper debian format (Jack?).
3691
3695
3692 2004-11-08 *** Released version 0.6.4
3696 2004-11-08 *** Released version 0.6.4
3693
3697
3694 2004-11-08 Fernando Perez <fperez@colorado.edu>
3698 2004-11-08 Fernando Perez <fperez@colorado.edu>
3695
3699
3696 * IPython/iplib.py (init_readline): Fix exit message for Windows
3700 * IPython/iplib.py (init_readline): Fix exit message for Windows
3697 when readline is active. Thanks to a report by Eric Jones
3701 when readline is active. Thanks to a report by Eric Jones
3698 <eric-AT-enthought.com>.
3702 <eric-AT-enthought.com>.
3699
3703
3700 2004-11-07 Fernando Perez <fperez@colorado.edu>
3704 2004-11-07 Fernando Perez <fperez@colorado.edu>
3701
3705
3702 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3706 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3703 sometimes seen by win2k/cygwin users.
3707 sometimes seen by win2k/cygwin users.
3704
3708
3705 2004-11-06 Fernando Perez <fperez@colorado.edu>
3709 2004-11-06 Fernando Perez <fperez@colorado.edu>
3706
3710
3707 * IPython/iplib.py (interact): Change the handling of %Exit from
3711 * IPython/iplib.py (interact): Change the handling of %Exit from
3708 trying to propagate a SystemExit to an internal ipython flag.
3712 trying to propagate a SystemExit to an internal ipython flag.
3709 This is less elegant than using Python's exception mechanism, but
3713 This is less elegant than using Python's exception mechanism, but
3710 I can't get that to work reliably with threads, so under -pylab
3714 I can't get that to work reliably with threads, so under -pylab
3711 %Exit was hanging IPython. Cross-thread exception handling is
3715 %Exit was hanging IPython. Cross-thread exception handling is
3712 really a bitch. Thaks to a bug report by Stephen Walton
3716 really a bitch. Thaks to a bug report by Stephen Walton
3713 <stephen.walton-AT-csun.edu>.
3717 <stephen.walton-AT-csun.edu>.
3714
3718
3715 2004-11-04 Fernando Perez <fperez@colorado.edu>
3719 2004-11-04 Fernando Perez <fperez@colorado.edu>
3716
3720
3717 * IPython/iplib.py (raw_input_original): store a pointer to the
3721 * IPython/iplib.py (raw_input_original): store a pointer to the
3718 true raw_input to harden against code which can modify it
3722 true raw_input to harden against code which can modify it
3719 (wx.py.PyShell does this and would otherwise crash ipython).
3723 (wx.py.PyShell does this and would otherwise crash ipython).
3720 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3724 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3721
3725
3722 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3726 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3723 Ctrl-C problem, which does not mess up the input line.
3727 Ctrl-C problem, which does not mess up the input line.
3724
3728
3725 2004-11-03 Fernando Perez <fperez@colorado.edu>
3729 2004-11-03 Fernando Perez <fperez@colorado.edu>
3726
3730
3727 * IPython/Release.py: Changed licensing to BSD, in all files.
3731 * IPython/Release.py: Changed licensing to BSD, in all files.
3728 (name): lowercase name for tarball/RPM release.
3732 (name): lowercase name for tarball/RPM release.
3729
3733
3730 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3734 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3731 use throughout ipython.
3735 use throughout ipython.
3732
3736
3733 * IPython/Magic.py (Magic._ofind): Switch to using the new
3737 * IPython/Magic.py (Magic._ofind): Switch to using the new
3734 OInspect.getdoc() function.
3738 OInspect.getdoc() function.
3735
3739
3736 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3740 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3737 of the line currently being canceled via Ctrl-C. It's extremely
3741 of the line currently being canceled via Ctrl-C. It's extremely
3738 ugly, but I don't know how to do it better (the problem is one of
3742 ugly, but I don't know how to do it better (the problem is one of
3739 handling cross-thread exceptions).
3743 handling cross-thread exceptions).
3740
3744
3741 2004-10-28 Fernando Perez <fperez@colorado.edu>
3745 2004-10-28 Fernando Perez <fperez@colorado.edu>
3742
3746
3743 * IPython/Shell.py (signal_handler): add signal handlers to trap
3747 * IPython/Shell.py (signal_handler): add signal handlers to trap
3744 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3748 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3745 report by Francesc Alted.
3749 report by Francesc Alted.
3746
3750
3747 2004-10-21 Fernando Perez <fperez@colorado.edu>
3751 2004-10-21 Fernando Perez <fperez@colorado.edu>
3748
3752
3749 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3753 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3750 to % for pysh syntax extensions.
3754 to % for pysh syntax extensions.
3751
3755
3752 2004-10-09 Fernando Perez <fperez@colorado.edu>
3756 2004-10-09 Fernando Perez <fperez@colorado.edu>
3753
3757
3754 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3758 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3755 arrays to print a more useful summary, without calling str(arr).
3759 arrays to print a more useful summary, without calling str(arr).
3756 This avoids the problem of extremely lengthy computations which
3760 This avoids the problem of extremely lengthy computations which
3757 occur if arr is large, and appear to the user as a system lockup
3761 occur if arr is large, and appear to the user as a system lockup
3758 with 100% cpu activity. After a suggestion by Kristian Sandberg
3762 with 100% cpu activity. After a suggestion by Kristian Sandberg
3759 <Kristian.Sandberg@colorado.edu>.
3763 <Kristian.Sandberg@colorado.edu>.
3760 (Magic.__init__): fix bug in global magic escapes not being
3764 (Magic.__init__): fix bug in global magic escapes not being
3761 correctly set.
3765 correctly set.
3762
3766
3763 2004-10-08 Fernando Perez <fperez@colorado.edu>
3767 2004-10-08 Fernando Perez <fperez@colorado.edu>
3764
3768
3765 * IPython/Magic.py (__license__): change to absolute imports of
3769 * IPython/Magic.py (__license__): change to absolute imports of
3766 ipython's own internal packages, to start adapting to the absolute
3770 ipython's own internal packages, to start adapting to the absolute
3767 import requirement of PEP-328.
3771 import requirement of PEP-328.
3768
3772
3769 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3773 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3770 files, and standardize author/license marks through the Release
3774 files, and standardize author/license marks through the Release
3771 module instead of having per/file stuff (except for files with
3775 module instead of having per/file stuff (except for files with
3772 particular licenses, like the MIT/PSF-licensed codes).
3776 particular licenses, like the MIT/PSF-licensed codes).
3773
3777
3774 * IPython/Debugger.py: remove dead code for python 2.1
3778 * IPython/Debugger.py: remove dead code for python 2.1
3775
3779
3776 2004-10-04 Fernando Perez <fperez@colorado.edu>
3780 2004-10-04 Fernando Perez <fperez@colorado.edu>
3777
3781
3778 * IPython/iplib.py (ipmagic): New function for accessing magics
3782 * IPython/iplib.py (ipmagic): New function for accessing magics
3779 via a normal python function call.
3783 via a normal python function call.
3780
3784
3781 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3785 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3782 from '@' to '%', to accomodate the new @decorator syntax of python
3786 from '@' to '%', to accomodate the new @decorator syntax of python
3783 2.4.
3787 2.4.
3784
3788
3785 2004-09-29 Fernando Perez <fperez@colorado.edu>
3789 2004-09-29 Fernando Perez <fperez@colorado.edu>
3786
3790
3787 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3791 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3788 matplotlib.use to prevent running scripts which try to switch
3792 matplotlib.use to prevent running scripts which try to switch
3789 interactive backends from within ipython. This will just crash
3793 interactive backends from within ipython. This will just crash
3790 the python interpreter, so we can't allow it (but a detailed error
3794 the python interpreter, so we can't allow it (but a detailed error
3791 is given to the user).
3795 is given to the user).
3792
3796
3793 2004-09-28 Fernando Perez <fperez@colorado.edu>
3797 2004-09-28 Fernando Perez <fperez@colorado.edu>
3794
3798
3795 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3799 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3796 matplotlib-related fixes so that using @run with non-matplotlib
3800 matplotlib-related fixes so that using @run with non-matplotlib
3797 scripts doesn't pop up spurious plot windows. This requires
3801 scripts doesn't pop up spurious plot windows. This requires
3798 matplotlib >= 0.63, where I had to make some changes as well.
3802 matplotlib >= 0.63, where I had to make some changes as well.
3799
3803
3800 * IPython/ipmaker.py (make_IPython): update version requirement to
3804 * IPython/ipmaker.py (make_IPython): update version requirement to
3801 python 2.2.
3805 python 2.2.
3802
3806
3803 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3807 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3804 banner arg for embedded customization.
3808 banner arg for embedded customization.
3805
3809
3806 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3810 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3807 explicit uses of __IP as the IPython's instance name. Now things
3811 explicit uses of __IP as the IPython's instance name. Now things
3808 are properly handled via the shell.name value. The actual code
3812 are properly handled via the shell.name value. The actual code
3809 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3813 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3810 is much better than before. I'll clean things completely when the
3814 is much better than before. I'll clean things completely when the
3811 magic stuff gets a real overhaul.
3815 magic stuff gets a real overhaul.
3812
3816
3813 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3817 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3814 minor changes to debian dir.
3818 minor changes to debian dir.
3815
3819
3816 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3820 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3817 pointer to the shell itself in the interactive namespace even when
3821 pointer to the shell itself in the interactive namespace even when
3818 a user-supplied dict is provided. This is needed for embedding
3822 a user-supplied dict is provided. This is needed for embedding
3819 purposes (found by tests with Michel Sanner).
3823 purposes (found by tests with Michel Sanner).
3820
3824
3821 2004-09-27 Fernando Perez <fperez@colorado.edu>
3825 2004-09-27 Fernando Perez <fperez@colorado.edu>
3822
3826
3823 * IPython/UserConfig/ipythonrc: remove []{} from
3827 * IPython/UserConfig/ipythonrc: remove []{} from
3824 readline_remove_delims, so that things like [modname.<TAB> do
3828 readline_remove_delims, so that things like [modname.<TAB> do
3825 proper completion. This disables [].TAB, but that's a less common
3829 proper completion. This disables [].TAB, but that's a less common
3826 case than module names in list comprehensions, for example.
3830 case than module names in list comprehensions, for example.
3827 Thanks to a report by Andrea Riciputi.
3831 Thanks to a report by Andrea Riciputi.
3828
3832
3829 2004-09-09 Fernando Perez <fperez@colorado.edu>
3833 2004-09-09 Fernando Perez <fperez@colorado.edu>
3830
3834
3831 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3835 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3832 blocking problems in win32 and osx. Fix by John.
3836 blocking problems in win32 and osx. Fix by John.
3833
3837
3834 2004-09-08 Fernando Perez <fperez@colorado.edu>
3838 2004-09-08 Fernando Perez <fperez@colorado.edu>
3835
3839
3836 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3840 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3837 for Win32 and OSX. Fix by John Hunter.
3841 for Win32 and OSX. Fix by John Hunter.
3838
3842
3839 2004-08-30 *** Released version 0.6.3
3843 2004-08-30 *** Released version 0.6.3
3840
3844
3841 2004-08-30 Fernando Perez <fperez@colorado.edu>
3845 2004-08-30 Fernando Perez <fperez@colorado.edu>
3842
3846
3843 * setup.py (isfile): Add manpages to list of dependent files to be
3847 * setup.py (isfile): Add manpages to list of dependent files to be
3844 updated.
3848 updated.
3845
3849
3846 2004-08-27 Fernando Perez <fperez@colorado.edu>
3850 2004-08-27 Fernando Perez <fperez@colorado.edu>
3847
3851
3848 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3852 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3849 for now. They don't really work with standalone WX/GTK code
3853 for now. They don't really work with standalone WX/GTK code
3850 (though matplotlib IS working fine with both of those backends).
3854 (though matplotlib IS working fine with both of those backends).
3851 This will neeed much more testing. I disabled most things with
3855 This will neeed much more testing. I disabled most things with
3852 comments, so turning it back on later should be pretty easy.
3856 comments, so turning it back on later should be pretty easy.
3853
3857
3854 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3858 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3855 autocalling of expressions like r'foo', by modifying the line
3859 autocalling of expressions like r'foo', by modifying the line
3856 split regexp. Closes
3860 split regexp. Closes
3857 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3861 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3858 Riley <ipythonbugs-AT-sabi.net>.
3862 Riley <ipythonbugs-AT-sabi.net>.
3859 (InteractiveShell.mainloop): honor --nobanner with banner
3863 (InteractiveShell.mainloop): honor --nobanner with banner
3860 extensions.
3864 extensions.
3861
3865
3862 * IPython/Shell.py: Significant refactoring of all classes, so
3866 * IPython/Shell.py: Significant refactoring of all classes, so
3863 that we can really support ALL matplotlib backends and threading
3867 that we can really support ALL matplotlib backends and threading
3864 models (John spotted a bug with Tk which required this). Now we
3868 models (John spotted a bug with Tk which required this). Now we
3865 should support single-threaded, WX-threads and GTK-threads, both
3869 should support single-threaded, WX-threads and GTK-threads, both
3866 for generic code and for matplotlib.
3870 for generic code and for matplotlib.
3867
3871
3868 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3872 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3869 -pylab, to simplify things for users. Will also remove the pylab
3873 -pylab, to simplify things for users. Will also remove the pylab
3870 profile, since now all of matplotlib configuration is directly
3874 profile, since now all of matplotlib configuration is directly
3871 handled here. This also reduces startup time.
3875 handled here. This also reduces startup time.
3872
3876
3873 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3877 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3874 shell wasn't being correctly called. Also in IPShellWX.
3878 shell wasn't being correctly called. Also in IPShellWX.
3875
3879
3876 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3880 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3877 fine-tune banner.
3881 fine-tune banner.
3878
3882
3879 * IPython/numutils.py (spike): Deprecate these spike functions,
3883 * IPython/numutils.py (spike): Deprecate these spike functions,
3880 delete (long deprecated) gnuplot_exec handler.
3884 delete (long deprecated) gnuplot_exec handler.
3881
3885
3882 2004-08-26 Fernando Perez <fperez@colorado.edu>
3886 2004-08-26 Fernando Perez <fperez@colorado.edu>
3883
3887
3884 * ipython.1: Update for threading options, plus some others which
3888 * ipython.1: Update for threading options, plus some others which
3885 were missing.
3889 were missing.
3886
3890
3887 * IPython/ipmaker.py (__call__): Added -wthread option for
3891 * IPython/ipmaker.py (__call__): Added -wthread option for
3888 wxpython thread handling. Make sure threading options are only
3892 wxpython thread handling. Make sure threading options are only
3889 valid at the command line.
3893 valid at the command line.
3890
3894
3891 * scripts/ipython: moved shell selection into a factory function
3895 * scripts/ipython: moved shell selection into a factory function
3892 in Shell.py, to keep the starter script to a minimum.
3896 in Shell.py, to keep the starter script to a minimum.
3893
3897
3894 2004-08-25 Fernando Perez <fperez@colorado.edu>
3898 2004-08-25 Fernando Perez <fperez@colorado.edu>
3895
3899
3896 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3900 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3897 John. Along with some recent changes he made to matplotlib, the
3901 John. Along with some recent changes he made to matplotlib, the
3898 next versions of both systems should work very well together.
3902 next versions of both systems should work very well together.
3899
3903
3900 2004-08-24 Fernando Perez <fperez@colorado.edu>
3904 2004-08-24 Fernando Perez <fperez@colorado.edu>
3901
3905
3902 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3906 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3903 tried to switch the profiling to using hotshot, but I'm getting
3907 tried to switch the profiling to using hotshot, but I'm getting
3904 strange errors from prof.runctx() there. I may be misreading the
3908 strange errors from prof.runctx() there. I may be misreading the
3905 docs, but it looks weird. For now the profiling code will
3909 docs, but it looks weird. For now the profiling code will
3906 continue to use the standard profiler.
3910 continue to use the standard profiler.
3907
3911
3908 2004-08-23 Fernando Perez <fperez@colorado.edu>
3912 2004-08-23 Fernando Perez <fperez@colorado.edu>
3909
3913
3910 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3914 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3911 threaded shell, by John Hunter. It's not quite ready yet, but
3915 threaded shell, by John Hunter. It's not quite ready yet, but
3912 close.
3916 close.
3913
3917
3914 2004-08-22 Fernando Perez <fperez@colorado.edu>
3918 2004-08-22 Fernando Perez <fperez@colorado.edu>
3915
3919
3916 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3920 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3917 in Magic and ultraTB.
3921 in Magic and ultraTB.
3918
3922
3919 * ipython.1: document threading options in manpage.
3923 * ipython.1: document threading options in manpage.
3920
3924
3921 * scripts/ipython: Changed name of -thread option to -gthread,
3925 * scripts/ipython: Changed name of -thread option to -gthread,
3922 since this is GTK specific. I want to leave the door open for a
3926 since this is GTK specific. I want to leave the door open for a
3923 -wthread option for WX, which will most likely be necessary. This
3927 -wthread option for WX, which will most likely be necessary. This
3924 change affects usage and ipmaker as well.
3928 change affects usage and ipmaker as well.
3925
3929
3926 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3930 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3927 handle the matplotlib shell issues. Code by John Hunter
3931 handle the matplotlib shell issues. Code by John Hunter
3928 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3932 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3929 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3933 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3930 broken (and disabled for end users) for now, but it puts the
3934 broken (and disabled for end users) for now, but it puts the
3931 infrastructure in place.
3935 infrastructure in place.
3932
3936
3933 2004-08-21 Fernando Perez <fperez@colorado.edu>
3937 2004-08-21 Fernando Perez <fperez@colorado.edu>
3934
3938
3935 * ipythonrc-pylab: Add matplotlib support.
3939 * ipythonrc-pylab: Add matplotlib support.
3936
3940
3937 * matplotlib_config.py: new files for matplotlib support, part of
3941 * matplotlib_config.py: new files for matplotlib support, part of
3938 the pylab profile.
3942 the pylab profile.
3939
3943
3940 * IPython/usage.py (__doc__): documented the threading options.
3944 * IPython/usage.py (__doc__): documented the threading options.
3941
3945
3942 2004-08-20 Fernando Perez <fperez@colorado.edu>
3946 2004-08-20 Fernando Perez <fperez@colorado.edu>
3943
3947
3944 * ipython: Modified the main calling routine to handle the -thread
3948 * ipython: Modified the main calling routine to handle the -thread
3945 and -mpthread options. This needs to be done as a top-level hack,
3949 and -mpthread options. This needs to be done as a top-level hack,
3946 because it determines which class to instantiate for IPython
3950 because it determines which class to instantiate for IPython
3947 itself.
3951 itself.
3948
3952
3949 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3953 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3950 classes to support multithreaded GTK operation without blocking,
3954 classes to support multithreaded GTK operation without blocking,
3951 and matplotlib with all backends. This is a lot of still very
3955 and matplotlib with all backends. This is a lot of still very
3952 experimental code, and threads are tricky. So it may still have a
3956 experimental code, and threads are tricky. So it may still have a
3953 few rough edges... This code owes a lot to
3957 few rough edges... This code owes a lot to
3954 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3958 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3955 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3959 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3956 to John Hunter for all the matplotlib work.
3960 to John Hunter for all the matplotlib work.
3957
3961
3958 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3962 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3959 options for gtk thread and matplotlib support.
3963 options for gtk thread and matplotlib support.
3960
3964
3961 2004-08-16 Fernando Perez <fperez@colorado.edu>
3965 2004-08-16 Fernando Perez <fperez@colorado.edu>
3962
3966
3963 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3967 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3964 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3968 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3965 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3969 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3966
3970
3967 2004-08-11 Fernando Perez <fperez@colorado.edu>
3971 2004-08-11 Fernando Perez <fperez@colorado.edu>
3968
3972
3969 * setup.py (isfile): Fix build so documentation gets updated for
3973 * setup.py (isfile): Fix build so documentation gets updated for
3970 rpms (it was only done for .tgz builds).
3974 rpms (it was only done for .tgz builds).
3971
3975
3972 2004-08-10 Fernando Perez <fperez@colorado.edu>
3976 2004-08-10 Fernando Perez <fperez@colorado.edu>
3973
3977
3974 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3978 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3975
3979
3976 * iplib.py : Silence syntax error exceptions in tab-completion.
3980 * iplib.py : Silence syntax error exceptions in tab-completion.
3977
3981
3978 2004-08-05 Fernando Perez <fperez@colorado.edu>
3982 2004-08-05 Fernando Perez <fperez@colorado.edu>
3979
3983
3980 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3984 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3981 'color off' mark for continuation prompts. This was causing long
3985 'color off' mark for continuation prompts. This was causing long
3982 continuation lines to mis-wrap.
3986 continuation lines to mis-wrap.
3983
3987
3984 2004-08-01 Fernando Perez <fperez@colorado.edu>
3988 2004-08-01 Fernando Perez <fperez@colorado.edu>
3985
3989
3986 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3990 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3987 for building ipython to be a parameter. All this is necessary
3991 for building ipython to be a parameter. All this is necessary
3988 right now to have a multithreaded version, but this insane
3992 right now to have a multithreaded version, but this insane
3989 non-design will be cleaned up soon. For now, it's a hack that
3993 non-design will be cleaned up soon. For now, it's a hack that
3990 works.
3994 works.
3991
3995
3992 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3996 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3993 args in various places. No bugs so far, but it's a dangerous
3997 args in various places. No bugs so far, but it's a dangerous
3994 practice.
3998 practice.
3995
3999
3996 2004-07-31 Fernando Perez <fperez@colorado.edu>
4000 2004-07-31 Fernando Perez <fperez@colorado.edu>
3997
4001
3998 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4002 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3999 fix completion of files with dots in their names under most
4003 fix completion of files with dots in their names under most
4000 profiles (pysh was OK because the completion order is different).
4004 profiles (pysh was OK because the completion order is different).
4001
4005
4002 2004-07-27 Fernando Perez <fperez@colorado.edu>
4006 2004-07-27 Fernando Perez <fperez@colorado.edu>
4003
4007
4004 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4008 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4005 keywords manually, b/c the one in keyword.py was removed in python
4009 keywords manually, b/c the one in keyword.py was removed in python
4006 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4010 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4007 This is NOT a bug under python 2.3 and earlier.
4011 This is NOT a bug under python 2.3 and earlier.
4008
4012
4009 2004-07-26 Fernando Perez <fperez@colorado.edu>
4013 2004-07-26 Fernando Perez <fperez@colorado.edu>
4010
4014
4011 * IPython/ultraTB.py (VerboseTB.text): Add another
4015 * IPython/ultraTB.py (VerboseTB.text): Add another
4012 linecache.checkcache() call to try to prevent inspect.py from
4016 linecache.checkcache() call to try to prevent inspect.py from
4013 crashing under python 2.3. I think this fixes
4017 crashing under python 2.3. I think this fixes
4014 http://www.scipy.net/roundup/ipython/issue17.
4018 http://www.scipy.net/roundup/ipython/issue17.
4015
4019
4016 2004-07-26 *** Released version 0.6.2
4020 2004-07-26 *** Released version 0.6.2
4017
4021
4018 2004-07-26 Fernando Perez <fperez@colorado.edu>
4022 2004-07-26 Fernando Perez <fperez@colorado.edu>
4019
4023
4020 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4024 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4021 fail for any number.
4025 fail for any number.
4022 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4026 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4023 empty bookmarks.
4027 empty bookmarks.
4024
4028
4025 2004-07-26 *** Released version 0.6.1
4029 2004-07-26 *** Released version 0.6.1
4026
4030
4027 2004-07-26 Fernando Perez <fperez@colorado.edu>
4031 2004-07-26 Fernando Perez <fperez@colorado.edu>
4028
4032
4029 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4033 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4030
4034
4031 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4035 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4032 escaping '()[]{}' in filenames.
4036 escaping '()[]{}' in filenames.
4033
4037
4034 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4038 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4035 Python 2.2 users who lack a proper shlex.split.
4039 Python 2.2 users who lack a proper shlex.split.
4036
4040
4037 2004-07-19 Fernando Perez <fperez@colorado.edu>
4041 2004-07-19 Fernando Perez <fperez@colorado.edu>
4038
4042
4039 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4043 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4040 for reading readline's init file. I follow the normal chain:
4044 for reading readline's init file. I follow the normal chain:
4041 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4045 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4042 report by Mike Heeter. This closes
4046 report by Mike Heeter. This closes
4043 http://www.scipy.net/roundup/ipython/issue16.
4047 http://www.scipy.net/roundup/ipython/issue16.
4044
4048
4045 2004-07-18 Fernando Perez <fperez@colorado.edu>
4049 2004-07-18 Fernando Perez <fperez@colorado.edu>
4046
4050
4047 * IPython/iplib.py (__init__): Add better handling of '\' under
4051 * IPython/iplib.py (__init__): Add better handling of '\' under
4048 Win32 for filenames. After a patch by Ville.
4052 Win32 for filenames. After a patch by Ville.
4049
4053
4050 2004-07-17 Fernando Perez <fperez@colorado.edu>
4054 2004-07-17 Fernando Perez <fperez@colorado.edu>
4051
4055
4052 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4056 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4053 autocalling would be triggered for 'foo is bar' if foo is
4057 autocalling would be triggered for 'foo is bar' if foo is
4054 callable. I also cleaned up the autocall detection code to use a
4058 callable. I also cleaned up the autocall detection code to use a
4055 regexp, which is faster. Bug reported by Alexander Schmolck.
4059 regexp, which is faster. Bug reported by Alexander Schmolck.
4056
4060
4057 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4061 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4058 '?' in them would confuse the help system. Reported by Alex
4062 '?' in them would confuse the help system. Reported by Alex
4059 Schmolck.
4063 Schmolck.
4060
4064
4061 2004-07-16 Fernando Perez <fperez@colorado.edu>
4065 2004-07-16 Fernando Perez <fperez@colorado.edu>
4062
4066
4063 * IPython/GnuplotInteractive.py (__all__): added plot2.
4067 * IPython/GnuplotInteractive.py (__all__): added plot2.
4064
4068
4065 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4069 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4066 plotting dictionaries, lists or tuples of 1d arrays.
4070 plotting dictionaries, lists or tuples of 1d arrays.
4067
4071
4068 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4072 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4069 optimizations.
4073 optimizations.
4070
4074
4071 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4075 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4072 the information which was there from Janko's original IPP code:
4076 the information which was there from Janko's original IPP code:
4073
4077
4074 03.05.99 20:53 porto.ifm.uni-kiel.de
4078 03.05.99 20:53 porto.ifm.uni-kiel.de
4075 --Started changelog.
4079 --Started changelog.
4076 --make clear do what it say it does
4080 --make clear do what it say it does
4077 --added pretty output of lines from inputcache
4081 --added pretty output of lines from inputcache
4078 --Made Logger a mixin class, simplifies handling of switches
4082 --Made Logger a mixin class, simplifies handling of switches
4079 --Added own completer class. .string<TAB> expands to last history
4083 --Added own completer class. .string<TAB> expands to last history
4080 line which starts with string. The new expansion is also present
4084 line which starts with string. The new expansion is also present
4081 with Ctrl-r from the readline library. But this shows, who this
4085 with Ctrl-r from the readline library. But this shows, who this
4082 can be done for other cases.
4086 can be done for other cases.
4083 --Added convention that all shell functions should accept a
4087 --Added convention that all shell functions should accept a
4084 parameter_string This opens the door for different behaviour for
4088 parameter_string This opens the door for different behaviour for
4085 each function. @cd is a good example of this.
4089 each function. @cd is a good example of this.
4086
4090
4087 04.05.99 12:12 porto.ifm.uni-kiel.de
4091 04.05.99 12:12 porto.ifm.uni-kiel.de
4088 --added logfile rotation
4092 --added logfile rotation
4089 --added new mainloop method which freezes first the namespace
4093 --added new mainloop method which freezes first the namespace
4090
4094
4091 07.05.99 21:24 porto.ifm.uni-kiel.de
4095 07.05.99 21:24 porto.ifm.uni-kiel.de
4092 --added the docreader classes. Now there is a help system.
4096 --added the docreader classes. Now there is a help system.
4093 -This is only a first try. Currently it's not easy to put new
4097 -This is only a first try. Currently it's not easy to put new
4094 stuff in the indices. But this is the way to go. Info would be
4098 stuff in the indices. But this is the way to go. Info would be
4095 better, but HTML is every where and not everybody has an info
4099 better, but HTML is every where and not everybody has an info
4096 system installed and it's not so easy to change html-docs to info.
4100 system installed and it's not so easy to change html-docs to info.
4097 --added global logfile option
4101 --added global logfile option
4098 --there is now a hook for object inspection method pinfo needs to
4102 --there is now a hook for object inspection method pinfo needs to
4099 be provided for this. Can be reached by two '??'.
4103 be provided for this. Can be reached by two '??'.
4100
4104
4101 08.05.99 20:51 porto.ifm.uni-kiel.de
4105 08.05.99 20:51 porto.ifm.uni-kiel.de
4102 --added a README
4106 --added a README
4103 --bug in rc file. Something has changed so functions in the rc
4107 --bug in rc file. Something has changed so functions in the rc
4104 file need to reference the shell and not self. Not clear if it's a
4108 file need to reference the shell and not self. Not clear if it's a
4105 bug or feature.
4109 bug or feature.
4106 --changed rc file for new behavior
4110 --changed rc file for new behavior
4107
4111
4108 2004-07-15 Fernando Perez <fperez@colorado.edu>
4112 2004-07-15 Fernando Perez <fperez@colorado.edu>
4109
4113
4110 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4114 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4111 cache was falling out of sync in bizarre manners when multi-line
4115 cache was falling out of sync in bizarre manners when multi-line
4112 input was present. Minor optimizations and cleanup.
4116 input was present. Minor optimizations and cleanup.
4113
4117
4114 (Logger): Remove old Changelog info for cleanup. This is the
4118 (Logger): Remove old Changelog info for cleanup. This is the
4115 information which was there from Janko's original code:
4119 information which was there from Janko's original code:
4116
4120
4117 Changes to Logger: - made the default log filename a parameter
4121 Changes to Logger: - made the default log filename a parameter
4118
4122
4119 - put a check for lines beginning with !@? in log(). Needed
4123 - put a check for lines beginning with !@? in log(). Needed
4120 (even if the handlers properly log their lines) for mid-session
4124 (even if the handlers properly log their lines) for mid-session
4121 logging activation to work properly. Without this, lines logged
4125 logging activation to work properly. Without this, lines logged
4122 in mid session, which get read from the cache, would end up
4126 in mid session, which get read from the cache, would end up
4123 'bare' (with !@? in the open) in the log. Now they are caught
4127 'bare' (with !@? in the open) in the log. Now they are caught
4124 and prepended with a #.
4128 and prepended with a #.
4125
4129
4126 * IPython/iplib.py (InteractiveShell.init_readline): added check
4130 * IPython/iplib.py (InteractiveShell.init_readline): added check
4127 in case MagicCompleter fails to be defined, so we don't crash.
4131 in case MagicCompleter fails to be defined, so we don't crash.
4128
4132
4129 2004-07-13 Fernando Perez <fperez@colorado.edu>
4133 2004-07-13 Fernando Perez <fperez@colorado.edu>
4130
4134
4131 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4135 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4132 of EPS if the requested filename ends in '.eps'.
4136 of EPS if the requested filename ends in '.eps'.
4133
4137
4134 2004-07-04 Fernando Perez <fperez@colorado.edu>
4138 2004-07-04 Fernando Perez <fperez@colorado.edu>
4135
4139
4136 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4140 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4137 escaping of quotes when calling the shell.
4141 escaping of quotes when calling the shell.
4138
4142
4139 2004-07-02 Fernando Perez <fperez@colorado.edu>
4143 2004-07-02 Fernando Perez <fperez@colorado.edu>
4140
4144
4141 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4145 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4142 gettext not working because we were clobbering '_'. Fixes
4146 gettext not working because we were clobbering '_'. Fixes
4143 http://www.scipy.net/roundup/ipython/issue6.
4147 http://www.scipy.net/roundup/ipython/issue6.
4144
4148
4145 2004-07-01 Fernando Perez <fperez@colorado.edu>
4149 2004-07-01 Fernando Perez <fperez@colorado.edu>
4146
4150
4147 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4151 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4148 into @cd. Patch by Ville.
4152 into @cd. Patch by Ville.
4149
4153
4150 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4154 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4151 new function to store things after ipmaker runs. Patch by Ville.
4155 new function to store things after ipmaker runs. Patch by Ville.
4152 Eventually this will go away once ipmaker is removed and the class
4156 Eventually this will go away once ipmaker is removed and the class
4153 gets cleaned up, but for now it's ok. Key functionality here is
4157 gets cleaned up, but for now it's ok. Key functionality here is
4154 the addition of the persistent storage mechanism, a dict for
4158 the addition of the persistent storage mechanism, a dict for
4155 keeping data across sessions (for now just bookmarks, but more can
4159 keeping data across sessions (for now just bookmarks, but more can
4156 be implemented later).
4160 be implemented later).
4157
4161
4158 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4162 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4159 persistent across sections. Patch by Ville, I modified it
4163 persistent across sections. Patch by Ville, I modified it
4160 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4164 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4161 added a '-l' option to list all bookmarks.
4165 added a '-l' option to list all bookmarks.
4162
4166
4163 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4167 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4164 center for cleanup. Registered with atexit.register(). I moved
4168 center for cleanup. Registered with atexit.register(). I moved
4165 here the old exit_cleanup(). After a patch by Ville.
4169 here the old exit_cleanup(). After a patch by Ville.
4166
4170
4167 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4171 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4168 characters in the hacked shlex_split for python 2.2.
4172 characters in the hacked shlex_split for python 2.2.
4169
4173
4170 * IPython/iplib.py (file_matches): more fixes to filenames with
4174 * IPython/iplib.py (file_matches): more fixes to filenames with
4171 whitespace in them. It's not perfect, but limitations in python's
4175 whitespace in them. It's not perfect, but limitations in python's
4172 readline make it impossible to go further.
4176 readline make it impossible to go further.
4173
4177
4174 2004-06-29 Fernando Perez <fperez@colorado.edu>
4178 2004-06-29 Fernando Perez <fperez@colorado.edu>
4175
4179
4176 * IPython/iplib.py (file_matches): escape whitespace correctly in
4180 * IPython/iplib.py (file_matches): escape whitespace correctly in
4177 filename completions. Bug reported by Ville.
4181 filename completions. Bug reported by Ville.
4178
4182
4179 2004-06-28 Fernando Perez <fperez@colorado.edu>
4183 2004-06-28 Fernando Perez <fperez@colorado.edu>
4180
4184
4181 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4185 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4182 the history file will be called 'history-PROFNAME' (or just
4186 the history file will be called 'history-PROFNAME' (or just
4183 'history' if no profile is loaded). I was getting annoyed at
4187 'history' if no profile is loaded). I was getting annoyed at
4184 getting my Numerical work history clobbered by pysh sessions.
4188 getting my Numerical work history clobbered by pysh sessions.
4185
4189
4186 * IPython/iplib.py (InteractiveShell.__init__): Internal
4190 * IPython/iplib.py (InteractiveShell.__init__): Internal
4187 getoutputerror() function so that we can honor the system_verbose
4191 getoutputerror() function so that we can honor the system_verbose
4188 flag for _all_ system calls. I also added escaping of #
4192 flag for _all_ system calls. I also added escaping of #
4189 characters here to avoid confusing Itpl.
4193 characters here to avoid confusing Itpl.
4190
4194
4191 * IPython/Magic.py (shlex_split): removed call to shell in
4195 * IPython/Magic.py (shlex_split): removed call to shell in
4192 parse_options and replaced it with shlex.split(). The annoying
4196 parse_options and replaced it with shlex.split(). The annoying
4193 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4197 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4194 to backport it from 2.3, with several frail hacks (the shlex
4198 to backport it from 2.3, with several frail hacks (the shlex
4195 module is rather limited in 2.2). Thanks to a suggestion by Ville
4199 module is rather limited in 2.2). Thanks to a suggestion by Ville
4196 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4200 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4197 problem.
4201 problem.
4198
4202
4199 (Magic.magic_system_verbose): new toggle to print the actual
4203 (Magic.magic_system_verbose): new toggle to print the actual
4200 system calls made by ipython. Mainly for debugging purposes.
4204 system calls made by ipython. Mainly for debugging purposes.
4201
4205
4202 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4206 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4203 doesn't support persistence. Reported (and fix suggested) by
4207 doesn't support persistence. Reported (and fix suggested) by
4204 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4208 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4205
4209
4206 2004-06-26 Fernando Perez <fperez@colorado.edu>
4210 2004-06-26 Fernando Perez <fperez@colorado.edu>
4207
4211
4208 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4212 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4209 continue prompts.
4213 continue prompts.
4210
4214
4211 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4215 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4212 function (basically a big docstring) and a few more things here to
4216 function (basically a big docstring) and a few more things here to
4213 speedup startup. pysh.py is now very lightweight. We want because
4217 speedup startup. pysh.py is now very lightweight. We want because
4214 it gets execfile'd, while InterpreterExec gets imported, so
4218 it gets execfile'd, while InterpreterExec gets imported, so
4215 byte-compilation saves time.
4219 byte-compilation saves time.
4216
4220
4217 2004-06-25 Fernando Perez <fperez@colorado.edu>
4221 2004-06-25 Fernando Perez <fperez@colorado.edu>
4218
4222
4219 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4223 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4220 -NUM', which was recently broken.
4224 -NUM', which was recently broken.
4221
4225
4222 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4226 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4223 in multi-line input (but not !!, which doesn't make sense there).
4227 in multi-line input (but not !!, which doesn't make sense there).
4224
4228
4225 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4229 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4226 It's just too useful, and people can turn it off in the less
4230 It's just too useful, and people can turn it off in the less
4227 common cases where it's a problem.
4231 common cases where it's a problem.
4228
4232
4229 2004-06-24 Fernando Perez <fperez@colorado.edu>
4233 2004-06-24 Fernando Perez <fperez@colorado.edu>
4230
4234
4231 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4235 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4232 special syntaxes (like alias calling) is now allied in multi-line
4236 special syntaxes (like alias calling) is now allied in multi-line
4233 input. This is still _very_ experimental, but it's necessary for
4237 input. This is still _very_ experimental, but it's necessary for
4234 efficient shell usage combining python looping syntax with system
4238 efficient shell usage combining python looping syntax with system
4235 calls. For now it's restricted to aliases, I don't think it
4239 calls. For now it's restricted to aliases, I don't think it
4236 really even makes sense to have this for magics.
4240 really even makes sense to have this for magics.
4237
4241
4238 2004-06-23 Fernando Perez <fperez@colorado.edu>
4242 2004-06-23 Fernando Perez <fperez@colorado.edu>
4239
4243
4240 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4244 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4241 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4245 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4242
4246
4243 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4247 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4244 extensions under Windows (after code sent by Gary Bishop). The
4248 extensions under Windows (after code sent by Gary Bishop). The
4245 extensions considered 'executable' are stored in IPython's rc
4249 extensions considered 'executable' are stored in IPython's rc
4246 structure as win_exec_ext.
4250 structure as win_exec_ext.
4247
4251
4248 * IPython/genutils.py (shell): new function, like system() but
4252 * IPython/genutils.py (shell): new function, like system() but
4249 without return value. Very useful for interactive shell work.
4253 without return value. Very useful for interactive shell work.
4250
4254
4251 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4255 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4252 delete aliases.
4256 delete aliases.
4253
4257
4254 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4258 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4255 sure that the alias table doesn't contain python keywords.
4259 sure that the alias table doesn't contain python keywords.
4256
4260
4257 2004-06-21 Fernando Perez <fperez@colorado.edu>
4261 2004-06-21 Fernando Perez <fperez@colorado.edu>
4258
4262
4259 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4263 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4260 non-existent items are found in $PATH. Reported by Thorsten.
4264 non-existent items are found in $PATH. Reported by Thorsten.
4261
4265
4262 2004-06-20 Fernando Perez <fperez@colorado.edu>
4266 2004-06-20 Fernando Perez <fperez@colorado.edu>
4263
4267
4264 * IPython/iplib.py (complete): modified the completer so that the
4268 * IPython/iplib.py (complete): modified the completer so that the
4265 order of priorities can be easily changed at runtime.
4269 order of priorities can be easily changed at runtime.
4266
4270
4267 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4271 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4268 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4272 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4269
4273
4270 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4274 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4271 expand Python variables prepended with $ in all system calls. The
4275 expand Python variables prepended with $ in all system calls. The
4272 same was done to InteractiveShell.handle_shell_escape. Now all
4276 same was done to InteractiveShell.handle_shell_escape. Now all
4273 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4277 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4274 expansion of python variables and expressions according to the
4278 expansion of python variables and expressions according to the
4275 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4279 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4276
4280
4277 Though PEP-215 has been rejected, a similar (but simpler) one
4281 Though PEP-215 has been rejected, a similar (but simpler) one
4278 seems like it will go into Python 2.4, PEP-292 -
4282 seems like it will go into Python 2.4, PEP-292 -
4279 http://www.python.org/peps/pep-0292.html.
4283 http://www.python.org/peps/pep-0292.html.
4280
4284
4281 I'll keep the full syntax of PEP-215, since IPython has since the
4285 I'll keep the full syntax of PEP-215, since IPython has since the
4282 start used Ka-Ping Yee's reference implementation discussed there
4286 start used Ka-Ping Yee's reference implementation discussed there
4283 (Itpl), and I actually like the powerful semantics it offers.
4287 (Itpl), and I actually like the powerful semantics it offers.
4284
4288
4285 In order to access normal shell variables, the $ has to be escaped
4289 In order to access normal shell variables, the $ has to be escaped
4286 via an extra $. For example:
4290 via an extra $. For example:
4287
4291
4288 In [7]: PATH='a python variable'
4292 In [7]: PATH='a python variable'
4289
4293
4290 In [8]: !echo $PATH
4294 In [8]: !echo $PATH
4291 a python variable
4295 a python variable
4292
4296
4293 In [9]: !echo $$PATH
4297 In [9]: !echo $$PATH
4294 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4298 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4295
4299
4296 (Magic.parse_options): escape $ so the shell doesn't evaluate
4300 (Magic.parse_options): escape $ so the shell doesn't evaluate
4297 things prematurely.
4301 things prematurely.
4298
4302
4299 * IPython/iplib.py (InteractiveShell.call_alias): added the
4303 * IPython/iplib.py (InteractiveShell.call_alias): added the
4300 ability for aliases to expand python variables via $.
4304 ability for aliases to expand python variables via $.
4301
4305
4302 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4306 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4303 system, now there's a @rehash/@rehashx pair of magics. These work
4307 system, now there's a @rehash/@rehashx pair of magics. These work
4304 like the csh rehash command, and can be invoked at any time. They
4308 like the csh rehash command, and can be invoked at any time. They
4305 build a table of aliases to everything in the user's $PATH
4309 build a table of aliases to everything in the user's $PATH
4306 (@rehash uses everything, @rehashx is slower but only adds
4310 (@rehash uses everything, @rehashx is slower but only adds
4307 executable files). With this, the pysh.py-based shell profile can
4311 executable files). With this, the pysh.py-based shell profile can
4308 now simply call rehash upon startup, and full access to all
4312 now simply call rehash upon startup, and full access to all
4309 programs in the user's path is obtained.
4313 programs in the user's path is obtained.
4310
4314
4311 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4315 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4312 functionality is now fully in place. I removed the old dynamic
4316 functionality is now fully in place. I removed the old dynamic
4313 code generation based approach, in favor of a much lighter one
4317 code generation based approach, in favor of a much lighter one
4314 based on a simple dict. The advantage is that this allows me to
4318 based on a simple dict. The advantage is that this allows me to
4315 now have thousands of aliases with negligible cost (unthinkable
4319 now have thousands of aliases with negligible cost (unthinkable
4316 with the old system).
4320 with the old system).
4317
4321
4318 2004-06-19 Fernando Perez <fperez@colorado.edu>
4322 2004-06-19 Fernando Perez <fperez@colorado.edu>
4319
4323
4320 * IPython/iplib.py (__init__): extended MagicCompleter class to
4324 * IPython/iplib.py (__init__): extended MagicCompleter class to
4321 also complete (last in priority) on user aliases.
4325 also complete (last in priority) on user aliases.
4322
4326
4323 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4327 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4324 call to eval.
4328 call to eval.
4325 (ItplNS.__init__): Added a new class which functions like Itpl,
4329 (ItplNS.__init__): Added a new class which functions like Itpl,
4326 but allows configuring the namespace for the evaluation to occur
4330 but allows configuring the namespace for the evaluation to occur
4327 in.
4331 in.
4328
4332
4329 2004-06-18 Fernando Perez <fperez@colorado.edu>
4333 2004-06-18 Fernando Perez <fperez@colorado.edu>
4330
4334
4331 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4335 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4332 better message when 'exit' or 'quit' are typed (a common newbie
4336 better message when 'exit' or 'quit' are typed (a common newbie
4333 confusion).
4337 confusion).
4334
4338
4335 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4339 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4336 check for Windows users.
4340 check for Windows users.
4337
4341
4338 * IPython/iplib.py (InteractiveShell.user_setup): removed
4342 * IPython/iplib.py (InteractiveShell.user_setup): removed
4339 disabling of colors for Windows. I'll test at runtime and issue a
4343 disabling of colors for Windows. I'll test at runtime and issue a
4340 warning if Gary's readline isn't found, as to nudge users to
4344 warning if Gary's readline isn't found, as to nudge users to
4341 download it.
4345 download it.
4342
4346
4343 2004-06-16 Fernando Perez <fperez@colorado.edu>
4347 2004-06-16 Fernando Perez <fperez@colorado.edu>
4344
4348
4345 * IPython/genutils.py (Stream.__init__): changed to print errors
4349 * IPython/genutils.py (Stream.__init__): changed to print errors
4346 to sys.stderr. I had a circular dependency here. Now it's
4350 to sys.stderr. I had a circular dependency here. Now it's
4347 possible to run ipython as IDLE's shell (consider this pre-alpha,
4351 possible to run ipython as IDLE's shell (consider this pre-alpha,
4348 since true stdout things end up in the starting terminal instead
4352 since true stdout things end up in the starting terminal instead
4349 of IDLE's out).
4353 of IDLE's out).
4350
4354
4351 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4355 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4352 users who haven't # updated their prompt_in2 definitions. Remove
4356 users who haven't # updated their prompt_in2 definitions. Remove
4353 eventually.
4357 eventually.
4354 (multiple_replace): added credit to original ASPN recipe.
4358 (multiple_replace): added credit to original ASPN recipe.
4355
4359
4356 2004-06-15 Fernando Perez <fperez@colorado.edu>
4360 2004-06-15 Fernando Perez <fperez@colorado.edu>
4357
4361
4358 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4362 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4359 list of auto-defined aliases.
4363 list of auto-defined aliases.
4360
4364
4361 2004-06-13 Fernando Perez <fperez@colorado.edu>
4365 2004-06-13 Fernando Perez <fperez@colorado.edu>
4362
4366
4363 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4367 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4364 install was really requested (so setup.py can be used for other
4368 install was really requested (so setup.py can be used for other
4365 things under Windows).
4369 things under Windows).
4366
4370
4367 2004-06-10 Fernando Perez <fperez@colorado.edu>
4371 2004-06-10 Fernando Perez <fperez@colorado.edu>
4368
4372
4369 * IPython/Logger.py (Logger.create_log): Manually remove any old
4373 * IPython/Logger.py (Logger.create_log): Manually remove any old
4370 backup, since os.remove may fail under Windows. Fixes bug
4374 backup, since os.remove may fail under Windows. Fixes bug
4371 reported by Thorsten.
4375 reported by Thorsten.
4372
4376
4373 2004-06-09 Fernando Perez <fperez@colorado.edu>
4377 2004-06-09 Fernando Perez <fperez@colorado.edu>
4374
4378
4375 * examples/example-embed.py: fixed all references to %n (replaced
4379 * examples/example-embed.py: fixed all references to %n (replaced
4376 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4380 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4377 for all examples and the manual as well.
4381 for all examples and the manual as well.
4378
4382
4379 2004-06-08 Fernando Perez <fperez@colorado.edu>
4383 2004-06-08 Fernando Perez <fperez@colorado.edu>
4380
4384
4381 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4385 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4382 alignment and color management. All 3 prompt subsystems now
4386 alignment and color management. All 3 prompt subsystems now
4383 inherit from BasePrompt.
4387 inherit from BasePrompt.
4384
4388
4385 * tools/release: updates for windows installer build and tag rpms
4389 * tools/release: updates for windows installer build and tag rpms
4386 with python version (since paths are fixed).
4390 with python version (since paths are fixed).
4387
4391
4388 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4392 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4389 which will become eventually obsolete. Also fixed the default
4393 which will become eventually obsolete. Also fixed the default
4390 prompt_in2 to use \D, so at least new users start with the correct
4394 prompt_in2 to use \D, so at least new users start with the correct
4391 defaults.
4395 defaults.
4392 WARNING: Users with existing ipythonrc files will need to apply
4396 WARNING: Users with existing ipythonrc files will need to apply
4393 this fix manually!
4397 this fix manually!
4394
4398
4395 * setup.py: make windows installer (.exe). This is finally the
4399 * setup.py: make windows installer (.exe). This is finally the
4396 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4400 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4397 which I hadn't included because it required Python 2.3 (or recent
4401 which I hadn't included because it required Python 2.3 (or recent
4398 distutils).
4402 distutils).
4399
4403
4400 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4404 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4401 usage of new '\D' escape.
4405 usage of new '\D' escape.
4402
4406
4403 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4407 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4404 lacks os.getuid())
4408 lacks os.getuid())
4405 (CachedOutput.set_colors): Added the ability to turn coloring
4409 (CachedOutput.set_colors): Added the ability to turn coloring
4406 on/off with @colors even for manually defined prompt colors. It
4410 on/off with @colors even for manually defined prompt colors. It
4407 uses a nasty global, but it works safely and via the generic color
4411 uses a nasty global, but it works safely and via the generic color
4408 handling mechanism.
4412 handling mechanism.
4409 (Prompt2.__init__): Introduced new escape '\D' for continuation
4413 (Prompt2.__init__): Introduced new escape '\D' for continuation
4410 prompts. It represents the counter ('\#') as dots.
4414 prompts. It represents the counter ('\#') as dots.
4411 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4415 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4412 need to update their ipythonrc files and replace '%n' with '\D' in
4416 need to update their ipythonrc files and replace '%n' with '\D' in
4413 their prompt_in2 settings everywhere. Sorry, but there's
4417 their prompt_in2 settings everywhere. Sorry, but there's
4414 otherwise no clean way to get all prompts to properly align. The
4418 otherwise no clean way to get all prompts to properly align. The
4415 ipythonrc shipped with IPython has been updated.
4419 ipythonrc shipped with IPython has been updated.
4416
4420
4417 2004-06-07 Fernando Perez <fperez@colorado.edu>
4421 2004-06-07 Fernando Perez <fperez@colorado.edu>
4418
4422
4419 * setup.py (isfile): Pass local_icons option to latex2html, so the
4423 * setup.py (isfile): Pass local_icons option to latex2html, so the
4420 resulting HTML file is self-contained. Thanks to
4424 resulting HTML file is self-contained. Thanks to
4421 dryice-AT-liu.com.cn for the tip.
4425 dryice-AT-liu.com.cn for the tip.
4422
4426
4423 * pysh.py: I created a new profile 'shell', which implements a
4427 * pysh.py: I created a new profile 'shell', which implements a
4424 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4428 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4425 system shell, nor will it become one anytime soon. It's mainly
4429 system shell, nor will it become one anytime soon. It's mainly
4426 meant to illustrate the use of the new flexible bash-like prompts.
4430 meant to illustrate the use of the new flexible bash-like prompts.
4427 I guess it could be used by hardy souls for true shell management,
4431 I guess it could be used by hardy souls for true shell management,
4428 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4432 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4429 profile. This uses the InterpreterExec extension provided by
4433 profile. This uses the InterpreterExec extension provided by
4430 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4434 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4431
4435
4432 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4436 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4433 auto-align itself with the length of the previous input prompt
4437 auto-align itself with the length of the previous input prompt
4434 (taking into account the invisible color escapes).
4438 (taking into account the invisible color escapes).
4435 (CachedOutput.__init__): Large restructuring of this class. Now
4439 (CachedOutput.__init__): Large restructuring of this class. Now
4436 all three prompts (primary1, primary2, output) are proper objects,
4440 all three prompts (primary1, primary2, output) are proper objects,
4437 managed by the 'parent' CachedOutput class. The code is still a
4441 managed by the 'parent' CachedOutput class. The code is still a
4438 bit hackish (all prompts share state via a pointer to the cache),
4442 bit hackish (all prompts share state via a pointer to the cache),
4439 but it's overall far cleaner than before.
4443 but it's overall far cleaner than before.
4440
4444
4441 * IPython/genutils.py (getoutputerror): modified to add verbose,
4445 * IPython/genutils.py (getoutputerror): modified to add verbose,
4442 debug and header options. This makes the interface of all getout*
4446 debug and header options. This makes the interface of all getout*
4443 functions uniform.
4447 functions uniform.
4444 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4448 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4445
4449
4446 * IPython/Magic.py (Magic.default_option): added a function to
4450 * IPython/Magic.py (Magic.default_option): added a function to
4447 allow registering default options for any magic command. This
4451 allow registering default options for any magic command. This
4448 makes it easy to have profiles which customize the magics globally
4452 makes it easy to have profiles which customize the magics globally
4449 for a certain use. The values set through this function are
4453 for a certain use. The values set through this function are
4450 picked up by the parse_options() method, which all magics should
4454 picked up by the parse_options() method, which all magics should
4451 use to parse their options.
4455 use to parse their options.
4452
4456
4453 * IPython/genutils.py (warn): modified the warnings framework to
4457 * IPython/genutils.py (warn): modified the warnings framework to
4454 use the Term I/O class. I'm trying to slowly unify all of
4458 use the Term I/O class. I'm trying to slowly unify all of
4455 IPython's I/O operations to pass through Term.
4459 IPython's I/O operations to pass through Term.
4456
4460
4457 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4461 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4458 the secondary prompt to correctly match the length of the primary
4462 the secondary prompt to correctly match the length of the primary
4459 one for any prompt. Now multi-line code will properly line up
4463 one for any prompt. Now multi-line code will properly line up
4460 even for path dependent prompts, such as the new ones available
4464 even for path dependent prompts, such as the new ones available
4461 via the prompt_specials.
4465 via the prompt_specials.
4462
4466
4463 2004-06-06 Fernando Perez <fperez@colorado.edu>
4467 2004-06-06 Fernando Perez <fperez@colorado.edu>
4464
4468
4465 * IPython/Prompts.py (prompt_specials): Added the ability to have
4469 * IPython/Prompts.py (prompt_specials): Added the ability to have
4466 bash-like special sequences in the prompts, which get
4470 bash-like special sequences in the prompts, which get
4467 automatically expanded. Things like hostname, current working
4471 automatically expanded. Things like hostname, current working
4468 directory and username are implemented already, but it's easy to
4472 directory and username are implemented already, but it's easy to
4469 add more in the future. Thanks to a patch by W.J. van der Laan
4473 add more in the future. Thanks to a patch by W.J. van der Laan
4470 <gnufnork-AT-hetdigitalegat.nl>
4474 <gnufnork-AT-hetdigitalegat.nl>
4471 (prompt_specials): Added color support for prompt strings, so
4475 (prompt_specials): Added color support for prompt strings, so
4472 users can define arbitrary color setups for their prompts.
4476 users can define arbitrary color setups for their prompts.
4473
4477
4474 2004-06-05 Fernando Perez <fperez@colorado.edu>
4478 2004-06-05 Fernando Perez <fperez@colorado.edu>
4475
4479
4476 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4480 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4477 code to load Gary Bishop's readline and configure it
4481 code to load Gary Bishop's readline and configure it
4478 automatically. Thanks to Gary for help on this.
4482 automatically. Thanks to Gary for help on this.
4479
4483
4480 2004-06-01 Fernando Perez <fperez@colorado.edu>
4484 2004-06-01 Fernando Perez <fperez@colorado.edu>
4481
4485
4482 * IPython/Logger.py (Logger.create_log): fix bug for logging
4486 * IPython/Logger.py (Logger.create_log): fix bug for logging
4483 with no filename (previous fix was incomplete).
4487 with no filename (previous fix was incomplete).
4484
4488
4485 2004-05-25 Fernando Perez <fperez@colorado.edu>
4489 2004-05-25 Fernando Perez <fperez@colorado.edu>
4486
4490
4487 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4491 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4488 parens would get passed to the shell.
4492 parens would get passed to the shell.
4489
4493
4490 2004-05-20 Fernando Perez <fperez@colorado.edu>
4494 2004-05-20 Fernando Perez <fperez@colorado.edu>
4491
4495
4492 * IPython/Magic.py (Magic.magic_prun): changed default profile
4496 * IPython/Magic.py (Magic.magic_prun): changed default profile
4493 sort order to 'time' (the more common profiling need).
4497 sort order to 'time' (the more common profiling need).
4494
4498
4495 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4499 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4496 so that source code shown is guaranteed in sync with the file on
4500 so that source code shown is guaranteed in sync with the file on
4497 disk (also changed in psource). Similar fix to the one for
4501 disk (also changed in psource). Similar fix to the one for
4498 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4502 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4499 <yann.ledu-AT-noos.fr>.
4503 <yann.ledu-AT-noos.fr>.
4500
4504
4501 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4505 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4502 with a single option would not be correctly parsed. Closes
4506 with a single option would not be correctly parsed. Closes
4503 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4507 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4504 introduced in 0.6.0 (on 2004-05-06).
4508 introduced in 0.6.0 (on 2004-05-06).
4505
4509
4506 2004-05-13 *** Released version 0.6.0
4510 2004-05-13 *** Released version 0.6.0
4507
4511
4508 2004-05-13 Fernando Perez <fperez@colorado.edu>
4512 2004-05-13 Fernando Perez <fperez@colorado.edu>
4509
4513
4510 * debian/: Added debian/ directory to CVS, so that debian support
4514 * debian/: Added debian/ directory to CVS, so that debian support
4511 is publicly accessible. The debian package is maintained by Jack
4515 is publicly accessible. The debian package is maintained by Jack
4512 Moffit <jack-AT-xiph.org>.
4516 Moffit <jack-AT-xiph.org>.
4513
4517
4514 * Documentation: included the notes about an ipython-based system
4518 * Documentation: included the notes about an ipython-based system
4515 shell (the hypothetical 'pysh') into the new_design.pdf document,
4519 shell (the hypothetical 'pysh') into the new_design.pdf document,
4516 so that these ideas get distributed to users along with the
4520 so that these ideas get distributed to users along with the
4517 official documentation.
4521 official documentation.
4518
4522
4519 2004-05-10 Fernando Perez <fperez@colorado.edu>
4523 2004-05-10 Fernando Perez <fperez@colorado.edu>
4520
4524
4521 * IPython/Logger.py (Logger.create_log): fix recently introduced
4525 * IPython/Logger.py (Logger.create_log): fix recently introduced
4522 bug (misindented line) where logstart would fail when not given an
4526 bug (misindented line) where logstart would fail when not given an
4523 explicit filename.
4527 explicit filename.
4524
4528
4525 2004-05-09 Fernando Perez <fperez@colorado.edu>
4529 2004-05-09 Fernando Perez <fperez@colorado.edu>
4526
4530
4527 * IPython/Magic.py (Magic.parse_options): skip system call when
4531 * IPython/Magic.py (Magic.parse_options): skip system call when
4528 there are no options to look for. Faster, cleaner for the common
4532 there are no options to look for. Faster, cleaner for the common
4529 case.
4533 case.
4530
4534
4531 * Documentation: many updates to the manual: describing Windows
4535 * Documentation: many updates to the manual: describing Windows
4532 support better, Gnuplot updates, credits, misc small stuff. Also
4536 support better, Gnuplot updates, credits, misc small stuff. Also
4533 updated the new_design doc a bit.
4537 updated the new_design doc a bit.
4534
4538
4535 2004-05-06 *** Released version 0.6.0.rc1
4539 2004-05-06 *** Released version 0.6.0.rc1
4536
4540
4537 2004-05-06 Fernando Perez <fperez@colorado.edu>
4541 2004-05-06 Fernando Perez <fperez@colorado.edu>
4538
4542
4539 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4543 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4540 operations to use the vastly more efficient list/''.join() method.
4544 operations to use the vastly more efficient list/''.join() method.
4541 (FormattedTB.text): Fix
4545 (FormattedTB.text): Fix
4542 http://www.scipy.net/roundup/ipython/issue12 - exception source
4546 http://www.scipy.net/roundup/ipython/issue12 - exception source
4543 extract not updated after reload. Thanks to Mike Salib
4547 extract not updated after reload. Thanks to Mike Salib
4544 <msalib-AT-mit.edu> for pinning the source of the problem.
4548 <msalib-AT-mit.edu> for pinning the source of the problem.
4545 Fortunately, the solution works inside ipython and doesn't require
4549 Fortunately, the solution works inside ipython and doesn't require
4546 any changes to python proper.
4550 any changes to python proper.
4547
4551
4548 * IPython/Magic.py (Magic.parse_options): Improved to process the
4552 * IPython/Magic.py (Magic.parse_options): Improved to process the
4549 argument list as a true shell would (by actually using the
4553 argument list as a true shell would (by actually using the
4550 underlying system shell). This way, all @magics automatically get
4554 underlying system shell). This way, all @magics automatically get
4551 shell expansion for variables. Thanks to a comment by Alex
4555 shell expansion for variables. Thanks to a comment by Alex
4552 Schmolck.
4556 Schmolck.
4553
4557
4554 2004-04-04 Fernando Perez <fperez@colorado.edu>
4558 2004-04-04 Fernando Perez <fperez@colorado.edu>
4555
4559
4556 * IPython/iplib.py (InteractiveShell.interact): Added a special
4560 * IPython/iplib.py (InteractiveShell.interact): Added a special
4557 trap for a debugger quit exception, which is basically impossible
4561 trap for a debugger quit exception, which is basically impossible
4558 to handle by normal mechanisms, given what pdb does to the stack.
4562 to handle by normal mechanisms, given what pdb does to the stack.
4559 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4563 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4560
4564
4561 2004-04-03 Fernando Perez <fperez@colorado.edu>
4565 2004-04-03 Fernando Perez <fperez@colorado.edu>
4562
4566
4563 * IPython/genutils.py (Term): Standardized the names of the Term
4567 * IPython/genutils.py (Term): Standardized the names of the Term
4564 class streams to cin/cout/cerr, following C++ naming conventions
4568 class streams to cin/cout/cerr, following C++ naming conventions
4565 (I can't use in/out/err because 'in' is not a valid attribute
4569 (I can't use in/out/err because 'in' is not a valid attribute
4566 name).
4570 name).
4567
4571
4568 * IPython/iplib.py (InteractiveShell.interact): don't increment
4572 * IPython/iplib.py (InteractiveShell.interact): don't increment
4569 the prompt if there's no user input. By Daniel 'Dang' Griffith
4573 the prompt if there's no user input. By Daniel 'Dang' Griffith
4570 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4574 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4571 Francois Pinard.
4575 Francois Pinard.
4572
4576
4573 2004-04-02 Fernando Perez <fperez@colorado.edu>
4577 2004-04-02 Fernando Perez <fperez@colorado.edu>
4574
4578
4575 * IPython/genutils.py (Stream.__init__): Modified to survive at
4579 * IPython/genutils.py (Stream.__init__): Modified to survive at
4576 least importing in contexts where stdin/out/err aren't true file
4580 least importing in contexts where stdin/out/err aren't true file
4577 objects, such as PyCrust (they lack fileno() and mode). However,
4581 objects, such as PyCrust (they lack fileno() and mode). However,
4578 the recovery facilities which rely on these things existing will
4582 the recovery facilities which rely on these things existing will
4579 not work.
4583 not work.
4580
4584
4581 2004-04-01 Fernando Perez <fperez@colorado.edu>
4585 2004-04-01 Fernando Perez <fperez@colorado.edu>
4582
4586
4583 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4587 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4584 use the new getoutputerror() function, so it properly
4588 use the new getoutputerror() function, so it properly
4585 distinguishes stdout/err.
4589 distinguishes stdout/err.
4586
4590
4587 * IPython/genutils.py (getoutputerror): added a function to
4591 * IPython/genutils.py (getoutputerror): added a function to
4588 capture separately the standard output and error of a command.
4592 capture separately the standard output and error of a command.
4589 After a comment from dang on the mailing lists. This code is
4593 After a comment from dang on the mailing lists. This code is
4590 basically a modified version of commands.getstatusoutput(), from
4594 basically a modified version of commands.getstatusoutput(), from
4591 the standard library.
4595 the standard library.
4592
4596
4593 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4597 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4594 '!!' as a special syntax (shorthand) to access @sx.
4598 '!!' as a special syntax (shorthand) to access @sx.
4595
4599
4596 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4600 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4597 command and return its output as a list split on '\n'.
4601 command and return its output as a list split on '\n'.
4598
4602
4599 2004-03-31 Fernando Perez <fperez@colorado.edu>
4603 2004-03-31 Fernando Perez <fperez@colorado.edu>
4600
4604
4601 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4605 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4602 method to dictionaries used as FakeModule instances if they lack
4606 method to dictionaries used as FakeModule instances if they lack
4603 it. At least pydoc in python2.3 breaks for runtime-defined
4607 it. At least pydoc in python2.3 breaks for runtime-defined
4604 functions without this hack. At some point I need to _really_
4608 functions without this hack. At some point I need to _really_
4605 understand what FakeModule is doing, because it's a gross hack.
4609 understand what FakeModule is doing, because it's a gross hack.
4606 But it solves Arnd's problem for now...
4610 But it solves Arnd's problem for now...
4607
4611
4608 2004-02-27 Fernando Perez <fperez@colorado.edu>
4612 2004-02-27 Fernando Perez <fperez@colorado.edu>
4609
4613
4610 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4614 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4611 mode would behave erratically. Also increased the number of
4615 mode would behave erratically. Also increased the number of
4612 possible logs in rotate mod to 999. Thanks to Rod Holland
4616 possible logs in rotate mod to 999. Thanks to Rod Holland
4613 <rhh@StructureLABS.com> for the report and fixes.
4617 <rhh@StructureLABS.com> for the report and fixes.
4614
4618
4615 2004-02-26 Fernando Perez <fperez@colorado.edu>
4619 2004-02-26 Fernando Perez <fperez@colorado.edu>
4616
4620
4617 * IPython/genutils.py (page): Check that the curses module really
4621 * IPython/genutils.py (page): Check that the curses module really
4618 has the initscr attribute before trying to use it. For some
4622 has the initscr attribute before trying to use it. For some
4619 reason, the Solaris curses module is missing this. I think this
4623 reason, the Solaris curses module is missing this. I think this
4620 should be considered a Solaris python bug, but I'm not sure.
4624 should be considered a Solaris python bug, but I'm not sure.
4621
4625
4622 2004-01-17 Fernando Perez <fperez@colorado.edu>
4626 2004-01-17 Fernando Perez <fperez@colorado.edu>
4623
4627
4624 * IPython/genutils.py (Stream.__init__): Changes to try to make
4628 * IPython/genutils.py (Stream.__init__): Changes to try to make
4625 ipython robust against stdin/out/err being closed by the user.
4629 ipython robust against stdin/out/err being closed by the user.
4626 This is 'user error' (and blocks a normal python session, at least
4630 This is 'user error' (and blocks a normal python session, at least
4627 the stdout case). However, Ipython should be able to survive such
4631 the stdout case). However, Ipython should be able to survive such
4628 instances of abuse as gracefully as possible. To simplify the
4632 instances of abuse as gracefully as possible. To simplify the
4629 coding and maintain compatibility with Gary Bishop's Term
4633 coding and maintain compatibility with Gary Bishop's Term
4630 contributions, I've made use of classmethods for this. I think
4634 contributions, I've made use of classmethods for this. I think
4631 this introduces a dependency on python 2.2.
4635 this introduces a dependency on python 2.2.
4632
4636
4633 2004-01-13 Fernando Perez <fperez@colorado.edu>
4637 2004-01-13 Fernando Perez <fperez@colorado.edu>
4634
4638
4635 * IPython/numutils.py (exp_safe): simplified the code a bit and
4639 * IPython/numutils.py (exp_safe): simplified the code a bit and
4636 removed the need for importing the kinds module altogether.
4640 removed the need for importing the kinds module altogether.
4637
4641
4638 2004-01-06 Fernando Perez <fperez@colorado.edu>
4642 2004-01-06 Fernando Perez <fperez@colorado.edu>
4639
4643
4640 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4644 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4641 a magic function instead, after some community feedback. No
4645 a magic function instead, after some community feedback. No
4642 special syntax will exist for it, but its name is deliberately
4646 special syntax will exist for it, but its name is deliberately
4643 very short.
4647 very short.
4644
4648
4645 2003-12-20 Fernando Perez <fperez@colorado.edu>
4649 2003-12-20 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4651 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4648 new functionality, to automagically assign the result of a shell
4652 new functionality, to automagically assign the result of a shell
4649 command to a variable. I'll solicit some community feedback on
4653 command to a variable. I'll solicit some community feedback on
4650 this before making it permanent.
4654 this before making it permanent.
4651
4655
4652 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4656 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4653 requested about callables for which inspect couldn't obtain a
4657 requested about callables for which inspect couldn't obtain a
4654 proper argspec. Thanks to a crash report sent by Etienne
4658 proper argspec. Thanks to a crash report sent by Etienne
4655 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4659 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4656
4660
4657 2003-12-09 Fernando Perez <fperez@colorado.edu>
4661 2003-12-09 Fernando Perez <fperez@colorado.edu>
4658
4662
4659 * IPython/genutils.py (page): patch for the pager to work across
4663 * IPython/genutils.py (page): patch for the pager to work across
4660 various versions of Windows. By Gary Bishop.
4664 various versions of Windows. By Gary Bishop.
4661
4665
4662 2003-12-04 Fernando Perez <fperez@colorado.edu>
4666 2003-12-04 Fernando Perez <fperez@colorado.edu>
4663
4667
4664 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4668 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4665 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4669 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4666 While I tested this and it looks ok, there may still be corner
4670 While I tested this and it looks ok, there may still be corner
4667 cases I've missed.
4671 cases I've missed.
4668
4672
4669 2003-12-01 Fernando Perez <fperez@colorado.edu>
4673 2003-12-01 Fernando Perez <fperez@colorado.edu>
4670
4674
4671 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4675 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4672 where a line like 'p,q=1,2' would fail because the automagic
4676 where a line like 'p,q=1,2' would fail because the automagic
4673 system would be triggered for @p.
4677 system would be triggered for @p.
4674
4678
4675 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4679 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4676 cleanups, code unmodified.
4680 cleanups, code unmodified.
4677
4681
4678 * IPython/genutils.py (Term): added a class for IPython to handle
4682 * IPython/genutils.py (Term): added a class for IPython to handle
4679 output. In most cases it will just be a proxy for stdout/err, but
4683 output. In most cases it will just be a proxy for stdout/err, but
4680 having this allows modifications to be made for some platforms,
4684 having this allows modifications to be made for some platforms,
4681 such as handling color escapes under Windows. All of this code
4685 such as handling color escapes under Windows. All of this code
4682 was contributed by Gary Bishop, with minor modifications by me.
4686 was contributed by Gary Bishop, with minor modifications by me.
4683 The actual changes affect many files.
4687 The actual changes affect many files.
4684
4688
4685 2003-11-30 Fernando Perez <fperez@colorado.edu>
4689 2003-11-30 Fernando Perez <fperez@colorado.edu>
4686
4690
4687 * IPython/iplib.py (file_matches): new completion code, courtesy
4691 * IPython/iplib.py (file_matches): new completion code, courtesy
4688 of Jeff Collins. This enables filename completion again under
4692 of Jeff Collins. This enables filename completion again under
4689 python 2.3, which disabled it at the C level.
4693 python 2.3, which disabled it at the C level.
4690
4694
4691 2003-11-11 Fernando Perez <fperez@colorado.edu>
4695 2003-11-11 Fernando Perez <fperez@colorado.edu>
4692
4696
4693 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4697 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4694 for Numeric.array(map(...)), but often convenient.
4698 for Numeric.array(map(...)), but often convenient.
4695
4699
4696 2003-11-05 Fernando Perez <fperez@colorado.edu>
4700 2003-11-05 Fernando Perez <fperez@colorado.edu>
4697
4701
4698 * IPython/numutils.py (frange): Changed a call from int() to
4702 * IPython/numutils.py (frange): Changed a call from int() to
4699 int(round()) to prevent a problem reported with arange() in the
4703 int(round()) to prevent a problem reported with arange() in the
4700 numpy list.
4704 numpy list.
4701
4705
4702 2003-10-06 Fernando Perez <fperez@colorado.edu>
4706 2003-10-06 Fernando Perez <fperez@colorado.edu>
4703
4707
4704 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4708 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4705 prevent crashes if sys lacks an argv attribute (it happens with
4709 prevent crashes if sys lacks an argv attribute (it happens with
4706 embedded interpreters which build a bare-bones sys module).
4710 embedded interpreters which build a bare-bones sys module).
4707 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4711 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4708
4712
4709 2003-09-24 Fernando Perez <fperez@colorado.edu>
4713 2003-09-24 Fernando Perez <fperez@colorado.edu>
4710
4714
4711 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4715 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4712 to protect against poorly written user objects where __getattr__
4716 to protect against poorly written user objects where __getattr__
4713 raises exceptions other than AttributeError. Thanks to a bug
4717 raises exceptions other than AttributeError. Thanks to a bug
4714 report by Oliver Sander <osander-AT-gmx.de>.
4718 report by Oliver Sander <osander-AT-gmx.de>.
4715
4719
4716 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4720 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4717 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4721 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4718
4722
4719 2003-09-09 Fernando Perez <fperez@colorado.edu>
4723 2003-09-09 Fernando Perez <fperez@colorado.edu>
4720
4724
4721 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4725 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4722 unpacking a list whith a callable as first element would
4726 unpacking a list whith a callable as first element would
4723 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4727 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4724 Collins.
4728 Collins.
4725
4729
4726 2003-08-25 *** Released version 0.5.0
4730 2003-08-25 *** Released version 0.5.0
4727
4731
4728 2003-08-22 Fernando Perez <fperez@colorado.edu>
4732 2003-08-22 Fernando Perez <fperez@colorado.edu>
4729
4733
4730 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4734 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4731 improperly defined user exceptions. Thanks to feedback from Mark
4735 improperly defined user exceptions. Thanks to feedback from Mark
4732 Russell <mrussell-AT-verio.net>.
4736 Russell <mrussell-AT-verio.net>.
4733
4737
4734 2003-08-20 Fernando Perez <fperez@colorado.edu>
4738 2003-08-20 Fernando Perez <fperez@colorado.edu>
4735
4739
4736 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4740 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4737 printing so that it would print multi-line string forms starting
4741 printing so that it would print multi-line string forms starting
4738 with a new line. This way the formatting is better respected for
4742 with a new line. This way the formatting is better respected for
4739 objects which work hard to make nice string forms.
4743 objects which work hard to make nice string forms.
4740
4744
4741 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4745 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4742 autocall would overtake data access for objects with both
4746 autocall would overtake data access for objects with both
4743 __getitem__ and __call__.
4747 __getitem__ and __call__.
4744
4748
4745 2003-08-19 *** Released version 0.5.0-rc1
4749 2003-08-19 *** Released version 0.5.0-rc1
4746
4750
4747 2003-08-19 Fernando Perez <fperez@colorado.edu>
4751 2003-08-19 Fernando Perez <fperez@colorado.edu>
4748
4752
4749 * IPython/deep_reload.py (load_tail): single tiny change here
4753 * IPython/deep_reload.py (load_tail): single tiny change here
4750 seems to fix the long-standing bug of dreload() failing to work
4754 seems to fix the long-standing bug of dreload() failing to work
4751 for dotted names. But this module is pretty tricky, so I may have
4755 for dotted names. But this module is pretty tricky, so I may have
4752 missed some subtlety. Needs more testing!.
4756 missed some subtlety. Needs more testing!.
4753
4757
4754 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4758 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4755 exceptions which have badly implemented __str__ methods.
4759 exceptions which have badly implemented __str__ methods.
4756 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4760 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4757 which I've been getting reports about from Python 2.3 users. I
4761 which I've been getting reports about from Python 2.3 users. I
4758 wish I had a simple test case to reproduce the problem, so I could
4762 wish I had a simple test case to reproduce the problem, so I could
4759 either write a cleaner workaround or file a bug report if
4763 either write a cleaner workaround or file a bug report if
4760 necessary.
4764 necessary.
4761
4765
4762 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4766 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4763 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4767 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4764 a bug report by Tjabo Kloppenburg.
4768 a bug report by Tjabo Kloppenburg.
4765
4769
4766 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4770 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4767 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4771 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4768 seems rather unstable. Thanks to a bug report by Tjabo
4772 seems rather unstable. Thanks to a bug report by Tjabo
4769 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4773 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4770
4774
4771 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4775 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4772 this out soon because of the critical fixes in the inner loop for
4776 this out soon because of the critical fixes in the inner loop for
4773 generators.
4777 generators.
4774
4778
4775 * IPython/Magic.py (Magic.getargspec): removed. This (and
4779 * IPython/Magic.py (Magic.getargspec): removed. This (and
4776 _get_def) have been obsoleted by OInspect for a long time, I
4780 _get_def) have been obsoleted by OInspect for a long time, I
4777 hadn't noticed that they were dead code.
4781 hadn't noticed that they were dead code.
4778 (Magic._ofind): restored _ofind functionality for a few literals
4782 (Magic._ofind): restored _ofind functionality for a few literals
4779 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4783 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4780 for things like "hello".capitalize?, since that would require a
4784 for things like "hello".capitalize?, since that would require a
4781 potentially dangerous eval() again.
4785 potentially dangerous eval() again.
4782
4786
4783 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4787 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4784 logic a bit more to clean up the escapes handling and minimize the
4788 logic a bit more to clean up the escapes handling and minimize the
4785 use of _ofind to only necessary cases. The interactive 'feel' of
4789 use of _ofind to only necessary cases. The interactive 'feel' of
4786 IPython should have improved quite a bit with the changes in
4790 IPython should have improved quite a bit with the changes in
4787 _prefilter and _ofind (besides being far safer than before).
4791 _prefilter and _ofind (besides being far safer than before).
4788
4792
4789 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4793 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4790 obscure, never reported). Edit would fail to find the object to
4794 obscure, never reported). Edit would fail to find the object to
4791 edit under some circumstances.
4795 edit under some circumstances.
4792 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4796 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4793 which were causing double-calling of generators. Those eval calls
4797 which were causing double-calling of generators. Those eval calls
4794 were _very_ dangerous, since code with side effects could be
4798 were _very_ dangerous, since code with side effects could be
4795 triggered. As they say, 'eval is evil'... These were the
4799 triggered. As they say, 'eval is evil'... These were the
4796 nastiest evals in IPython. Besides, _ofind is now far simpler,
4800 nastiest evals in IPython. Besides, _ofind is now far simpler,
4797 and it should also be quite a bit faster. Its use of inspect is
4801 and it should also be quite a bit faster. Its use of inspect is
4798 also safer, so perhaps some of the inspect-related crashes I've
4802 also safer, so perhaps some of the inspect-related crashes I've
4799 seen lately with Python 2.3 might be taken care of. That will
4803 seen lately with Python 2.3 might be taken care of. That will
4800 need more testing.
4804 need more testing.
4801
4805
4802 2003-08-17 Fernando Perez <fperez@colorado.edu>
4806 2003-08-17 Fernando Perez <fperez@colorado.edu>
4803
4807
4804 * IPython/iplib.py (InteractiveShell._prefilter): significant
4808 * IPython/iplib.py (InteractiveShell._prefilter): significant
4805 simplifications to the logic for handling user escapes. Faster
4809 simplifications to the logic for handling user escapes. Faster
4806 and simpler code.
4810 and simpler code.
4807
4811
4808 2003-08-14 Fernando Perez <fperez@colorado.edu>
4812 2003-08-14 Fernando Perez <fperez@colorado.edu>
4809
4813
4810 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4814 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4811 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4815 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4812 but it should be quite a bit faster. And the recursive version
4816 but it should be quite a bit faster. And the recursive version
4813 generated O(log N) intermediate storage for all rank>1 arrays,
4817 generated O(log N) intermediate storage for all rank>1 arrays,
4814 even if they were contiguous.
4818 even if they were contiguous.
4815 (l1norm): Added this function.
4819 (l1norm): Added this function.
4816 (norm): Added this function for arbitrary norms (including
4820 (norm): Added this function for arbitrary norms (including
4817 l-infinity). l1 and l2 are still special cases for convenience
4821 l-infinity). l1 and l2 are still special cases for convenience
4818 and speed.
4822 and speed.
4819
4823
4820 2003-08-03 Fernando Perez <fperez@colorado.edu>
4824 2003-08-03 Fernando Perez <fperez@colorado.edu>
4821
4825
4822 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4826 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4823 exceptions, which now raise PendingDeprecationWarnings in Python
4827 exceptions, which now raise PendingDeprecationWarnings in Python
4824 2.3. There were some in Magic and some in Gnuplot2.
4828 2.3. There were some in Magic and some in Gnuplot2.
4825
4829
4826 2003-06-30 Fernando Perez <fperez@colorado.edu>
4830 2003-06-30 Fernando Perez <fperez@colorado.edu>
4827
4831
4828 * IPython/genutils.py (page): modified to call curses only for
4832 * IPython/genutils.py (page): modified to call curses only for
4829 terminals where TERM=='xterm'. After problems under many other
4833 terminals where TERM=='xterm'. After problems under many other
4830 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4834 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4831
4835
4832 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4836 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4833 would be triggered when readline was absent. This was just an old
4837 would be triggered when readline was absent. This was just an old
4834 debugging statement I'd forgotten to take out.
4838 debugging statement I'd forgotten to take out.
4835
4839
4836 2003-06-20 Fernando Perez <fperez@colorado.edu>
4840 2003-06-20 Fernando Perez <fperez@colorado.edu>
4837
4841
4838 * IPython/genutils.py (clock): modified to return only user time
4842 * IPython/genutils.py (clock): modified to return only user time
4839 (not counting system time), after a discussion on scipy. While
4843 (not counting system time), after a discussion on scipy. While
4840 system time may be a useful quantity occasionally, it may much
4844 system time may be a useful quantity occasionally, it may much
4841 more easily be skewed by occasional swapping or other similar
4845 more easily be skewed by occasional swapping or other similar
4842 activity.
4846 activity.
4843
4847
4844 2003-06-05 Fernando Perez <fperez@colorado.edu>
4848 2003-06-05 Fernando Perez <fperez@colorado.edu>
4845
4849
4846 * IPython/numutils.py (identity): new function, for building
4850 * IPython/numutils.py (identity): new function, for building
4847 arbitrary rank Kronecker deltas (mostly backwards compatible with
4851 arbitrary rank Kronecker deltas (mostly backwards compatible with
4848 Numeric.identity)
4852 Numeric.identity)
4849
4853
4850 2003-06-03 Fernando Perez <fperez@colorado.edu>
4854 2003-06-03 Fernando Perez <fperez@colorado.edu>
4851
4855
4852 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4856 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4853 arguments passed to magics with spaces, to allow trailing '\' to
4857 arguments passed to magics with spaces, to allow trailing '\' to
4854 work normally (mainly for Windows users).
4858 work normally (mainly for Windows users).
4855
4859
4856 2003-05-29 Fernando Perez <fperez@colorado.edu>
4860 2003-05-29 Fernando Perez <fperez@colorado.edu>
4857
4861
4858 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4862 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4859 instead of pydoc.help. This fixes a bizarre behavior where
4863 instead of pydoc.help. This fixes a bizarre behavior where
4860 printing '%s' % locals() would trigger the help system. Now
4864 printing '%s' % locals() would trigger the help system. Now
4861 ipython behaves like normal python does.
4865 ipython behaves like normal python does.
4862
4866
4863 Note that if one does 'from pydoc import help', the bizarre
4867 Note that if one does 'from pydoc import help', the bizarre
4864 behavior returns, but this will also happen in normal python, so
4868 behavior returns, but this will also happen in normal python, so
4865 it's not an ipython bug anymore (it has to do with how pydoc.help
4869 it's not an ipython bug anymore (it has to do with how pydoc.help
4866 is implemented).
4870 is implemented).
4867
4871
4868 2003-05-22 Fernando Perez <fperez@colorado.edu>
4872 2003-05-22 Fernando Perez <fperez@colorado.edu>
4869
4873
4870 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4874 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4871 return [] instead of None when nothing matches, also match to end
4875 return [] instead of None when nothing matches, also match to end
4872 of line. Patch by Gary Bishop.
4876 of line. Patch by Gary Bishop.
4873
4877
4874 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4878 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4875 protection as before, for files passed on the command line. This
4879 protection as before, for files passed on the command line. This
4876 prevents the CrashHandler from kicking in if user files call into
4880 prevents the CrashHandler from kicking in if user files call into
4877 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4881 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4878 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4882 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4879
4883
4880 2003-05-20 *** Released version 0.4.0
4884 2003-05-20 *** Released version 0.4.0
4881
4885
4882 2003-05-20 Fernando Perez <fperez@colorado.edu>
4886 2003-05-20 Fernando Perez <fperez@colorado.edu>
4883
4887
4884 * setup.py: added support for manpages. It's a bit hackish b/c of
4888 * setup.py: added support for manpages. It's a bit hackish b/c of
4885 a bug in the way the bdist_rpm distutils target handles gzipped
4889 a bug in the way the bdist_rpm distutils target handles gzipped
4886 manpages, but it works. After a patch by Jack.
4890 manpages, but it works. After a patch by Jack.
4887
4891
4888 2003-05-19 Fernando Perez <fperez@colorado.edu>
4892 2003-05-19 Fernando Perez <fperez@colorado.edu>
4889
4893
4890 * IPython/numutils.py: added a mockup of the kinds module, since
4894 * IPython/numutils.py: added a mockup of the kinds module, since
4891 it was recently removed from Numeric. This way, numutils will
4895 it was recently removed from Numeric. This way, numutils will
4892 work for all users even if they are missing kinds.
4896 work for all users even if they are missing kinds.
4893
4897
4894 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4898 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4895 failure, which can occur with SWIG-wrapped extensions. After a
4899 failure, which can occur with SWIG-wrapped extensions. After a
4896 crash report from Prabhu.
4900 crash report from Prabhu.
4897
4901
4898 2003-05-16 Fernando Perez <fperez@colorado.edu>
4902 2003-05-16 Fernando Perez <fperez@colorado.edu>
4899
4903
4900 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4904 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4901 protect ipython from user code which may call directly
4905 protect ipython from user code which may call directly
4902 sys.excepthook (this looks like an ipython crash to the user, even
4906 sys.excepthook (this looks like an ipython crash to the user, even
4903 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4907 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4904 This is especially important to help users of WxWindows, but may
4908 This is especially important to help users of WxWindows, but may
4905 also be useful in other cases.
4909 also be useful in other cases.
4906
4910
4907 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4911 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4908 an optional tb_offset to be specified, and to preserve exception
4912 an optional tb_offset to be specified, and to preserve exception
4909 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4913 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4910
4914
4911 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4915 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4912
4916
4913 2003-05-15 Fernando Perez <fperez@colorado.edu>
4917 2003-05-15 Fernando Perez <fperez@colorado.edu>
4914
4918
4915 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4919 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4916 installing for a new user under Windows.
4920 installing for a new user under Windows.
4917
4921
4918 2003-05-12 Fernando Perez <fperez@colorado.edu>
4922 2003-05-12 Fernando Perez <fperez@colorado.edu>
4919
4923
4920 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4924 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4921 handler for Emacs comint-based lines. Currently it doesn't do
4925 handler for Emacs comint-based lines. Currently it doesn't do
4922 much (but importantly, it doesn't update the history cache). In
4926 much (but importantly, it doesn't update the history cache). In
4923 the future it may be expanded if Alex needs more functionality
4927 the future it may be expanded if Alex needs more functionality
4924 there.
4928 there.
4925
4929
4926 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4930 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4927 info to crash reports.
4931 info to crash reports.
4928
4932
4929 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4933 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4930 just like Python's -c. Also fixed crash with invalid -color
4934 just like Python's -c. Also fixed crash with invalid -color
4931 option value at startup. Thanks to Will French
4935 option value at startup. Thanks to Will French
4932 <wfrench-AT-bestweb.net> for the bug report.
4936 <wfrench-AT-bestweb.net> for the bug report.
4933
4937
4934 2003-05-09 Fernando Perez <fperez@colorado.edu>
4938 2003-05-09 Fernando Perez <fperez@colorado.edu>
4935
4939
4936 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4940 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4937 to EvalDict (it's a mapping, after all) and simplified its code
4941 to EvalDict (it's a mapping, after all) and simplified its code
4938 quite a bit, after a nice discussion on c.l.py where Gustavo
4942 quite a bit, after a nice discussion on c.l.py where Gustavo
4939 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4943 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4940
4944
4941 2003-04-30 Fernando Perez <fperez@colorado.edu>
4945 2003-04-30 Fernando Perez <fperez@colorado.edu>
4942
4946
4943 * IPython/genutils.py (timings_out): modified it to reduce its
4947 * IPython/genutils.py (timings_out): modified it to reduce its
4944 overhead in the common reps==1 case.
4948 overhead in the common reps==1 case.
4945
4949
4946 2003-04-29 Fernando Perez <fperez@colorado.edu>
4950 2003-04-29 Fernando Perez <fperez@colorado.edu>
4947
4951
4948 * IPython/genutils.py (timings_out): Modified to use the resource
4952 * IPython/genutils.py (timings_out): Modified to use the resource
4949 module, which avoids the wraparound problems of time.clock().
4953 module, which avoids the wraparound problems of time.clock().
4950
4954
4951 2003-04-17 *** Released version 0.2.15pre4
4955 2003-04-17 *** Released version 0.2.15pre4
4952
4956
4953 2003-04-17 Fernando Perez <fperez@colorado.edu>
4957 2003-04-17 Fernando Perez <fperez@colorado.edu>
4954
4958
4955 * setup.py (scriptfiles): Split windows-specific stuff over to a
4959 * setup.py (scriptfiles): Split windows-specific stuff over to a
4956 separate file, in an attempt to have a Windows GUI installer.
4960 separate file, in an attempt to have a Windows GUI installer.
4957 That didn't work, but part of the groundwork is done.
4961 That didn't work, but part of the groundwork is done.
4958
4962
4959 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4963 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4960 indent/unindent with 4 spaces. Particularly useful in combination
4964 indent/unindent with 4 spaces. Particularly useful in combination
4961 with the new auto-indent option.
4965 with the new auto-indent option.
4962
4966
4963 2003-04-16 Fernando Perez <fperez@colorado.edu>
4967 2003-04-16 Fernando Perez <fperez@colorado.edu>
4964
4968
4965 * IPython/Magic.py: various replacements of self.rc for
4969 * IPython/Magic.py: various replacements of self.rc for
4966 self.shell.rc. A lot more remains to be done to fully disentangle
4970 self.shell.rc. A lot more remains to be done to fully disentangle
4967 this class from the main Shell class.
4971 this class from the main Shell class.
4968
4972
4969 * IPython/GnuplotRuntime.py: added checks for mouse support so
4973 * IPython/GnuplotRuntime.py: added checks for mouse support so
4970 that we don't try to enable it if the current gnuplot doesn't
4974 that we don't try to enable it if the current gnuplot doesn't
4971 really support it. Also added checks so that we don't try to
4975 really support it. Also added checks so that we don't try to
4972 enable persist under Windows (where Gnuplot doesn't recognize the
4976 enable persist under Windows (where Gnuplot doesn't recognize the
4973 option).
4977 option).
4974
4978
4975 * IPython/iplib.py (InteractiveShell.interact): Added optional
4979 * IPython/iplib.py (InteractiveShell.interact): Added optional
4976 auto-indenting code, after a patch by King C. Shu
4980 auto-indenting code, after a patch by King C. Shu
4977 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4981 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4978 get along well with pasting indented code. If I ever figure out
4982 get along well with pasting indented code. If I ever figure out
4979 how to make that part go well, it will become on by default.
4983 how to make that part go well, it will become on by default.
4980
4984
4981 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4985 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4982 crash ipython if there was an unmatched '%' in the user's prompt
4986 crash ipython if there was an unmatched '%' in the user's prompt
4983 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4987 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4984
4988
4985 * IPython/iplib.py (InteractiveShell.interact): removed the
4989 * IPython/iplib.py (InteractiveShell.interact): removed the
4986 ability to ask the user whether he wants to crash or not at the
4990 ability to ask the user whether he wants to crash or not at the
4987 'last line' exception handler. Calling functions at that point
4991 'last line' exception handler. Calling functions at that point
4988 changes the stack, and the error reports would have incorrect
4992 changes the stack, and the error reports would have incorrect
4989 tracebacks.
4993 tracebacks.
4990
4994
4991 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4995 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4992 pass through a peger a pretty-printed form of any object. After a
4996 pass through a peger a pretty-printed form of any object. After a
4993 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4997 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4994
4998
4995 2003-04-14 Fernando Perez <fperez@colorado.edu>
4999 2003-04-14 Fernando Perez <fperez@colorado.edu>
4996
5000
4997 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5001 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4998 all files in ~ would be modified at first install (instead of
5002 all files in ~ would be modified at first install (instead of
4999 ~/.ipython). This could be potentially disastrous, as the
5003 ~/.ipython). This could be potentially disastrous, as the
5000 modification (make line-endings native) could damage binary files.
5004 modification (make line-endings native) could damage binary files.
5001
5005
5002 2003-04-10 Fernando Perez <fperez@colorado.edu>
5006 2003-04-10 Fernando Perez <fperez@colorado.edu>
5003
5007
5004 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5008 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5005 handle only lines which are invalid python. This now means that
5009 handle only lines which are invalid python. This now means that
5006 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5010 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5007 for the bug report.
5011 for the bug report.
5008
5012
5009 2003-04-01 Fernando Perez <fperez@colorado.edu>
5013 2003-04-01 Fernando Perez <fperez@colorado.edu>
5010
5014
5011 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5015 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5012 where failing to set sys.last_traceback would crash pdb.pm().
5016 where failing to set sys.last_traceback would crash pdb.pm().
5013 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5017 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5014 report.
5018 report.
5015
5019
5016 2003-03-25 Fernando Perez <fperez@colorado.edu>
5020 2003-03-25 Fernando Perez <fperez@colorado.edu>
5017
5021
5018 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5022 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5019 before printing it (it had a lot of spurious blank lines at the
5023 before printing it (it had a lot of spurious blank lines at the
5020 end).
5024 end).
5021
5025
5022 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5026 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5023 output would be sent 21 times! Obviously people don't use this
5027 output would be sent 21 times! Obviously people don't use this
5024 too often, or I would have heard about it.
5028 too often, or I would have heard about it.
5025
5029
5026 2003-03-24 Fernando Perez <fperez@colorado.edu>
5030 2003-03-24 Fernando Perez <fperez@colorado.edu>
5027
5031
5028 * setup.py (scriptfiles): renamed the data_files parameter from
5032 * setup.py (scriptfiles): renamed the data_files parameter from
5029 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5033 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5030 for the patch.
5034 for the patch.
5031
5035
5032 2003-03-20 Fernando Perez <fperez@colorado.edu>
5036 2003-03-20 Fernando Perez <fperez@colorado.edu>
5033
5037
5034 * IPython/genutils.py (error): added error() and fatal()
5038 * IPython/genutils.py (error): added error() and fatal()
5035 functions.
5039 functions.
5036
5040
5037 2003-03-18 *** Released version 0.2.15pre3
5041 2003-03-18 *** Released version 0.2.15pre3
5038
5042
5039 2003-03-18 Fernando Perez <fperez@colorado.edu>
5043 2003-03-18 Fernando Perez <fperez@colorado.edu>
5040
5044
5041 * setupext/install_data_ext.py
5045 * setupext/install_data_ext.py
5042 (install_data_ext.initialize_options): Class contributed by Jack
5046 (install_data_ext.initialize_options): Class contributed by Jack
5043 Moffit for fixing the old distutils hack. He is sending this to
5047 Moffit for fixing the old distutils hack. He is sending this to
5044 the distutils folks so in the future we may not need it as a
5048 the distutils folks so in the future we may not need it as a
5045 private fix.
5049 private fix.
5046
5050
5047 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5051 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5048 changes for Debian packaging. See his patch for full details.
5052 changes for Debian packaging. See his patch for full details.
5049 The old distutils hack of making the ipythonrc* files carry a
5053 The old distutils hack of making the ipythonrc* files carry a
5050 bogus .py extension is gone, at last. Examples were moved to a
5054 bogus .py extension is gone, at last. Examples were moved to a
5051 separate subdir under doc/, and the separate executable scripts
5055 separate subdir under doc/, and the separate executable scripts
5052 now live in their own directory. Overall a great cleanup. The
5056 now live in their own directory. Overall a great cleanup. The
5053 manual was updated to use the new files, and setup.py has been
5057 manual was updated to use the new files, and setup.py has been
5054 fixed for this setup.
5058 fixed for this setup.
5055
5059
5056 * IPython/PyColorize.py (Parser.usage): made non-executable and
5060 * IPython/PyColorize.py (Parser.usage): made non-executable and
5057 created a pycolor wrapper around it to be included as a script.
5061 created a pycolor wrapper around it to be included as a script.
5058
5062
5059 2003-03-12 *** Released version 0.2.15pre2
5063 2003-03-12 *** Released version 0.2.15pre2
5060
5064
5061 2003-03-12 Fernando Perez <fperez@colorado.edu>
5065 2003-03-12 Fernando Perez <fperez@colorado.edu>
5062
5066
5063 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5067 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5064 long-standing problem with garbage characters in some terminals.
5068 long-standing problem with garbage characters in some terminals.
5065 The issue was really that the \001 and \002 escapes must _only_ be
5069 The issue was really that the \001 and \002 escapes must _only_ be
5066 passed to input prompts (which call readline), but _never_ to
5070 passed to input prompts (which call readline), but _never_ to
5067 normal text to be printed on screen. I changed ColorANSI to have
5071 normal text to be printed on screen. I changed ColorANSI to have
5068 two classes: TermColors and InputTermColors, each with the
5072 two classes: TermColors and InputTermColors, each with the
5069 appropriate escapes for input prompts or normal text. The code in
5073 appropriate escapes for input prompts or normal text. The code in
5070 Prompts.py got slightly more complicated, but this very old and
5074 Prompts.py got slightly more complicated, but this very old and
5071 annoying bug is finally fixed.
5075 annoying bug is finally fixed.
5072
5076
5073 All the credit for nailing down the real origin of this problem
5077 All the credit for nailing down the real origin of this problem
5074 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5078 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5075 *Many* thanks to him for spending quite a bit of effort on this.
5079 *Many* thanks to him for spending quite a bit of effort on this.
5076
5080
5077 2003-03-05 *** Released version 0.2.15pre1
5081 2003-03-05 *** Released version 0.2.15pre1
5078
5082
5079 2003-03-03 Fernando Perez <fperez@colorado.edu>
5083 2003-03-03 Fernando Perez <fperez@colorado.edu>
5080
5084
5081 * IPython/FakeModule.py: Moved the former _FakeModule to a
5085 * IPython/FakeModule.py: Moved the former _FakeModule to a
5082 separate file, because it's also needed by Magic (to fix a similar
5086 separate file, because it's also needed by Magic (to fix a similar
5083 pickle-related issue in @run).
5087 pickle-related issue in @run).
5084
5088
5085 2003-03-02 Fernando Perez <fperez@colorado.edu>
5089 2003-03-02 Fernando Perez <fperez@colorado.edu>
5086
5090
5087 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5091 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5088 the autocall option at runtime.
5092 the autocall option at runtime.
5089 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5093 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5090 across Magic.py to start separating Magic from InteractiveShell.
5094 across Magic.py to start separating Magic from InteractiveShell.
5091 (Magic._ofind): Fixed to return proper namespace for dotted
5095 (Magic._ofind): Fixed to return proper namespace for dotted
5092 names. Before, a dotted name would always return 'not currently
5096 names. Before, a dotted name would always return 'not currently
5093 defined', because it would find the 'parent'. s.x would be found,
5097 defined', because it would find the 'parent'. s.x would be found,
5094 but since 'x' isn't defined by itself, it would get confused.
5098 but since 'x' isn't defined by itself, it would get confused.
5095 (Magic.magic_run): Fixed pickling problems reported by Ralf
5099 (Magic.magic_run): Fixed pickling problems reported by Ralf
5096 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5100 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5097 that I'd used when Mike Heeter reported similar issues at the
5101 that I'd used when Mike Heeter reported similar issues at the
5098 top-level, but now for @run. It boils down to injecting the
5102 top-level, but now for @run. It boils down to injecting the
5099 namespace where code is being executed with something that looks
5103 namespace where code is being executed with something that looks
5100 enough like a module to fool pickle.dump(). Since a pickle stores
5104 enough like a module to fool pickle.dump(). Since a pickle stores
5101 a named reference to the importing module, we need this for
5105 a named reference to the importing module, we need this for
5102 pickles to save something sensible.
5106 pickles to save something sensible.
5103
5107
5104 * IPython/ipmaker.py (make_IPython): added an autocall option.
5108 * IPython/ipmaker.py (make_IPython): added an autocall option.
5105
5109
5106 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5110 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5107 the auto-eval code. Now autocalling is an option, and the code is
5111 the auto-eval code. Now autocalling is an option, and the code is
5108 also vastly safer. There is no more eval() involved at all.
5112 also vastly safer. There is no more eval() involved at all.
5109
5113
5110 2003-03-01 Fernando Perez <fperez@colorado.edu>
5114 2003-03-01 Fernando Perez <fperez@colorado.edu>
5111
5115
5112 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5116 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5113 dict with named keys instead of a tuple.
5117 dict with named keys instead of a tuple.
5114
5118
5115 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5119 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5116
5120
5117 * setup.py (make_shortcut): Fixed message about directories
5121 * setup.py (make_shortcut): Fixed message about directories
5118 created during Windows installation (the directories were ok, just
5122 created during Windows installation (the directories were ok, just
5119 the printed message was misleading). Thanks to Chris Liechti
5123 the printed message was misleading). Thanks to Chris Liechti
5120 <cliechti-AT-gmx.net> for the heads up.
5124 <cliechti-AT-gmx.net> for the heads up.
5121
5125
5122 2003-02-21 Fernando Perez <fperez@colorado.edu>
5126 2003-02-21 Fernando Perez <fperez@colorado.edu>
5123
5127
5124 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5128 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5125 of ValueError exception when checking for auto-execution. This
5129 of ValueError exception when checking for auto-execution. This
5126 one is raised by things like Numeric arrays arr.flat when the
5130 one is raised by things like Numeric arrays arr.flat when the
5127 array is non-contiguous.
5131 array is non-contiguous.
5128
5132
5129 2003-01-31 Fernando Perez <fperez@colorado.edu>
5133 2003-01-31 Fernando Perez <fperez@colorado.edu>
5130
5134
5131 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5135 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5132 not return any value at all (even though the command would get
5136 not return any value at all (even though the command would get
5133 executed).
5137 executed).
5134 (xsys): Flush stdout right after printing the command to ensure
5138 (xsys): Flush stdout right after printing the command to ensure
5135 proper ordering of commands and command output in the total
5139 proper ordering of commands and command output in the total
5136 output.
5140 output.
5137 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5141 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5138 system/getoutput as defaults. The old ones are kept for
5142 system/getoutput as defaults. The old ones are kept for
5139 compatibility reasons, so no code which uses this library needs
5143 compatibility reasons, so no code which uses this library needs
5140 changing.
5144 changing.
5141
5145
5142 2003-01-27 *** Released version 0.2.14
5146 2003-01-27 *** Released version 0.2.14
5143
5147
5144 2003-01-25 Fernando Perez <fperez@colorado.edu>
5148 2003-01-25 Fernando Perez <fperez@colorado.edu>
5145
5149
5146 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5150 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5147 functions defined in previous edit sessions could not be re-edited
5151 functions defined in previous edit sessions could not be re-edited
5148 (because the temp files were immediately removed). Now temp files
5152 (because the temp files were immediately removed). Now temp files
5149 are removed only at IPython's exit.
5153 are removed only at IPython's exit.
5150 (Magic.magic_run): Improved @run to perform shell-like expansions
5154 (Magic.magic_run): Improved @run to perform shell-like expansions
5151 on its arguments (~users and $VARS). With this, @run becomes more
5155 on its arguments (~users and $VARS). With this, @run becomes more
5152 like a normal command-line.
5156 like a normal command-line.
5153
5157
5154 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5158 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5155 bugs related to embedding and cleaned up that code. A fairly
5159 bugs related to embedding and cleaned up that code. A fairly
5156 important one was the impossibility to access the global namespace
5160 important one was the impossibility to access the global namespace
5157 through the embedded IPython (only local variables were visible).
5161 through the embedded IPython (only local variables were visible).
5158
5162
5159 2003-01-14 Fernando Perez <fperez@colorado.edu>
5163 2003-01-14 Fernando Perez <fperez@colorado.edu>
5160
5164
5161 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5165 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5162 auto-calling to be a bit more conservative. Now it doesn't get
5166 auto-calling to be a bit more conservative. Now it doesn't get
5163 triggered if any of '!=()<>' are in the rest of the input line, to
5167 triggered if any of '!=()<>' are in the rest of the input line, to
5164 allow comparing callables. Thanks to Alex for the heads up.
5168 allow comparing callables. Thanks to Alex for the heads up.
5165
5169
5166 2003-01-07 Fernando Perez <fperez@colorado.edu>
5170 2003-01-07 Fernando Perez <fperez@colorado.edu>
5167
5171
5168 * IPython/genutils.py (page): fixed estimation of the number of
5172 * IPython/genutils.py (page): fixed estimation of the number of
5169 lines in a string to be paged to simply count newlines. This
5173 lines in a string to be paged to simply count newlines. This
5170 prevents over-guessing due to embedded escape sequences. A better
5174 prevents over-guessing due to embedded escape sequences. A better
5171 long-term solution would involve stripping out the control chars
5175 long-term solution would involve stripping out the control chars
5172 for the count, but it's potentially so expensive I just don't
5176 for the count, but it's potentially so expensive I just don't
5173 think it's worth doing.
5177 think it's worth doing.
5174
5178
5175 2002-12-19 *** Released version 0.2.14pre50
5179 2002-12-19 *** Released version 0.2.14pre50
5176
5180
5177 2002-12-19 Fernando Perez <fperez@colorado.edu>
5181 2002-12-19 Fernando Perez <fperez@colorado.edu>
5178
5182
5179 * tools/release (version): Changed release scripts to inform
5183 * tools/release (version): Changed release scripts to inform
5180 Andrea and build a NEWS file with a list of recent changes.
5184 Andrea and build a NEWS file with a list of recent changes.
5181
5185
5182 * IPython/ColorANSI.py (__all__): changed terminal detection
5186 * IPython/ColorANSI.py (__all__): changed terminal detection
5183 code. Seems to work better for xterms without breaking
5187 code. Seems to work better for xterms without breaking
5184 konsole. Will need more testing to determine if WinXP and Mac OSX
5188 konsole. Will need more testing to determine if WinXP and Mac OSX
5185 also work ok.
5189 also work ok.
5186
5190
5187 2002-12-18 *** Released version 0.2.14pre49
5191 2002-12-18 *** Released version 0.2.14pre49
5188
5192
5189 2002-12-18 Fernando Perez <fperez@colorado.edu>
5193 2002-12-18 Fernando Perez <fperez@colorado.edu>
5190
5194
5191 * Docs: added new info about Mac OSX, from Andrea.
5195 * Docs: added new info about Mac OSX, from Andrea.
5192
5196
5193 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5197 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5194 allow direct plotting of python strings whose format is the same
5198 allow direct plotting of python strings whose format is the same
5195 of gnuplot data files.
5199 of gnuplot data files.
5196
5200
5197 2002-12-16 Fernando Perez <fperez@colorado.edu>
5201 2002-12-16 Fernando Perez <fperez@colorado.edu>
5198
5202
5199 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5203 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5200 value of exit question to be acknowledged.
5204 value of exit question to be acknowledged.
5201
5205
5202 2002-12-03 Fernando Perez <fperez@colorado.edu>
5206 2002-12-03 Fernando Perez <fperez@colorado.edu>
5203
5207
5204 * IPython/ipmaker.py: removed generators, which had been added
5208 * IPython/ipmaker.py: removed generators, which had been added
5205 by mistake in an earlier debugging run. This was causing trouble
5209 by mistake in an earlier debugging run. This was causing trouble
5206 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5210 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5207 for pointing this out.
5211 for pointing this out.
5208
5212
5209 2002-11-17 Fernando Perez <fperez@colorado.edu>
5213 2002-11-17 Fernando Perez <fperez@colorado.edu>
5210
5214
5211 * Manual: updated the Gnuplot section.
5215 * Manual: updated the Gnuplot section.
5212
5216
5213 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5217 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5214 a much better split of what goes in Runtime and what goes in
5218 a much better split of what goes in Runtime and what goes in
5215 Interactive.
5219 Interactive.
5216
5220
5217 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5221 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5218 being imported from iplib.
5222 being imported from iplib.
5219
5223
5220 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5224 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5221 for command-passing. Now the global Gnuplot instance is called
5225 for command-passing. Now the global Gnuplot instance is called
5222 'gp' instead of 'g', which was really a far too fragile and
5226 'gp' instead of 'g', which was really a far too fragile and
5223 common name.
5227 common name.
5224
5228
5225 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5229 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5226 bounding boxes generated by Gnuplot for square plots.
5230 bounding boxes generated by Gnuplot for square plots.
5227
5231
5228 * IPython/genutils.py (popkey): new function added. I should
5232 * IPython/genutils.py (popkey): new function added. I should
5229 suggest this on c.l.py as a dict method, it seems useful.
5233 suggest this on c.l.py as a dict method, it seems useful.
5230
5234
5231 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5235 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5232 to transparently handle PostScript generation. MUCH better than
5236 to transparently handle PostScript generation. MUCH better than
5233 the previous plot_eps/replot_eps (which I removed now). The code
5237 the previous plot_eps/replot_eps (which I removed now). The code
5234 is also fairly clean and well documented now (including
5238 is also fairly clean and well documented now (including
5235 docstrings).
5239 docstrings).
5236
5240
5237 2002-11-13 Fernando Perez <fperez@colorado.edu>
5241 2002-11-13 Fernando Perez <fperez@colorado.edu>
5238
5242
5239 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5243 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5240 (inconsistent with options).
5244 (inconsistent with options).
5241
5245
5242 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5246 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5243 manually disabled, I don't know why. Fixed it.
5247 manually disabled, I don't know why. Fixed it.
5244 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5248 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5245 eps output.
5249 eps output.
5246
5250
5247 2002-11-12 Fernando Perez <fperez@colorado.edu>
5251 2002-11-12 Fernando Perez <fperez@colorado.edu>
5248
5252
5249 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5253 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5250 don't propagate up to caller. Fixes crash reported by François
5254 don't propagate up to caller. Fixes crash reported by François
5251 Pinard.
5255 Pinard.
5252
5256
5253 2002-11-09 Fernando Perez <fperez@colorado.edu>
5257 2002-11-09 Fernando Perez <fperez@colorado.edu>
5254
5258
5255 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5259 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5256 history file for new users.
5260 history file for new users.
5257 (make_IPython): fixed bug where initial install would leave the
5261 (make_IPython): fixed bug where initial install would leave the
5258 user running in the .ipython dir.
5262 user running in the .ipython dir.
5259 (make_IPython): fixed bug where config dir .ipython would be
5263 (make_IPython): fixed bug where config dir .ipython would be
5260 created regardless of the given -ipythondir option. Thanks to Cory
5264 created regardless of the given -ipythondir option. Thanks to Cory
5261 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5265 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5262
5266
5263 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5267 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5264 type confirmations. Will need to use it in all of IPython's code
5268 type confirmations. Will need to use it in all of IPython's code
5265 consistently.
5269 consistently.
5266
5270
5267 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5271 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5268 context to print 31 lines instead of the default 5. This will make
5272 context to print 31 lines instead of the default 5. This will make
5269 the crash reports extremely detailed in case the problem is in
5273 the crash reports extremely detailed in case the problem is in
5270 libraries I don't have access to.
5274 libraries I don't have access to.
5271
5275
5272 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5276 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5273 line of defense' code to still crash, but giving users fair
5277 line of defense' code to still crash, but giving users fair
5274 warning. I don't want internal errors to go unreported: if there's
5278 warning. I don't want internal errors to go unreported: if there's
5275 an internal problem, IPython should crash and generate a full
5279 an internal problem, IPython should crash and generate a full
5276 report.
5280 report.
5277
5281
5278 2002-11-08 Fernando Perez <fperez@colorado.edu>
5282 2002-11-08 Fernando Perez <fperez@colorado.edu>
5279
5283
5280 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5284 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5281 otherwise uncaught exceptions which can appear if people set
5285 otherwise uncaught exceptions which can appear if people set
5282 sys.stdout to something badly broken. Thanks to a crash report
5286 sys.stdout to something badly broken. Thanks to a crash report
5283 from henni-AT-mail.brainbot.com.
5287 from henni-AT-mail.brainbot.com.
5284
5288
5285 2002-11-04 Fernando Perez <fperez@colorado.edu>
5289 2002-11-04 Fernando Perez <fperez@colorado.edu>
5286
5290
5287 * IPython/iplib.py (InteractiveShell.interact): added
5291 * IPython/iplib.py (InteractiveShell.interact): added
5288 __IPYTHON__active to the builtins. It's a flag which goes on when
5292 __IPYTHON__active to the builtins. It's a flag which goes on when
5289 the interaction starts and goes off again when it stops. This
5293 the interaction starts and goes off again when it stops. This
5290 allows embedding code to detect being inside IPython. Before this
5294 allows embedding code to detect being inside IPython. Before this
5291 was done via __IPYTHON__, but that only shows that an IPython
5295 was done via __IPYTHON__, but that only shows that an IPython
5292 instance has been created.
5296 instance has been created.
5293
5297
5294 * IPython/Magic.py (Magic.magic_env): I realized that in a
5298 * IPython/Magic.py (Magic.magic_env): I realized that in a
5295 UserDict, instance.data holds the data as a normal dict. So I
5299 UserDict, instance.data holds the data as a normal dict. So I
5296 modified @env to return os.environ.data instead of rebuilding a
5300 modified @env to return os.environ.data instead of rebuilding a
5297 dict by hand.
5301 dict by hand.
5298
5302
5299 2002-11-02 Fernando Perez <fperez@colorado.edu>
5303 2002-11-02 Fernando Perez <fperez@colorado.edu>
5300
5304
5301 * IPython/genutils.py (warn): changed so that level 1 prints no
5305 * IPython/genutils.py (warn): changed so that level 1 prints no
5302 header. Level 2 is now the default (with 'WARNING' header, as
5306 header. Level 2 is now the default (with 'WARNING' header, as
5303 before). I think I tracked all places where changes were needed in
5307 before). I think I tracked all places where changes were needed in
5304 IPython, but outside code using the old level numbering may have
5308 IPython, but outside code using the old level numbering may have
5305 broken.
5309 broken.
5306
5310
5307 * IPython/iplib.py (InteractiveShell.runcode): added this to
5311 * IPython/iplib.py (InteractiveShell.runcode): added this to
5308 handle the tracebacks in SystemExit traps correctly. The previous
5312 handle the tracebacks in SystemExit traps correctly. The previous
5309 code (through interact) was printing more of the stack than
5313 code (through interact) was printing more of the stack than
5310 necessary, showing IPython internal code to the user.
5314 necessary, showing IPython internal code to the user.
5311
5315
5312 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5316 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5313 default. Now that the default at the confirmation prompt is yes,
5317 default. Now that the default at the confirmation prompt is yes,
5314 it's not so intrusive. François' argument that ipython sessions
5318 it's not so intrusive. François' argument that ipython sessions
5315 tend to be complex enough not to lose them from an accidental C-d,
5319 tend to be complex enough not to lose them from an accidental C-d,
5316 is a valid one.
5320 is a valid one.
5317
5321
5318 * IPython/iplib.py (InteractiveShell.interact): added a
5322 * IPython/iplib.py (InteractiveShell.interact): added a
5319 showtraceback() call to the SystemExit trap, and modified the exit
5323 showtraceback() call to the SystemExit trap, and modified the exit
5320 confirmation to have yes as the default.
5324 confirmation to have yes as the default.
5321
5325
5322 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5326 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5323 this file. It's been gone from the code for a long time, this was
5327 this file. It's been gone from the code for a long time, this was
5324 simply leftover junk.
5328 simply leftover junk.
5325
5329
5326 2002-11-01 Fernando Perez <fperez@colorado.edu>
5330 2002-11-01 Fernando Perez <fperez@colorado.edu>
5327
5331
5328 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5332 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5329 added. If set, IPython now traps EOF and asks for
5333 added. If set, IPython now traps EOF and asks for
5330 confirmation. After a request by François Pinard.
5334 confirmation. After a request by François Pinard.
5331
5335
5332 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5336 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5333 of @abort, and with a new (better) mechanism for handling the
5337 of @abort, and with a new (better) mechanism for handling the
5334 exceptions.
5338 exceptions.
5335
5339
5336 2002-10-27 Fernando Perez <fperez@colorado.edu>
5340 2002-10-27 Fernando Perez <fperez@colorado.edu>
5337
5341
5338 * IPython/usage.py (__doc__): updated the --help information and
5342 * IPython/usage.py (__doc__): updated the --help information and
5339 the ipythonrc file to indicate that -log generates
5343 the ipythonrc file to indicate that -log generates
5340 ./ipython.log. Also fixed the corresponding info in @logstart.
5344 ./ipython.log. Also fixed the corresponding info in @logstart.
5341 This and several other fixes in the manuals thanks to reports by
5345 This and several other fixes in the manuals thanks to reports by
5342 François Pinard <pinard-AT-iro.umontreal.ca>.
5346 François Pinard <pinard-AT-iro.umontreal.ca>.
5343
5347
5344 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5348 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5345 refer to @logstart (instead of @log, which doesn't exist).
5349 refer to @logstart (instead of @log, which doesn't exist).
5346
5350
5347 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5351 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5348 AttributeError crash. Thanks to Christopher Armstrong
5352 AttributeError crash. Thanks to Christopher Armstrong
5349 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5353 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5350 introduced recently (in 0.2.14pre37) with the fix to the eval
5354 introduced recently (in 0.2.14pre37) with the fix to the eval
5351 problem mentioned below.
5355 problem mentioned below.
5352
5356
5353 2002-10-17 Fernando Perez <fperez@colorado.edu>
5357 2002-10-17 Fernando Perez <fperez@colorado.edu>
5354
5358
5355 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5359 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5356 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5360 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5357
5361
5358 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5362 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5359 this function to fix a problem reported by Alex Schmolck. He saw
5363 this function to fix a problem reported by Alex Schmolck. He saw
5360 it with list comprehensions and generators, which were getting
5364 it with list comprehensions and generators, which were getting
5361 called twice. The real problem was an 'eval' call in testing for
5365 called twice. The real problem was an 'eval' call in testing for
5362 automagic which was evaluating the input line silently.
5366 automagic which was evaluating the input line silently.
5363
5367
5364 This is a potentially very nasty bug, if the input has side
5368 This is a potentially very nasty bug, if the input has side
5365 effects which must not be repeated. The code is much cleaner now,
5369 effects which must not be repeated. The code is much cleaner now,
5366 without any blanket 'except' left and with a regexp test for
5370 without any blanket 'except' left and with a regexp test for
5367 actual function names.
5371 actual function names.
5368
5372
5369 But an eval remains, which I'm not fully comfortable with. I just
5373 But an eval remains, which I'm not fully comfortable with. I just
5370 don't know how to find out if an expression could be a callable in
5374 don't know how to find out if an expression could be a callable in
5371 the user's namespace without doing an eval on the string. However
5375 the user's namespace without doing an eval on the string. However
5372 that string is now much more strictly checked so that no code
5376 that string is now much more strictly checked so that no code
5373 slips by, so the eval should only happen for things that can
5377 slips by, so the eval should only happen for things that can
5374 really be only function/method names.
5378 really be only function/method names.
5375
5379
5376 2002-10-15 Fernando Perez <fperez@colorado.edu>
5380 2002-10-15 Fernando Perez <fperez@colorado.edu>
5377
5381
5378 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5382 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5379 OSX information to main manual, removed README_Mac_OSX file from
5383 OSX information to main manual, removed README_Mac_OSX file from
5380 distribution. Also updated credits for recent additions.
5384 distribution. Also updated credits for recent additions.
5381
5385
5382 2002-10-10 Fernando Perez <fperez@colorado.edu>
5386 2002-10-10 Fernando Perez <fperez@colorado.edu>
5383
5387
5384 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5388 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5385 terminal-related issues. Many thanks to Andrea Riciputi
5389 terminal-related issues. Many thanks to Andrea Riciputi
5386 <andrea.riciputi-AT-libero.it> for writing it.
5390 <andrea.riciputi-AT-libero.it> for writing it.
5387
5391
5388 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5392 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5389 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5393 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5390
5394
5391 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5395 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5392 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5396 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5393 <syver-en-AT-online.no> who both submitted patches for this problem.
5397 <syver-en-AT-online.no> who both submitted patches for this problem.
5394
5398
5395 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5399 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5396 global embedding to make sure that things don't overwrite user
5400 global embedding to make sure that things don't overwrite user
5397 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5401 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5398
5402
5399 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5403 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5400 compatibility. Thanks to Hayden Callow
5404 compatibility. Thanks to Hayden Callow
5401 <h.callow-AT-elec.canterbury.ac.nz>
5405 <h.callow-AT-elec.canterbury.ac.nz>
5402
5406
5403 2002-10-04 Fernando Perez <fperez@colorado.edu>
5407 2002-10-04 Fernando Perez <fperez@colorado.edu>
5404
5408
5405 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5409 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5406 Gnuplot.File objects.
5410 Gnuplot.File objects.
5407
5411
5408 2002-07-23 Fernando Perez <fperez@colorado.edu>
5412 2002-07-23 Fernando Perez <fperez@colorado.edu>
5409
5413
5410 * IPython/genutils.py (timing): Added timings() and timing() for
5414 * IPython/genutils.py (timing): Added timings() and timing() for
5411 quick access to the most commonly needed data, the execution
5415 quick access to the most commonly needed data, the execution
5412 times. Old timing() renamed to timings_out().
5416 times. Old timing() renamed to timings_out().
5413
5417
5414 2002-07-18 Fernando Perez <fperez@colorado.edu>
5418 2002-07-18 Fernando Perez <fperez@colorado.edu>
5415
5419
5416 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5420 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5417 bug with nested instances disrupting the parent's tab completion.
5421 bug with nested instances disrupting the parent's tab completion.
5418
5422
5419 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5423 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5420 all_completions code to begin the emacs integration.
5424 all_completions code to begin the emacs integration.
5421
5425
5422 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5426 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5423 argument to allow titling individual arrays when plotting.
5427 argument to allow titling individual arrays when plotting.
5424
5428
5425 2002-07-15 Fernando Perez <fperez@colorado.edu>
5429 2002-07-15 Fernando Perez <fperez@colorado.edu>
5426
5430
5427 * setup.py (make_shortcut): changed to retrieve the value of
5431 * setup.py (make_shortcut): changed to retrieve the value of
5428 'Program Files' directory from the registry (this value changes in
5432 'Program Files' directory from the registry (this value changes in
5429 non-english versions of Windows). Thanks to Thomas Fanslau
5433 non-english versions of Windows). Thanks to Thomas Fanslau
5430 <tfanslau-AT-gmx.de> for the report.
5434 <tfanslau-AT-gmx.de> for the report.
5431
5435
5432 2002-07-10 Fernando Perez <fperez@colorado.edu>
5436 2002-07-10 Fernando Perez <fperez@colorado.edu>
5433
5437
5434 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5438 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5435 a bug in pdb, which crashes if a line with only whitespace is
5439 a bug in pdb, which crashes if a line with only whitespace is
5436 entered. Bug report submitted to sourceforge.
5440 entered. Bug report submitted to sourceforge.
5437
5441
5438 2002-07-09 Fernando Perez <fperez@colorado.edu>
5442 2002-07-09 Fernando Perez <fperez@colorado.edu>
5439
5443
5440 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5444 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5441 reporting exceptions (it's a bug in inspect.py, I just set a
5445 reporting exceptions (it's a bug in inspect.py, I just set a
5442 workaround).
5446 workaround).
5443
5447
5444 2002-07-08 Fernando Perez <fperez@colorado.edu>
5448 2002-07-08 Fernando Perez <fperez@colorado.edu>
5445
5449
5446 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5450 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5447 __IPYTHON__ in __builtins__ to show up in user_ns.
5451 __IPYTHON__ in __builtins__ to show up in user_ns.
5448
5452
5449 2002-07-03 Fernando Perez <fperez@colorado.edu>
5453 2002-07-03 Fernando Perez <fperez@colorado.edu>
5450
5454
5451 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5455 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5452 name from @gp_set_instance to @gp_set_default.
5456 name from @gp_set_instance to @gp_set_default.
5453
5457
5454 * IPython/ipmaker.py (make_IPython): default editor value set to
5458 * IPython/ipmaker.py (make_IPython): default editor value set to
5455 '0' (a string), to match the rc file. Otherwise will crash when
5459 '0' (a string), to match the rc file. Otherwise will crash when
5456 .strip() is called on it.
5460 .strip() is called on it.
5457
5461
5458
5462
5459 2002-06-28 Fernando Perez <fperez@colorado.edu>
5463 2002-06-28 Fernando Perez <fperez@colorado.edu>
5460
5464
5461 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5465 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5462 of files in current directory when a file is executed via
5466 of files in current directory when a file is executed via
5463 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5467 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5464
5468
5465 * setup.py (manfiles): fix for rpm builds, submitted by RA
5469 * setup.py (manfiles): fix for rpm builds, submitted by RA
5466 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5470 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5467
5471
5468 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5472 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5469 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5473 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5470 string!). A. Schmolck caught this one.
5474 string!). A. Schmolck caught this one.
5471
5475
5472 2002-06-27 Fernando Perez <fperez@colorado.edu>
5476 2002-06-27 Fernando Perez <fperez@colorado.edu>
5473
5477
5474 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5478 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5475 defined files at the cmd line. __name__ wasn't being set to
5479 defined files at the cmd line. __name__ wasn't being set to
5476 __main__.
5480 __main__.
5477
5481
5478 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5482 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5479 regular lists and tuples besides Numeric arrays.
5483 regular lists and tuples besides Numeric arrays.
5480
5484
5481 * IPython/Prompts.py (CachedOutput.__call__): Added output
5485 * IPython/Prompts.py (CachedOutput.__call__): Added output
5482 supression for input ending with ';'. Similar to Mathematica and
5486 supression for input ending with ';'. Similar to Mathematica and
5483 Matlab. The _* vars and Out[] list are still updated, just like
5487 Matlab. The _* vars and Out[] list are still updated, just like
5484 Mathematica behaves.
5488 Mathematica behaves.
5485
5489
5486 2002-06-25 Fernando Perez <fperez@colorado.edu>
5490 2002-06-25 Fernando Perez <fperez@colorado.edu>
5487
5491
5488 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5492 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5489 .ini extensions for profiels under Windows.
5493 .ini extensions for profiels under Windows.
5490
5494
5491 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5495 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5492 string form. Fix contributed by Alexander Schmolck
5496 string form. Fix contributed by Alexander Schmolck
5493 <a.schmolck-AT-gmx.net>
5497 <a.schmolck-AT-gmx.net>
5494
5498
5495 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5499 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5496 pre-configured Gnuplot instance.
5500 pre-configured Gnuplot instance.
5497
5501
5498 2002-06-21 Fernando Perez <fperez@colorado.edu>
5502 2002-06-21 Fernando Perez <fperez@colorado.edu>
5499
5503
5500 * IPython/numutils.py (exp_safe): new function, works around the
5504 * IPython/numutils.py (exp_safe): new function, works around the
5501 underflow problems in Numeric.
5505 underflow problems in Numeric.
5502 (log2): New fn. Safe log in base 2: returns exact integer answer
5506 (log2): New fn. Safe log in base 2: returns exact integer answer
5503 for exact integer powers of 2.
5507 for exact integer powers of 2.
5504
5508
5505 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5509 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5506 properly.
5510 properly.
5507
5511
5508 2002-06-20 Fernando Perez <fperez@colorado.edu>
5512 2002-06-20 Fernando Perez <fperez@colorado.edu>
5509
5513
5510 * IPython/genutils.py (timing): new function like
5514 * IPython/genutils.py (timing): new function like
5511 Mathematica's. Similar to time_test, but returns more info.
5515 Mathematica's. Similar to time_test, but returns more info.
5512
5516
5513 2002-06-18 Fernando Perez <fperez@colorado.edu>
5517 2002-06-18 Fernando Perez <fperez@colorado.edu>
5514
5518
5515 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5519 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5516 according to Mike Heeter's suggestions.
5520 according to Mike Heeter's suggestions.
5517
5521
5518 2002-06-16 Fernando Perez <fperez@colorado.edu>
5522 2002-06-16 Fernando Perez <fperez@colorado.edu>
5519
5523
5520 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5524 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5521 system. GnuplotMagic is gone as a user-directory option. New files
5525 system. GnuplotMagic is gone as a user-directory option. New files
5522 make it easier to use all the gnuplot stuff both from external
5526 make it easier to use all the gnuplot stuff both from external
5523 programs as well as from IPython. Had to rewrite part of
5527 programs as well as from IPython. Had to rewrite part of
5524 hardcopy() b/c of a strange bug: often the ps files simply don't
5528 hardcopy() b/c of a strange bug: often the ps files simply don't
5525 get created, and require a repeat of the command (often several
5529 get created, and require a repeat of the command (often several
5526 times).
5530 times).
5527
5531
5528 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5532 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5529 resolve output channel at call time, so that if sys.stderr has
5533 resolve output channel at call time, so that if sys.stderr has
5530 been redirected by user this gets honored.
5534 been redirected by user this gets honored.
5531
5535
5532 2002-06-13 Fernando Perez <fperez@colorado.edu>
5536 2002-06-13 Fernando Perez <fperez@colorado.edu>
5533
5537
5534 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5538 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5535 IPShell. Kept a copy with the old names to avoid breaking people's
5539 IPShell. Kept a copy with the old names to avoid breaking people's
5536 embedded code.
5540 embedded code.
5537
5541
5538 * IPython/ipython: simplified it to the bare minimum after
5542 * IPython/ipython: simplified it to the bare minimum after
5539 Holger's suggestions. Added info about how to use it in
5543 Holger's suggestions. Added info about how to use it in
5540 PYTHONSTARTUP.
5544 PYTHONSTARTUP.
5541
5545
5542 * IPython/Shell.py (IPythonShell): changed the options passing
5546 * IPython/Shell.py (IPythonShell): changed the options passing
5543 from a string with funky %s replacements to a straight list. Maybe
5547 from a string with funky %s replacements to a straight list. Maybe
5544 a bit more typing, but it follows sys.argv conventions, so there's
5548 a bit more typing, but it follows sys.argv conventions, so there's
5545 less special-casing to remember.
5549 less special-casing to remember.
5546
5550
5547 2002-06-12 Fernando Perez <fperez@colorado.edu>
5551 2002-06-12 Fernando Perez <fperez@colorado.edu>
5548
5552
5549 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5553 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5550 command. Thanks to a suggestion by Mike Heeter.
5554 command. Thanks to a suggestion by Mike Heeter.
5551 (Magic.magic_pfile): added behavior to look at filenames if given
5555 (Magic.magic_pfile): added behavior to look at filenames if given
5552 arg is not a defined object.
5556 arg is not a defined object.
5553 (Magic.magic_save): New @save function to save code snippets. Also
5557 (Magic.magic_save): New @save function to save code snippets. Also
5554 a Mike Heeter idea.
5558 a Mike Heeter idea.
5555
5559
5556 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5560 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5557 plot() and replot(). Much more convenient now, especially for
5561 plot() and replot(). Much more convenient now, especially for
5558 interactive use.
5562 interactive use.
5559
5563
5560 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5564 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5561 filenames.
5565 filenames.
5562
5566
5563 2002-06-02 Fernando Perez <fperez@colorado.edu>
5567 2002-06-02 Fernando Perez <fperez@colorado.edu>
5564
5568
5565 * IPython/Struct.py (Struct.__init__): modified to admit
5569 * IPython/Struct.py (Struct.__init__): modified to admit
5566 initialization via another struct.
5570 initialization via another struct.
5567
5571
5568 * IPython/genutils.py (SystemExec.__init__): New stateful
5572 * IPython/genutils.py (SystemExec.__init__): New stateful
5569 interface to xsys and bq. Useful for writing system scripts.
5573 interface to xsys and bq. Useful for writing system scripts.
5570
5574
5571 2002-05-30 Fernando Perez <fperez@colorado.edu>
5575 2002-05-30 Fernando Perez <fperez@colorado.edu>
5572
5576
5573 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5577 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5574 documents. This will make the user download smaller (it's getting
5578 documents. This will make the user download smaller (it's getting
5575 too big).
5579 too big).
5576
5580
5577 2002-05-29 Fernando Perez <fperez@colorado.edu>
5581 2002-05-29 Fernando Perez <fperez@colorado.edu>
5578
5582
5579 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5583 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5580 fix problems with shelve and pickle. Seems to work, but I don't
5584 fix problems with shelve and pickle. Seems to work, but I don't
5581 know if corner cases break it. Thanks to Mike Heeter
5585 know if corner cases break it. Thanks to Mike Heeter
5582 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5586 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5583
5587
5584 2002-05-24 Fernando Perez <fperez@colorado.edu>
5588 2002-05-24 Fernando Perez <fperez@colorado.edu>
5585
5589
5586 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5590 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5587 macros having broken.
5591 macros having broken.
5588
5592
5589 2002-05-21 Fernando Perez <fperez@colorado.edu>
5593 2002-05-21 Fernando Perez <fperez@colorado.edu>
5590
5594
5591 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5595 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5592 introduced logging bug: all history before logging started was
5596 introduced logging bug: all history before logging started was
5593 being written one character per line! This came from the redesign
5597 being written one character per line! This came from the redesign
5594 of the input history as a special list which slices to strings,
5598 of the input history as a special list which slices to strings,
5595 not to lists.
5599 not to lists.
5596
5600
5597 2002-05-20 Fernando Perez <fperez@colorado.edu>
5601 2002-05-20 Fernando Perez <fperez@colorado.edu>
5598
5602
5599 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5603 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5600 be an attribute of all classes in this module. The design of these
5604 be an attribute of all classes in this module. The design of these
5601 classes needs some serious overhauling.
5605 classes needs some serious overhauling.
5602
5606
5603 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5607 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5604 which was ignoring '_' in option names.
5608 which was ignoring '_' in option names.
5605
5609
5606 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5610 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5607 'Verbose_novars' to 'Context' and made it the new default. It's a
5611 'Verbose_novars' to 'Context' and made it the new default. It's a
5608 bit more readable and also safer than verbose.
5612 bit more readable and also safer than verbose.
5609
5613
5610 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5614 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5611 triple-quoted strings.
5615 triple-quoted strings.
5612
5616
5613 * IPython/OInspect.py (__all__): new module exposing the object
5617 * IPython/OInspect.py (__all__): new module exposing the object
5614 introspection facilities. Now the corresponding magics are dummy
5618 introspection facilities. Now the corresponding magics are dummy
5615 wrappers around this. Having this module will make it much easier
5619 wrappers around this. Having this module will make it much easier
5616 to put these functions into our modified pdb.
5620 to put these functions into our modified pdb.
5617 This new object inspector system uses the new colorizing module,
5621 This new object inspector system uses the new colorizing module,
5618 so source code and other things are nicely syntax highlighted.
5622 so source code and other things are nicely syntax highlighted.
5619
5623
5620 2002-05-18 Fernando Perez <fperez@colorado.edu>
5624 2002-05-18 Fernando Perez <fperez@colorado.edu>
5621
5625
5622 * IPython/ColorANSI.py: Split the coloring tools into a separate
5626 * IPython/ColorANSI.py: Split the coloring tools into a separate
5623 module so I can use them in other code easier (they were part of
5627 module so I can use them in other code easier (they were part of
5624 ultraTB).
5628 ultraTB).
5625
5629
5626 2002-05-17 Fernando Perez <fperez@colorado.edu>
5630 2002-05-17 Fernando Perez <fperez@colorado.edu>
5627
5631
5628 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5632 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5629 fixed it to set the global 'g' also to the called instance, as
5633 fixed it to set the global 'g' also to the called instance, as
5630 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5634 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5631 user's 'g' variables).
5635 user's 'g' variables).
5632
5636
5633 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5637 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5634 global variables (aliases to _ih,_oh) so that users which expect
5638 global variables (aliases to _ih,_oh) so that users which expect
5635 In[5] or Out[7] to work aren't unpleasantly surprised.
5639 In[5] or Out[7] to work aren't unpleasantly surprised.
5636 (InputList.__getslice__): new class to allow executing slices of
5640 (InputList.__getslice__): new class to allow executing slices of
5637 input history directly. Very simple class, complements the use of
5641 input history directly. Very simple class, complements the use of
5638 macros.
5642 macros.
5639
5643
5640 2002-05-16 Fernando Perez <fperez@colorado.edu>
5644 2002-05-16 Fernando Perez <fperez@colorado.edu>
5641
5645
5642 * setup.py (docdirbase): make doc directory be just doc/IPython
5646 * setup.py (docdirbase): make doc directory be just doc/IPython
5643 without version numbers, it will reduce clutter for users.
5647 without version numbers, it will reduce clutter for users.
5644
5648
5645 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5649 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5646 execfile call to prevent possible memory leak. See for details:
5650 execfile call to prevent possible memory leak. See for details:
5647 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5651 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5648
5652
5649 2002-05-15 Fernando Perez <fperez@colorado.edu>
5653 2002-05-15 Fernando Perez <fperez@colorado.edu>
5650
5654
5651 * IPython/Magic.py (Magic.magic_psource): made the object
5655 * IPython/Magic.py (Magic.magic_psource): made the object
5652 introspection names be more standard: pdoc, pdef, pfile and
5656 introspection names be more standard: pdoc, pdef, pfile and
5653 psource. They all print/page their output, and it makes
5657 psource. They all print/page their output, and it makes
5654 remembering them easier. Kept old names for compatibility as
5658 remembering them easier. Kept old names for compatibility as
5655 aliases.
5659 aliases.
5656
5660
5657 2002-05-14 Fernando Perez <fperez@colorado.edu>
5661 2002-05-14 Fernando Perez <fperez@colorado.edu>
5658
5662
5659 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5663 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5660 what the mouse problem was. The trick is to use gnuplot with temp
5664 what the mouse problem was. The trick is to use gnuplot with temp
5661 files and NOT with pipes (for data communication), because having
5665 files and NOT with pipes (for data communication), because having
5662 both pipes and the mouse on is bad news.
5666 both pipes and the mouse on is bad news.
5663
5667
5664 2002-05-13 Fernando Perez <fperez@colorado.edu>
5668 2002-05-13 Fernando Perez <fperez@colorado.edu>
5665
5669
5666 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5670 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5667 bug. Information would be reported about builtins even when
5671 bug. Information would be reported about builtins even when
5668 user-defined functions overrode them.
5672 user-defined functions overrode them.
5669
5673
5670 2002-05-11 Fernando Perez <fperez@colorado.edu>
5674 2002-05-11 Fernando Perez <fperez@colorado.edu>
5671
5675
5672 * IPython/__init__.py (__all__): removed FlexCompleter from
5676 * IPython/__init__.py (__all__): removed FlexCompleter from
5673 __all__ so that things don't fail in platforms without readline.
5677 __all__ so that things don't fail in platforms without readline.
5674
5678
5675 2002-05-10 Fernando Perez <fperez@colorado.edu>
5679 2002-05-10 Fernando Perez <fperez@colorado.edu>
5676
5680
5677 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5681 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5678 it requires Numeric, effectively making Numeric a dependency for
5682 it requires Numeric, effectively making Numeric a dependency for
5679 IPython.
5683 IPython.
5680
5684
5681 * Released 0.2.13
5685 * Released 0.2.13
5682
5686
5683 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5687 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5684 profiler interface. Now all the major options from the profiler
5688 profiler interface. Now all the major options from the profiler
5685 module are directly supported in IPython, both for single
5689 module are directly supported in IPython, both for single
5686 expressions (@prun) and for full programs (@run -p).
5690 expressions (@prun) and for full programs (@run -p).
5687
5691
5688 2002-05-09 Fernando Perez <fperez@colorado.edu>
5692 2002-05-09 Fernando Perez <fperez@colorado.edu>
5689
5693
5690 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5694 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5691 magic properly formatted for screen.
5695 magic properly formatted for screen.
5692
5696
5693 * setup.py (make_shortcut): Changed things to put pdf version in
5697 * setup.py (make_shortcut): Changed things to put pdf version in
5694 doc/ instead of doc/manual (had to change lyxport a bit).
5698 doc/ instead of doc/manual (had to change lyxport a bit).
5695
5699
5696 * IPython/Magic.py (Profile.string_stats): made profile runs go
5700 * IPython/Magic.py (Profile.string_stats): made profile runs go
5697 through pager (they are long and a pager allows searching, saving,
5701 through pager (they are long and a pager allows searching, saving,
5698 etc.)
5702 etc.)
5699
5703
5700 2002-05-08 Fernando Perez <fperez@colorado.edu>
5704 2002-05-08 Fernando Perez <fperez@colorado.edu>
5701
5705
5702 * Released 0.2.12
5706 * Released 0.2.12
5703
5707
5704 2002-05-06 Fernando Perez <fperez@colorado.edu>
5708 2002-05-06 Fernando Perez <fperez@colorado.edu>
5705
5709
5706 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5710 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5707 introduced); 'hist n1 n2' was broken.
5711 introduced); 'hist n1 n2' was broken.
5708 (Magic.magic_pdb): added optional on/off arguments to @pdb
5712 (Magic.magic_pdb): added optional on/off arguments to @pdb
5709 (Magic.magic_run): added option -i to @run, which executes code in
5713 (Magic.magic_run): added option -i to @run, which executes code in
5710 the IPython namespace instead of a clean one. Also added @irun as
5714 the IPython namespace instead of a clean one. Also added @irun as
5711 an alias to @run -i.
5715 an alias to @run -i.
5712
5716
5713 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5717 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5714 fixed (it didn't really do anything, the namespaces were wrong).
5718 fixed (it didn't really do anything, the namespaces were wrong).
5715
5719
5716 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5720 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5717
5721
5718 * IPython/__init__.py (__all__): Fixed package namespace, now
5722 * IPython/__init__.py (__all__): Fixed package namespace, now
5719 'import IPython' does give access to IPython.<all> as
5723 'import IPython' does give access to IPython.<all> as
5720 expected. Also renamed __release__ to Release.
5724 expected. Also renamed __release__ to Release.
5721
5725
5722 * IPython/Debugger.py (__license__): created new Pdb class which
5726 * IPython/Debugger.py (__license__): created new Pdb class which
5723 functions like a drop-in for the normal pdb.Pdb but does NOT
5727 functions like a drop-in for the normal pdb.Pdb but does NOT
5724 import readline by default. This way it doesn't muck up IPython's
5728 import readline by default. This way it doesn't muck up IPython's
5725 readline handling, and now tab-completion finally works in the
5729 readline handling, and now tab-completion finally works in the
5726 debugger -- sort of. It completes things globally visible, but the
5730 debugger -- sort of. It completes things globally visible, but the
5727 completer doesn't track the stack as pdb walks it. That's a bit
5731 completer doesn't track the stack as pdb walks it. That's a bit
5728 tricky, and I'll have to implement it later.
5732 tricky, and I'll have to implement it later.
5729
5733
5730 2002-05-05 Fernando Perez <fperez@colorado.edu>
5734 2002-05-05 Fernando Perez <fperez@colorado.edu>
5731
5735
5732 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5736 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5733 magic docstrings when printed via ? (explicit \'s were being
5737 magic docstrings when printed via ? (explicit \'s were being
5734 printed).
5738 printed).
5735
5739
5736 * IPython/ipmaker.py (make_IPython): fixed namespace
5740 * IPython/ipmaker.py (make_IPython): fixed namespace
5737 identification bug. Now variables loaded via logs or command-line
5741 identification bug. Now variables loaded via logs or command-line
5738 files are recognized in the interactive namespace by @who.
5742 files are recognized in the interactive namespace by @who.
5739
5743
5740 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5744 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5741 log replay system stemming from the string form of Structs.
5745 log replay system stemming from the string form of Structs.
5742
5746
5743 * IPython/Magic.py (Macro.__init__): improved macros to properly
5747 * IPython/Magic.py (Macro.__init__): improved macros to properly
5744 handle magic commands in them.
5748 handle magic commands in them.
5745 (Magic.magic_logstart): usernames are now expanded so 'logstart
5749 (Magic.magic_logstart): usernames are now expanded so 'logstart
5746 ~/mylog' now works.
5750 ~/mylog' now works.
5747
5751
5748 * IPython/iplib.py (complete): fixed bug where paths starting with
5752 * IPython/iplib.py (complete): fixed bug where paths starting with
5749 '/' would be completed as magic names.
5753 '/' would be completed as magic names.
5750
5754
5751 2002-05-04 Fernando Perez <fperez@colorado.edu>
5755 2002-05-04 Fernando Perez <fperez@colorado.edu>
5752
5756
5753 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5757 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5754 allow running full programs under the profiler's control.
5758 allow running full programs under the profiler's control.
5755
5759
5756 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5760 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5757 mode to report exceptions verbosely but without formatting
5761 mode to report exceptions verbosely but without formatting
5758 variables. This addresses the issue of ipython 'freezing' (it's
5762 variables. This addresses the issue of ipython 'freezing' (it's
5759 not frozen, but caught in an expensive formatting loop) when huge
5763 not frozen, but caught in an expensive formatting loop) when huge
5760 variables are in the context of an exception.
5764 variables are in the context of an exception.
5761 (VerboseTB.text): Added '--->' markers at line where exception was
5765 (VerboseTB.text): Added '--->' markers at line where exception was
5762 triggered. Much clearer to read, especially in NoColor modes.
5766 triggered. Much clearer to read, especially in NoColor modes.
5763
5767
5764 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5768 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5765 implemented in reverse when changing to the new parse_options().
5769 implemented in reverse when changing to the new parse_options().
5766
5770
5767 2002-05-03 Fernando Perez <fperez@colorado.edu>
5771 2002-05-03 Fernando Perez <fperez@colorado.edu>
5768
5772
5769 * IPython/Magic.py (Magic.parse_options): new function so that
5773 * IPython/Magic.py (Magic.parse_options): new function so that
5770 magics can parse options easier.
5774 magics can parse options easier.
5771 (Magic.magic_prun): new function similar to profile.run(),
5775 (Magic.magic_prun): new function similar to profile.run(),
5772 suggested by Chris Hart.
5776 suggested by Chris Hart.
5773 (Magic.magic_cd): fixed behavior so that it only changes if
5777 (Magic.magic_cd): fixed behavior so that it only changes if
5774 directory actually is in history.
5778 directory actually is in history.
5775
5779
5776 * IPython/usage.py (__doc__): added information about potential
5780 * IPython/usage.py (__doc__): added information about potential
5777 slowness of Verbose exception mode when there are huge data
5781 slowness of Verbose exception mode when there are huge data
5778 structures to be formatted (thanks to Archie Paulson).
5782 structures to be formatted (thanks to Archie Paulson).
5779
5783
5780 * IPython/ipmaker.py (make_IPython): Changed default logging
5784 * IPython/ipmaker.py (make_IPython): Changed default logging
5781 (when simply called with -log) to use curr_dir/ipython.log in
5785 (when simply called with -log) to use curr_dir/ipython.log in
5782 rotate mode. Fixed crash which was occuring with -log before
5786 rotate mode. Fixed crash which was occuring with -log before
5783 (thanks to Jim Boyle).
5787 (thanks to Jim Boyle).
5784
5788
5785 2002-05-01 Fernando Perez <fperez@colorado.edu>
5789 2002-05-01 Fernando Perez <fperez@colorado.edu>
5786
5790
5787 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5791 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5788 was nasty -- though somewhat of a corner case).
5792 was nasty -- though somewhat of a corner case).
5789
5793
5790 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5794 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5791 text (was a bug).
5795 text (was a bug).
5792
5796
5793 2002-04-30 Fernando Perez <fperez@colorado.edu>
5797 2002-04-30 Fernando Perez <fperez@colorado.edu>
5794
5798
5795 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5799 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5796 a print after ^D or ^C from the user so that the In[] prompt
5800 a print after ^D or ^C from the user so that the In[] prompt
5797 doesn't over-run the gnuplot one.
5801 doesn't over-run the gnuplot one.
5798
5802
5799 2002-04-29 Fernando Perez <fperez@colorado.edu>
5803 2002-04-29 Fernando Perez <fperez@colorado.edu>
5800
5804
5801 * Released 0.2.10
5805 * Released 0.2.10
5802
5806
5803 * IPython/__release__.py (version): get date dynamically.
5807 * IPython/__release__.py (version): get date dynamically.
5804
5808
5805 * Misc. documentation updates thanks to Arnd's comments. Also ran
5809 * Misc. documentation updates thanks to Arnd's comments. Also ran
5806 a full spellcheck on the manual (hadn't been done in a while).
5810 a full spellcheck on the manual (hadn't been done in a while).
5807
5811
5808 2002-04-27 Fernando Perez <fperez@colorado.edu>
5812 2002-04-27 Fernando Perez <fperez@colorado.edu>
5809
5813
5810 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5814 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5811 starting a log in mid-session would reset the input history list.
5815 starting a log in mid-session would reset the input history list.
5812
5816
5813 2002-04-26 Fernando Perez <fperez@colorado.edu>
5817 2002-04-26 Fernando Perez <fperez@colorado.edu>
5814
5818
5815 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5819 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5816 all files were being included in an update. Now anything in
5820 all files were being included in an update. Now anything in
5817 UserConfig that matches [A-Za-z]*.py will go (this excludes
5821 UserConfig that matches [A-Za-z]*.py will go (this excludes
5818 __init__.py)
5822 __init__.py)
5819
5823
5820 2002-04-25 Fernando Perez <fperez@colorado.edu>
5824 2002-04-25 Fernando Perez <fperez@colorado.edu>
5821
5825
5822 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5826 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5823 to __builtins__ so that any form of embedded or imported code can
5827 to __builtins__ so that any form of embedded or imported code can
5824 test for being inside IPython.
5828 test for being inside IPython.
5825
5829
5826 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5830 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5827 changed to GnuplotMagic because it's now an importable module,
5831 changed to GnuplotMagic because it's now an importable module,
5828 this makes the name follow that of the standard Gnuplot module.
5832 this makes the name follow that of the standard Gnuplot module.
5829 GnuplotMagic can now be loaded at any time in mid-session.
5833 GnuplotMagic can now be loaded at any time in mid-session.
5830
5834
5831 2002-04-24 Fernando Perez <fperez@colorado.edu>
5835 2002-04-24 Fernando Perez <fperez@colorado.edu>
5832
5836
5833 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5837 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5834 the globals (IPython has its own namespace) and the
5838 the globals (IPython has its own namespace) and the
5835 PhysicalQuantity stuff is much better anyway.
5839 PhysicalQuantity stuff is much better anyway.
5836
5840
5837 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5841 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5838 embedding example to standard user directory for
5842 embedding example to standard user directory for
5839 distribution. Also put it in the manual.
5843 distribution. Also put it in the manual.
5840
5844
5841 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5845 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5842 instance as first argument (so it doesn't rely on some obscure
5846 instance as first argument (so it doesn't rely on some obscure
5843 hidden global).
5847 hidden global).
5844
5848
5845 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5849 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5846 delimiters. While it prevents ().TAB from working, it allows
5850 delimiters. While it prevents ().TAB from working, it allows
5847 completions in open (... expressions. This is by far a more common
5851 completions in open (... expressions. This is by far a more common
5848 case.
5852 case.
5849
5853
5850 2002-04-23 Fernando Perez <fperez@colorado.edu>
5854 2002-04-23 Fernando Perez <fperez@colorado.edu>
5851
5855
5852 * IPython/Extensions/InterpreterPasteInput.py: new
5856 * IPython/Extensions/InterpreterPasteInput.py: new
5853 syntax-processing module for pasting lines with >>> or ... at the
5857 syntax-processing module for pasting lines with >>> or ... at the
5854 start.
5858 start.
5855
5859
5856 * IPython/Extensions/PhysicalQ_Interactive.py
5860 * IPython/Extensions/PhysicalQ_Interactive.py
5857 (PhysicalQuantityInteractive.__int__): fixed to work with either
5861 (PhysicalQuantityInteractive.__int__): fixed to work with either
5858 Numeric or math.
5862 Numeric or math.
5859
5863
5860 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5864 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5861 provided profiles. Now we have:
5865 provided profiles. Now we have:
5862 -math -> math module as * and cmath with its own namespace.
5866 -math -> math module as * and cmath with its own namespace.
5863 -numeric -> Numeric as *, plus gnuplot & grace
5867 -numeric -> Numeric as *, plus gnuplot & grace
5864 -physics -> same as before
5868 -physics -> same as before
5865
5869
5866 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5870 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5867 user-defined magics wouldn't be found by @magic if they were
5871 user-defined magics wouldn't be found by @magic if they were
5868 defined as class methods. Also cleaned up the namespace search
5872 defined as class methods. Also cleaned up the namespace search
5869 logic and the string building (to use %s instead of many repeated
5873 logic and the string building (to use %s instead of many repeated
5870 string adds).
5874 string adds).
5871
5875
5872 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5876 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5873 of user-defined magics to operate with class methods (cleaner, in
5877 of user-defined magics to operate with class methods (cleaner, in
5874 line with the gnuplot code).
5878 line with the gnuplot code).
5875
5879
5876 2002-04-22 Fernando Perez <fperez@colorado.edu>
5880 2002-04-22 Fernando Perez <fperez@colorado.edu>
5877
5881
5878 * setup.py: updated dependency list so that manual is updated when
5882 * setup.py: updated dependency list so that manual is updated when
5879 all included files change.
5883 all included files change.
5880
5884
5881 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5885 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5882 the delimiter removal option (the fix is ugly right now).
5886 the delimiter removal option (the fix is ugly right now).
5883
5887
5884 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5888 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5885 all of the math profile (quicker loading, no conflict between
5889 all of the math profile (quicker loading, no conflict between
5886 g-9.8 and g-gnuplot).
5890 g-9.8 and g-gnuplot).
5887
5891
5888 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5892 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5889 name of post-mortem files to IPython_crash_report.txt.
5893 name of post-mortem files to IPython_crash_report.txt.
5890
5894
5891 * Cleanup/update of the docs. Added all the new readline info and
5895 * Cleanup/update of the docs. Added all the new readline info and
5892 formatted all lists as 'real lists'.
5896 formatted all lists as 'real lists'.
5893
5897
5894 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5898 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5895 tab-completion options, since the full readline parse_and_bind is
5899 tab-completion options, since the full readline parse_and_bind is
5896 now accessible.
5900 now accessible.
5897
5901
5898 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5902 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5899 handling of readline options. Now users can specify any string to
5903 handling of readline options. Now users can specify any string to
5900 be passed to parse_and_bind(), as well as the delimiters to be
5904 be passed to parse_and_bind(), as well as the delimiters to be
5901 removed.
5905 removed.
5902 (InteractiveShell.__init__): Added __name__ to the global
5906 (InteractiveShell.__init__): Added __name__ to the global
5903 namespace so that things like Itpl which rely on its existence
5907 namespace so that things like Itpl which rely on its existence
5904 don't crash.
5908 don't crash.
5905 (InteractiveShell._prefilter): Defined the default with a _ so
5909 (InteractiveShell._prefilter): Defined the default with a _ so
5906 that prefilter() is easier to override, while the default one
5910 that prefilter() is easier to override, while the default one
5907 remains available.
5911 remains available.
5908
5912
5909 2002-04-18 Fernando Perez <fperez@colorado.edu>
5913 2002-04-18 Fernando Perez <fperez@colorado.edu>
5910
5914
5911 * Added information about pdb in the docs.
5915 * Added information about pdb in the docs.
5912
5916
5913 2002-04-17 Fernando Perez <fperez@colorado.edu>
5917 2002-04-17 Fernando Perez <fperez@colorado.edu>
5914
5918
5915 * IPython/ipmaker.py (make_IPython): added rc_override option to
5919 * IPython/ipmaker.py (make_IPython): added rc_override option to
5916 allow passing config options at creation time which may override
5920 allow passing config options at creation time which may override
5917 anything set in the config files or command line. This is
5921 anything set in the config files or command line. This is
5918 particularly useful for configuring embedded instances.
5922 particularly useful for configuring embedded instances.
5919
5923
5920 2002-04-15 Fernando Perez <fperez@colorado.edu>
5924 2002-04-15 Fernando Perez <fperez@colorado.edu>
5921
5925
5922 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5926 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5923 crash embedded instances because of the input cache falling out of
5927 crash embedded instances because of the input cache falling out of
5924 sync with the output counter.
5928 sync with the output counter.
5925
5929
5926 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5930 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5927 mode which calls pdb after an uncaught exception in IPython itself.
5931 mode which calls pdb after an uncaught exception in IPython itself.
5928
5932
5929 2002-04-14 Fernando Perez <fperez@colorado.edu>
5933 2002-04-14 Fernando Perez <fperez@colorado.edu>
5930
5934
5931 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5935 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5932 readline, fix it back after each call.
5936 readline, fix it back after each call.
5933
5937
5934 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5938 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5935 method to force all access via __call__(), which guarantees that
5939 method to force all access via __call__(), which guarantees that
5936 traceback references are properly deleted.
5940 traceback references are properly deleted.
5937
5941
5938 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5942 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5939 improve printing when pprint is in use.
5943 improve printing when pprint is in use.
5940
5944
5941 2002-04-13 Fernando Perez <fperez@colorado.edu>
5945 2002-04-13 Fernando Perez <fperez@colorado.edu>
5942
5946
5943 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5947 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5944 exceptions aren't caught anymore. If the user triggers one, he
5948 exceptions aren't caught anymore. If the user triggers one, he
5945 should know why he's doing it and it should go all the way up,
5949 should know why he's doing it and it should go all the way up,
5946 just like any other exception. So now @abort will fully kill the
5950 just like any other exception. So now @abort will fully kill the
5947 embedded interpreter and the embedding code (unless that happens
5951 embedded interpreter and the embedding code (unless that happens
5948 to catch SystemExit).
5952 to catch SystemExit).
5949
5953
5950 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5954 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5951 and a debugger() method to invoke the interactive pdb debugger
5955 and a debugger() method to invoke the interactive pdb debugger
5952 after printing exception information. Also added the corresponding
5956 after printing exception information. Also added the corresponding
5953 -pdb option and @pdb magic to control this feature, and updated
5957 -pdb option and @pdb magic to control this feature, and updated
5954 the docs. After a suggestion from Christopher Hart
5958 the docs. After a suggestion from Christopher Hart
5955 (hart-AT-caltech.edu).
5959 (hart-AT-caltech.edu).
5956
5960
5957 2002-04-12 Fernando Perez <fperez@colorado.edu>
5961 2002-04-12 Fernando Perez <fperez@colorado.edu>
5958
5962
5959 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5963 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5960 the exception handlers defined by the user (not the CrashHandler)
5964 the exception handlers defined by the user (not the CrashHandler)
5961 so that user exceptions don't trigger an ipython bug report.
5965 so that user exceptions don't trigger an ipython bug report.
5962
5966
5963 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5967 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5964 configurable (it should have always been so).
5968 configurable (it should have always been so).
5965
5969
5966 2002-03-26 Fernando Perez <fperez@colorado.edu>
5970 2002-03-26 Fernando Perez <fperez@colorado.edu>
5967
5971
5968 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5972 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5969 and there to fix embedding namespace issues. This should all be
5973 and there to fix embedding namespace issues. This should all be
5970 done in a more elegant way.
5974 done in a more elegant way.
5971
5975
5972 2002-03-25 Fernando Perez <fperez@colorado.edu>
5976 2002-03-25 Fernando Perez <fperez@colorado.edu>
5973
5977
5974 * IPython/genutils.py (get_home_dir): Try to make it work under
5978 * IPython/genutils.py (get_home_dir): Try to make it work under
5975 win9x also.
5979 win9x also.
5976
5980
5977 2002-03-20 Fernando Perez <fperez@colorado.edu>
5981 2002-03-20 Fernando Perez <fperez@colorado.edu>
5978
5982
5979 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5983 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5980 sys.displayhook untouched upon __init__.
5984 sys.displayhook untouched upon __init__.
5981
5985
5982 2002-03-19 Fernando Perez <fperez@colorado.edu>
5986 2002-03-19 Fernando Perez <fperez@colorado.edu>
5983
5987
5984 * Released 0.2.9 (for embedding bug, basically).
5988 * Released 0.2.9 (for embedding bug, basically).
5985
5989
5986 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5990 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5987 exceptions so that enclosing shell's state can be restored.
5991 exceptions so that enclosing shell's state can be restored.
5988
5992
5989 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5993 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5990 naming conventions in the .ipython/ dir.
5994 naming conventions in the .ipython/ dir.
5991
5995
5992 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5996 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5993 from delimiters list so filenames with - in them get expanded.
5997 from delimiters list so filenames with - in them get expanded.
5994
5998
5995 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5999 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5996 sys.displayhook not being properly restored after an embedded call.
6000 sys.displayhook not being properly restored after an embedded call.
5997
6001
5998 2002-03-18 Fernando Perez <fperez@colorado.edu>
6002 2002-03-18 Fernando Perez <fperez@colorado.edu>
5999
6003
6000 * Released 0.2.8
6004 * Released 0.2.8
6001
6005
6002 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6006 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6003 some files weren't being included in a -upgrade.
6007 some files weren't being included in a -upgrade.
6004 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6008 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6005 on' so that the first tab completes.
6009 on' so that the first tab completes.
6006 (InteractiveShell.handle_magic): fixed bug with spaces around
6010 (InteractiveShell.handle_magic): fixed bug with spaces around
6007 quotes breaking many magic commands.
6011 quotes breaking many magic commands.
6008
6012
6009 * setup.py: added note about ignoring the syntax error messages at
6013 * setup.py: added note about ignoring the syntax error messages at
6010 installation.
6014 installation.
6011
6015
6012 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6016 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6013 streamlining the gnuplot interface, now there's only one magic @gp.
6017 streamlining the gnuplot interface, now there's only one magic @gp.
6014
6018
6015 2002-03-17 Fernando Perez <fperez@colorado.edu>
6019 2002-03-17 Fernando Perez <fperez@colorado.edu>
6016
6020
6017 * IPython/UserConfig/magic_gnuplot.py: new name for the
6021 * IPython/UserConfig/magic_gnuplot.py: new name for the
6018 example-magic_pm.py file. Much enhanced system, now with a shell
6022 example-magic_pm.py file. Much enhanced system, now with a shell
6019 for communicating directly with gnuplot, one command at a time.
6023 for communicating directly with gnuplot, one command at a time.
6020
6024
6021 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6025 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6022 setting __name__=='__main__'.
6026 setting __name__=='__main__'.
6023
6027
6024 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6028 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6025 mini-shell for accessing gnuplot from inside ipython. Should
6029 mini-shell for accessing gnuplot from inside ipython. Should
6026 extend it later for grace access too. Inspired by Arnd's
6030 extend it later for grace access too. Inspired by Arnd's
6027 suggestion.
6031 suggestion.
6028
6032
6029 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6033 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6030 calling magic functions with () in their arguments. Thanks to Arnd
6034 calling magic functions with () in their arguments. Thanks to Arnd
6031 Baecker for pointing this to me.
6035 Baecker for pointing this to me.
6032
6036
6033 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6037 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6034 infinitely for integer or complex arrays (only worked with floats).
6038 infinitely for integer or complex arrays (only worked with floats).
6035
6039
6036 2002-03-16 Fernando Perez <fperez@colorado.edu>
6040 2002-03-16 Fernando Perez <fperez@colorado.edu>
6037
6041
6038 * setup.py: Merged setup and setup_windows into a single script
6042 * setup.py: Merged setup and setup_windows into a single script
6039 which properly handles things for windows users.
6043 which properly handles things for windows users.
6040
6044
6041 2002-03-15 Fernando Perez <fperez@colorado.edu>
6045 2002-03-15 Fernando Perez <fperez@colorado.edu>
6042
6046
6043 * Big change to the manual: now the magics are all automatically
6047 * Big change to the manual: now the magics are all automatically
6044 documented. This information is generated from their docstrings
6048 documented. This information is generated from their docstrings
6045 and put in a latex file included by the manual lyx file. This way
6049 and put in a latex file included by the manual lyx file. This way
6046 we get always up to date information for the magics. The manual
6050 we get always up to date information for the magics. The manual
6047 now also has proper version information, also auto-synced.
6051 now also has proper version information, also auto-synced.
6048
6052
6049 For this to work, an undocumented --magic_docstrings option was added.
6053 For this to work, an undocumented --magic_docstrings option was added.
6050
6054
6051 2002-03-13 Fernando Perez <fperez@colorado.edu>
6055 2002-03-13 Fernando Perez <fperez@colorado.edu>
6052
6056
6053 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6057 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6054 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6058 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6055
6059
6056 2002-03-12 Fernando Perez <fperez@colorado.edu>
6060 2002-03-12 Fernando Perez <fperez@colorado.edu>
6057
6061
6058 * IPython/ultraTB.py (TermColors): changed color escapes again to
6062 * IPython/ultraTB.py (TermColors): changed color escapes again to
6059 fix the (old, reintroduced) line-wrapping bug. Basically, if
6063 fix the (old, reintroduced) line-wrapping bug. Basically, if
6060 \001..\002 aren't given in the color escapes, lines get wrapped
6064 \001..\002 aren't given in the color escapes, lines get wrapped
6061 weirdly. But giving those screws up old xterms and emacs terms. So
6065 weirdly. But giving those screws up old xterms and emacs terms. So
6062 I added some logic for emacs terms to be ok, but I can't identify old
6066 I added some logic for emacs terms to be ok, but I can't identify old
6063 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6067 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6064
6068
6065 2002-03-10 Fernando Perez <fperez@colorado.edu>
6069 2002-03-10 Fernando Perez <fperez@colorado.edu>
6066
6070
6067 * IPython/usage.py (__doc__): Various documentation cleanups and
6071 * IPython/usage.py (__doc__): Various documentation cleanups and
6068 updates, both in usage docstrings and in the manual.
6072 updates, both in usage docstrings and in the manual.
6069
6073
6070 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6074 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6071 handling of caching. Set minimum acceptabe value for having a
6075 handling of caching. Set minimum acceptabe value for having a
6072 cache at 20 values.
6076 cache at 20 values.
6073
6077
6074 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6078 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6075 install_first_time function to a method, renamed it and added an
6079 install_first_time function to a method, renamed it and added an
6076 'upgrade' mode. Now people can update their config directory with
6080 'upgrade' mode. Now people can update their config directory with
6077 a simple command line switch (-upgrade, also new).
6081 a simple command line switch (-upgrade, also new).
6078
6082
6079 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6083 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6080 @file (convenient for automagic users under Python >= 2.2).
6084 @file (convenient for automagic users under Python >= 2.2).
6081 Removed @files (it seemed more like a plural than an abbrev. of
6085 Removed @files (it seemed more like a plural than an abbrev. of
6082 'file show').
6086 'file show').
6083
6087
6084 * IPython/iplib.py (install_first_time): Fixed crash if there were
6088 * IPython/iplib.py (install_first_time): Fixed crash if there were
6085 backup files ('~') in .ipython/ install directory.
6089 backup files ('~') in .ipython/ install directory.
6086
6090
6087 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6091 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6088 system. Things look fine, but these changes are fairly
6092 system. Things look fine, but these changes are fairly
6089 intrusive. Test them for a few days.
6093 intrusive. Test them for a few days.
6090
6094
6091 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6095 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6092 the prompts system. Now all in/out prompt strings are user
6096 the prompts system. Now all in/out prompt strings are user
6093 controllable. This is particularly useful for embedding, as one
6097 controllable. This is particularly useful for embedding, as one
6094 can tag embedded instances with particular prompts.
6098 can tag embedded instances with particular prompts.
6095
6099
6096 Also removed global use of sys.ps1/2, which now allows nested
6100 Also removed global use of sys.ps1/2, which now allows nested
6097 embeddings without any problems. Added command-line options for
6101 embeddings without any problems. Added command-line options for
6098 the prompt strings.
6102 the prompt strings.
6099
6103
6100 2002-03-08 Fernando Perez <fperez@colorado.edu>
6104 2002-03-08 Fernando Perez <fperez@colorado.edu>
6101
6105
6102 * IPython/UserConfig/example-embed-short.py (ipshell): added
6106 * IPython/UserConfig/example-embed-short.py (ipshell): added
6103 example file with the bare minimum code for embedding.
6107 example file with the bare minimum code for embedding.
6104
6108
6105 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6109 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6106 functionality for the embeddable shell to be activated/deactivated
6110 functionality for the embeddable shell to be activated/deactivated
6107 either globally or at each call.
6111 either globally or at each call.
6108
6112
6109 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6113 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6110 rewriting the prompt with '--->' for auto-inputs with proper
6114 rewriting the prompt with '--->' for auto-inputs with proper
6111 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6115 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6112 this is handled by the prompts class itself, as it should.
6116 this is handled by the prompts class itself, as it should.
6113
6117
6114 2002-03-05 Fernando Perez <fperez@colorado.edu>
6118 2002-03-05 Fernando Perez <fperez@colorado.edu>
6115
6119
6116 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6120 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6117 @logstart to avoid name clashes with the math log function.
6121 @logstart to avoid name clashes with the math log function.
6118
6122
6119 * Big updates to X/Emacs section of the manual.
6123 * Big updates to X/Emacs section of the manual.
6120
6124
6121 * Removed ipython_emacs. Milan explained to me how to pass
6125 * Removed ipython_emacs. Milan explained to me how to pass
6122 arguments to ipython through Emacs. Some day I'm going to end up
6126 arguments to ipython through Emacs. Some day I'm going to end up
6123 learning some lisp...
6127 learning some lisp...
6124
6128
6125 2002-03-04 Fernando Perez <fperez@colorado.edu>
6129 2002-03-04 Fernando Perez <fperez@colorado.edu>
6126
6130
6127 * IPython/ipython_emacs: Created script to be used as the
6131 * IPython/ipython_emacs: Created script to be used as the
6128 py-python-command Emacs variable so we can pass IPython
6132 py-python-command Emacs variable so we can pass IPython
6129 parameters. I can't figure out how to tell Emacs directly to pass
6133 parameters. I can't figure out how to tell Emacs directly to pass
6130 parameters to IPython, so a dummy shell script will do it.
6134 parameters to IPython, so a dummy shell script will do it.
6131
6135
6132 Other enhancements made for things to work better under Emacs'
6136 Other enhancements made for things to work better under Emacs'
6133 various types of terminals. Many thanks to Milan Zamazal
6137 various types of terminals. Many thanks to Milan Zamazal
6134 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6138 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6135
6139
6136 2002-03-01 Fernando Perez <fperez@colorado.edu>
6140 2002-03-01 Fernando Perez <fperez@colorado.edu>
6137
6141
6138 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6142 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6139 that loading of readline is now optional. This gives better
6143 that loading of readline is now optional. This gives better
6140 control to emacs users.
6144 control to emacs users.
6141
6145
6142 * IPython/ultraTB.py (__date__): Modified color escape sequences
6146 * IPython/ultraTB.py (__date__): Modified color escape sequences
6143 and now things work fine under xterm and in Emacs' term buffers
6147 and now things work fine under xterm and in Emacs' term buffers
6144 (though not shell ones). Well, in emacs you get colors, but all
6148 (though not shell ones). Well, in emacs you get colors, but all
6145 seem to be 'light' colors (no difference between dark and light
6149 seem to be 'light' colors (no difference between dark and light
6146 ones). But the garbage chars are gone, and also in xterms. It
6150 ones). But the garbage chars are gone, and also in xterms. It
6147 seems that now I'm using 'cleaner' ansi sequences.
6151 seems that now I'm using 'cleaner' ansi sequences.
6148
6152
6149 2002-02-21 Fernando Perez <fperez@colorado.edu>
6153 2002-02-21 Fernando Perez <fperez@colorado.edu>
6150
6154
6151 * Released 0.2.7 (mainly to publish the scoping fix).
6155 * Released 0.2.7 (mainly to publish the scoping fix).
6152
6156
6153 * IPython/Logger.py (Logger.logstate): added. A corresponding
6157 * IPython/Logger.py (Logger.logstate): added. A corresponding
6154 @logstate magic was created.
6158 @logstate magic was created.
6155
6159
6156 * IPython/Magic.py: fixed nested scoping problem under Python
6160 * IPython/Magic.py: fixed nested scoping problem under Python
6157 2.1.x (automagic wasn't working).
6161 2.1.x (automagic wasn't working).
6158
6162
6159 2002-02-20 Fernando Perez <fperez@colorado.edu>
6163 2002-02-20 Fernando Perez <fperez@colorado.edu>
6160
6164
6161 * Released 0.2.6.
6165 * Released 0.2.6.
6162
6166
6163 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6167 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6164 option so that logs can come out without any headers at all.
6168 option so that logs can come out without any headers at all.
6165
6169
6166 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6170 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6167 SciPy.
6171 SciPy.
6168
6172
6169 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6173 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6170 that embedded IPython calls don't require vars() to be explicitly
6174 that embedded IPython calls don't require vars() to be explicitly
6171 passed. Now they are extracted from the caller's frame (code
6175 passed. Now they are extracted from the caller's frame (code
6172 snatched from Eric Jones' weave). Added better documentation to
6176 snatched from Eric Jones' weave). Added better documentation to
6173 the section on embedding and the example file.
6177 the section on embedding and the example file.
6174
6178
6175 * IPython/genutils.py (page): Changed so that under emacs, it just
6179 * IPython/genutils.py (page): Changed so that under emacs, it just
6176 prints the string. You can then page up and down in the emacs
6180 prints the string. You can then page up and down in the emacs
6177 buffer itself. This is how the builtin help() works.
6181 buffer itself. This is how the builtin help() works.
6178
6182
6179 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6183 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6180 macro scoping: macros need to be executed in the user's namespace
6184 macro scoping: macros need to be executed in the user's namespace
6181 to work as if they had been typed by the user.
6185 to work as if they had been typed by the user.
6182
6186
6183 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6187 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6184 execute automatically (no need to type 'exec...'). They then
6188 execute automatically (no need to type 'exec...'). They then
6185 behave like 'true macros'. The printing system was also modified
6189 behave like 'true macros'. The printing system was also modified
6186 for this to work.
6190 for this to work.
6187
6191
6188 2002-02-19 Fernando Perez <fperez@colorado.edu>
6192 2002-02-19 Fernando Perez <fperez@colorado.edu>
6189
6193
6190 * IPython/genutils.py (page_file): new function for paging files
6194 * IPython/genutils.py (page_file): new function for paging files
6191 in an OS-independent way. Also necessary for file viewing to work
6195 in an OS-independent way. Also necessary for file viewing to work
6192 well inside Emacs buffers.
6196 well inside Emacs buffers.
6193 (page): Added checks for being in an emacs buffer.
6197 (page): Added checks for being in an emacs buffer.
6194 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6198 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6195 same bug in iplib.
6199 same bug in iplib.
6196
6200
6197 2002-02-18 Fernando Perez <fperez@colorado.edu>
6201 2002-02-18 Fernando Perez <fperez@colorado.edu>
6198
6202
6199 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6203 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6200 of readline so that IPython can work inside an Emacs buffer.
6204 of readline so that IPython can work inside an Emacs buffer.
6201
6205
6202 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6206 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6203 method signatures (they weren't really bugs, but it looks cleaner
6207 method signatures (they weren't really bugs, but it looks cleaner
6204 and keeps PyChecker happy).
6208 and keeps PyChecker happy).
6205
6209
6206 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6210 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6207 for implementing various user-defined hooks. Currently only
6211 for implementing various user-defined hooks. Currently only
6208 display is done.
6212 display is done.
6209
6213
6210 * IPython/Prompts.py (CachedOutput._display): changed display
6214 * IPython/Prompts.py (CachedOutput._display): changed display
6211 functions so that they can be dynamically changed by users easily.
6215 functions so that they can be dynamically changed by users easily.
6212
6216
6213 * IPython/Extensions/numeric_formats.py (num_display): added an
6217 * IPython/Extensions/numeric_formats.py (num_display): added an
6214 extension for printing NumPy arrays in flexible manners. It
6218 extension for printing NumPy arrays in flexible manners. It
6215 doesn't do anything yet, but all the structure is in
6219 doesn't do anything yet, but all the structure is in
6216 place. Ultimately the plan is to implement output format control
6220 place. Ultimately the plan is to implement output format control
6217 like in Octave.
6221 like in Octave.
6218
6222
6219 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6223 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6220 methods are found at run-time by all the automatic machinery.
6224 methods are found at run-time by all the automatic machinery.
6221
6225
6222 2002-02-17 Fernando Perez <fperez@colorado.edu>
6226 2002-02-17 Fernando Perez <fperez@colorado.edu>
6223
6227
6224 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6228 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6225 whole file a little.
6229 whole file a little.
6226
6230
6227 * ToDo: closed this document. Now there's a new_design.lyx
6231 * ToDo: closed this document. Now there's a new_design.lyx
6228 document for all new ideas. Added making a pdf of it for the
6232 document for all new ideas. Added making a pdf of it for the
6229 end-user distro.
6233 end-user distro.
6230
6234
6231 * IPython/Logger.py (Logger.switch_log): Created this to replace
6235 * IPython/Logger.py (Logger.switch_log): Created this to replace
6232 logon() and logoff(). It also fixes a nasty crash reported by
6236 logon() and logoff(). It also fixes a nasty crash reported by
6233 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6237 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6234
6238
6235 * IPython/iplib.py (complete): got auto-completion to work with
6239 * IPython/iplib.py (complete): got auto-completion to work with
6236 automagic (I had wanted this for a long time).
6240 automagic (I had wanted this for a long time).
6237
6241
6238 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6242 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6239 to @file, since file() is now a builtin and clashes with automagic
6243 to @file, since file() is now a builtin and clashes with automagic
6240 for @file.
6244 for @file.
6241
6245
6242 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6246 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6243 of this was previously in iplib, which had grown to more than 2000
6247 of this was previously in iplib, which had grown to more than 2000
6244 lines, way too long. No new functionality, but it makes managing
6248 lines, way too long. No new functionality, but it makes managing
6245 the code a bit easier.
6249 the code a bit easier.
6246
6250
6247 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6251 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6248 information to crash reports.
6252 information to crash reports.
6249
6253
6250 2002-02-12 Fernando Perez <fperez@colorado.edu>
6254 2002-02-12 Fernando Perez <fperez@colorado.edu>
6251
6255
6252 * Released 0.2.5.
6256 * Released 0.2.5.
6253
6257
6254 2002-02-11 Fernando Perez <fperez@colorado.edu>
6258 2002-02-11 Fernando Perez <fperez@colorado.edu>
6255
6259
6256 * Wrote a relatively complete Windows installer. It puts
6260 * Wrote a relatively complete Windows installer. It puts
6257 everything in place, creates Start Menu entries and fixes the
6261 everything in place, creates Start Menu entries and fixes the
6258 color issues. Nothing fancy, but it works.
6262 color issues. Nothing fancy, but it works.
6259
6263
6260 2002-02-10 Fernando Perez <fperez@colorado.edu>
6264 2002-02-10 Fernando Perez <fperez@colorado.edu>
6261
6265
6262 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6266 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6263 os.path.expanduser() call so that we can type @run ~/myfile.py and
6267 os.path.expanduser() call so that we can type @run ~/myfile.py and
6264 have thigs work as expected.
6268 have thigs work as expected.
6265
6269
6266 * IPython/genutils.py (page): fixed exception handling so things
6270 * IPython/genutils.py (page): fixed exception handling so things
6267 work both in Unix and Windows correctly. Quitting a pager triggers
6271 work both in Unix and Windows correctly. Quitting a pager triggers
6268 an IOError/broken pipe in Unix, and in windows not finding a pager
6272 an IOError/broken pipe in Unix, and in windows not finding a pager
6269 is also an IOError, so I had to actually look at the return value
6273 is also an IOError, so I had to actually look at the return value
6270 of the exception, not just the exception itself. Should be ok now.
6274 of the exception, not just the exception itself. Should be ok now.
6271
6275
6272 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6276 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6273 modified to allow case-insensitive color scheme changes.
6277 modified to allow case-insensitive color scheme changes.
6274
6278
6275 2002-02-09 Fernando Perez <fperez@colorado.edu>
6279 2002-02-09 Fernando Perez <fperez@colorado.edu>
6276
6280
6277 * IPython/genutils.py (native_line_ends): new function to leave
6281 * IPython/genutils.py (native_line_ends): new function to leave
6278 user config files with os-native line-endings.
6282 user config files with os-native line-endings.
6279
6283
6280 * README and manual updates.
6284 * README and manual updates.
6281
6285
6282 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6286 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6283 instead of StringType to catch Unicode strings.
6287 instead of StringType to catch Unicode strings.
6284
6288
6285 * IPython/genutils.py (filefind): fixed bug for paths with
6289 * IPython/genutils.py (filefind): fixed bug for paths with
6286 embedded spaces (very common in Windows).
6290 embedded spaces (very common in Windows).
6287
6291
6288 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6292 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6289 files under Windows, so that they get automatically associated
6293 files under Windows, so that they get automatically associated
6290 with a text editor. Windows makes it a pain to handle
6294 with a text editor. Windows makes it a pain to handle
6291 extension-less files.
6295 extension-less files.
6292
6296
6293 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6297 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6294 warning about readline only occur for Posix. In Windows there's no
6298 warning about readline only occur for Posix. In Windows there's no
6295 way to get readline, so why bother with the warning.
6299 way to get readline, so why bother with the warning.
6296
6300
6297 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6301 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6298 for __str__ instead of dir(self), since dir() changed in 2.2.
6302 for __str__ instead of dir(self), since dir() changed in 2.2.
6299
6303
6300 * Ported to Windows! Tested on XP, I suspect it should work fine
6304 * Ported to Windows! Tested on XP, I suspect it should work fine
6301 on NT/2000, but I don't think it will work on 98 et al. That
6305 on NT/2000, but I don't think it will work on 98 et al. That
6302 series of Windows is such a piece of junk anyway that I won't try
6306 series of Windows is such a piece of junk anyway that I won't try
6303 porting it there. The XP port was straightforward, showed a few
6307 porting it there. The XP port was straightforward, showed a few
6304 bugs here and there (fixed all), in particular some string
6308 bugs here and there (fixed all), in particular some string
6305 handling stuff which required considering Unicode strings (which
6309 handling stuff which required considering Unicode strings (which
6306 Windows uses). This is good, but hasn't been too tested :) No
6310 Windows uses). This is good, but hasn't been too tested :) No
6307 fancy installer yet, I'll put a note in the manual so people at
6311 fancy installer yet, I'll put a note in the manual so people at
6308 least make manually a shortcut.
6312 least make manually a shortcut.
6309
6313
6310 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6314 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6311 into a single one, "colors". This now controls both prompt and
6315 into a single one, "colors". This now controls both prompt and
6312 exception color schemes, and can be changed both at startup
6316 exception color schemes, and can be changed both at startup
6313 (either via command-line switches or via ipythonrc files) and at
6317 (either via command-line switches or via ipythonrc files) and at
6314 runtime, with @colors.
6318 runtime, with @colors.
6315 (Magic.magic_run): renamed @prun to @run and removed the old
6319 (Magic.magic_run): renamed @prun to @run and removed the old
6316 @run. The two were too similar to warrant keeping both.
6320 @run. The two were too similar to warrant keeping both.
6317
6321
6318 2002-02-03 Fernando Perez <fperez@colorado.edu>
6322 2002-02-03 Fernando Perez <fperez@colorado.edu>
6319
6323
6320 * IPython/iplib.py (install_first_time): Added comment on how to
6324 * IPython/iplib.py (install_first_time): Added comment on how to
6321 configure the color options for first-time users. Put a <return>
6325 configure the color options for first-time users. Put a <return>
6322 request at the end so that small-terminal users get a chance to
6326 request at the end so that small-terminal users get a chance to
6323 read the startup info.
6327 read the startup info.
6324
6328
6325 2002-01-23 Fernando Perez <fperez@colorado.edu>
6329 2002-01-23 Fernando Perez <fperez@colorado.edu>
6326
6330
6327 * IPython/iplib.py (CachedOutput.update): Changed output memory
6331 * IPython/iplib.py (CachedOutput.update): Changed output memory
6328 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6332 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6329 input history we still use _i. Did this b/c these variable are
6333 input history we still use _i. Did this b/c these variable are
6330 very commonly used in interactive work, so the less we need to
6334 very commonly used in interactive work, so the less we need to
6331 type the better off we are.
6335 type the better off we are.
6332 (Magic.magic_prun): updated @prun to better handle the namespaces
6336 (Magic.magic_prun): updated @prun to better handle the namespaces
6333 the file will run in, including a fix for __name__ not being set
6337 the file will run in, including a fix for __name__ not being set
6334 before.
6338 before.
6335
6339
6336 2002-01-20 Fernando Perez <fperez@colorado.edu>
6340 2002-01-20 Fernando Perez <fperez@colorado.edu>
6337
6341
6338 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6342 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6339 extra garbage for Python 2.2. Need to look more carefully into
6343 extra garbage for Python 2.2. Need to look more carefully into
6340 this later.
6344 this later.
6341
6345
6342 2002-01-19 Fernando Perez <fperez@colorado.edu>
6346 2002-01-19 Fernando Perez <fperez@colorado.edu>
6343
6347
6344 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6348 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6345 display SyntaxError exceptions properly formatted when they occur
6349 display SyntaxError exceptions properly formatted when they occur
6346 (they can be triggered by imported code).
6350 (they can be triggered by imported code).
6347
6351
6348 2002-01-18 Fernando Perez <fperez@colorado.edu>
6352 2002-01-18 Fernando Perez <fperez@colorado.edu>
6349
6353
6350 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6354 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6351 SyntaxError exceptions are reported nicely formatted, instead of
6355 SyntaxError exceptions are reported nicely formatted, instead of
6352 spitting out only offset information as before.
6356 spitting out only offset information as before.
6353 (Magic.magic_prun): Added the @prun function for executing
6357 (Magic.magic_prun): Added the @prun function for executing
6354 programs with command line args inside IPython.
6358 programs with command line args inside IPython.
6355
6359
6356 2002-01-16 Fernando Perez <fperez@colorado.edu>
6360 2002-01-16 Fernando Perez <fperez@colorado.edu>
6357
6361
6358 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6362 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6359 to *not* include the last item given in a range. This brings their
6363 to *not* include the last item given in a range. This brings their
6360 behavior in line with Python's slicing:
6364 behavior in line with Python's slicing:
6361 a[n1:n2] -> a[n1]...a[n2-1]
6365 a[n1:n2] -> a[n1]...a[n2-1]
6362 It may be a bit less convenient, but I prefer to stick to Python's
6366 It may be a bit less convenient, but I prefer to stick to Python's
6363 conventions *everywhere*, so users never have to wonder.
6367 conventions *everywhere*, so users never have to wonder.
6364 (Magic.magic_macro): Added @macro function to ease the creation of
6368 (Magic.magic_macro): Added @macro function to ease the creation of
6365 macros.
6369 macros.
6366
6370
6367 2002-01-05 Fernando Perez <fperez@colorado.edu>
6371 2002-01-05 Fernando Perez <fperez@colorado.edu>
6368
6372
6369 * Released 0.2.4.
6373 * Released 0.2.4.
6370
6374
6371 * IPython/iplib.py (Magic.magic_pdef):
6375 * IPython/iplib.py (Magic.magic_pdef):
6372 (InteractiveShell.safe_execfile): report magic lines and error
6376 (InteractiveShell.safe_execfile): report magic lines and error
6373 lines without line numbers so one can easily copy/paste them for
6377 lines without line numbers so one can easily copy/paste them for
6374 re-execution.
6378 re-execution.
6375
6379
6376 * Updated manual with recent changes.
6380 * Updated manual with recent changes.
6377
6381
6378 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6382 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6379 docstring printing when class? is called. Very handy for knowing
6383 docstring printing when class? is called. Very handy for knowing
6380 how to create class instances (as long as __init__ is well
6384 how to create class instances (as long as __init__ is well
6381 documented, of course :)
6385 documented, of course :)
6382 (Magic.magic_doc): print both class and constructor docstrings.
6386 (Magic.magic_doc): print both class and constructor docstrings.
6383 (Magic.magic_pdef): give constructor info if passed a class and
6387 (Magic.magic_pdef): give constructor info if passed a class and
6384 __call__ info for callable object instances.
6388 __call__ info for callable object instances.
6385
6389
6386 2002-01-04 Fernando Perez <fperez@colorado.edu>
6390 2002-01-04 Fernando Perez <fperez@colorado.edu>
6387
6391
6388 * Made deep_reload() off by default. It doesn't always work
6392 * Made deep_reload() off by default. It doesn't always work
6389 exactly as intended, so it's probably safer to have it off. It's
6393 exactly as intended, so it's probably safer to have it off. It's
6390 still available as dreload() anyway, so nothing is lost.
6394 still available as dreload() anyway, so nothing is lost.
6391
6395
6392 2002-01-02 Fernando Perez <fperez@colorado.edu>
6396 2002-01-02 Fernando Perez <fperez@colorado.edu>
6393
6397
6394 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6398 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6395 so I wanted an updated release).
6399 so I wanted an updated release).
6396
6400
6397 2001-12-27 Fernando Perez <fperez@colorado.edu>
6401 2001-12-27 Fernando Perez <fperez@colorado.edu>
6398
6402
6399 * IPython/iplib.py (InteractiveShell.interact): Added the original
6403 * IPython/iplib.py (InteractiveShell.interact): Added the original
6400 code from 'code.py' for this module in order to change the
6404 code from 'code.py' for this module in order to change the
6401 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6405 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6402 the history cache would break when the user hit Ctrl-C, and
6406 the history cache would break when the user hit Ctrl-C, and
6403 interact() offers no way to add any hooks to it.
6407 interact() offers no way to add any hooks to it.
6404
6408
6405 2001-12-23 Fernando Perez <fperez@colorado.edu>
6409 2001-12-23 Fernando Perez <fperez@colorado.edu>
6406
6410
6407 * setup.py: added check for 'MANIFEST' before trying to remove
6411 * setup.py: added check for 'MANIFEST' before trying to remove
6408 it. Thanks to Sean Reifschneider.
6412 it. Thanks to Sean Reifschneider.
6409
6413
6410 2001-12-22 Fernando Perez <fperez@colorado.edu>
6414 2001-12-22 Fernando Perez <fperez@colorado.edu>
6411
6415
6412 * Released 0.2.2.
6416 * Released 0.2.2.
6413
6417
6414 * Finished (reasonably) writing the manual. Later will add the
6418 * Finished (reasonably) writing the manual. Later will add the
6415 python-standard navigation stylesheets, but for the time being
6419 python-standard navigation stylesheets, but for the time being
6416 it's fairly complete. Distribution will include html and pdf
6420 it's fairly complete. Distribution will include html and pdf
6417 versions.
6421 versions.
6418
6422
6419 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6423 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6420 (MayaVi author).
6424 (MayaVi author).
6421
6425
6422 2001-12-21 Fernando Perez <fperez@colorado.edu>
6426 2001-12-21 Fernando Perez <fperez@colorado.edu>
6423
6427
6424 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6428 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6425 good public release, I think (with the manual and the distutils
6429 good public release, I think (with the manual and the distutils
6426 installer). The manual can use some work, but that can go
6430 installer). The manual can use some work, but that can go
6427 slowly. Otherwise I think it's quite nice for end users. Next
6431 slowly. Otherwise I think it's quite nice for end users. Next
6428 summer, rewrite the guts of it...
6432 summer, rewrite the guts of it...
6429
6433
6430 * Changed format of ipythonrc files to use whitespace as the
6434 * Changed format of ipythonrc files to use whitespace as the
6431 separator instead of an explicit '='. Cleaner.
6435 separator instead of an explicit '='. Cleaner.
6432
6436
6433 2001-12-20 Fernando Perez <fperez@colorado.edu>
6437 2001-12-20 Fernando Perez <fperez@colorado.edu>
6434
6438
6435 * Started a manual in LyX. For now it's just a quick merge of the
6439 * Started a manual in LyX. For now it's just a quick merge of the
6436 various internal docstrings and READMEs. Later it may grow into a
6440 various internal docstrings and READMEs. Later it may grow into a
6437 nice, full-blown manual.
6441 nice, full-blown manual.
6438
6442
6439 * Set up a distutils based installer. Installation should now be
6443 * Set up a distutils based installer. Installation should now be
6440 trivially simple for end-users.
6444 trivially simple for end-users.
6441
6445
6442 2001-12-11 Fernando Perez <fperez@colorado.edu>
6446 2001-12-11 Fernando Perez <fperez@colorado.edu>
6443
6447
6444 * Released 0.2.0. First public release, announced it at
6448 * Released 0.2.0. First public release, announced it at
6445 comp.lang.python. From now on, just bugfixes...
6449 comp.lang.python. From now on, just bugfixes...
6446
6450
6447 * Went through all the files, set copyright/license notices and
6451 * Went through all the files, set copyright/license notices and
6448 cleaned up things. Ready for release.
6452 cleaned up things. Ready for release.
6449
6453
6450 2001-12-10 Fernando Perez <fperez@colorado.edu>
6454 2001-12-10 Fernando Perez <fperez@colorado.edu>
6451
6455
6452 * Changed the first-time installer not to use tarfiles. It's more
6456 * Changed the first-time installer not to use tarfiles. It's more
6453 robust now and less unix-dependent. Also makes it easier for
6457 robust now and less unix-dependent. Also makes it easier for
6454 people to later upgrade versions.
6458 people to later upgrade versions.
6455
6459
6456 * Changed @exit to @abort to reflect the fact that it's pretty
6460 * Changed @exit to @abort to reflect the fact that it's pretty
6457 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6461 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6458 becomes significant only when IPyhton is embedded: in that case,
6462 becomes significant only when IPyhton is embedded: in that case,
6459 C-D closes IPython only, but @abort kills the enclosing program
6463 C-D closes IPython only, but @abort kills the enclosing program
6460 too (unless it had called IPython inside a try catching
6464 too (unless it had called IPython inside a try catching
6461 SystemExit).
6465 SystemExit).
6462
6466
6463 * Created Shell module which exposes the actuall IPython Shell
6467 * Created Shell module which exposes the actuall IPython Shell
6464 classes, currently the normal and the embeddable one. This at
6468 classes, currently the normal and the embeddable one. This at
6465 least offers a stable interface we won't need to change when
6469 least offers a stable interface we won't need to change when
6466 (later) the internals are rewritten. That rewrite will be confined
6470 (later) the internals are rewritten. That rewrite will be confined
6467 to iplib and ipmaker, but the Shell interface should remain as is.
6471 to iplib and ipmaker, but the Shell interface should remain as is.
6468
6472
6469 * Added embed module which offers an embeddable IPShell object,
6473 * Added embed module which offers an embeddable IPShell object,
6470 useful to fire up IPython *inside* a running program. Great for
6474 useful to fire up IPython *inside* a running program. Great for
6471 debugging or dynamical data analysis.
6475 debugging or dynamical data analysis.
6472
6476
6473 2001-12-08 Fernando Perez <fperez@colorado.edu>
6477 2001-12-08 Fernando Perez <fperez@colorado.edu>
6474
6478
6475 * Fixed small bug preventing seeing info from methods of defined
6479 * Fixed small bug preventing seeing info from methods of defined
6476 objects (incorrect namespace in _ofind()).
6480 objects (incorrect namespace in _ofind()).
6477
6481
6478 * Documentation cleanup. Moved the main usage docstrings to a
6482 * Documentation cleanup. Moved the main usage docstrings to a
6479 separate file, usage.py (cleaner to maintain, and hopefully in the
6483 separate file, usage.py (cleaner to maintain, and hopefully in the
6480 future some perlpod-like way of producing interactive, man and
6484 future some perlpod-like way of producing interactive, man and
6481 html docs out of it will be found).
6485 html docs out of it will be found).
6482
6486
6483 * Added @profile to see your profile at any time.
6487 * Added @profile to see your profile at any time.
6484
6488
6485 * Added @p as an alias for 'print'. It's especially convenient if
6489 * Added @p as an alias for 'print'. It's especially convenient if
6486 using automagic ('p x' prints x).
6490 using automagic ('p x' prints x).
6487
6491
6488 * Small cleanups and fixes after a pychecker run.
6492 * Small cleanups and fixes after a pychecker run.
6489
6493
6490 * Changed the @cd command to handle @cd - and @cd -<n> for
6494 * Changed the @cd command to handle @cd - and @cd -<n> for
6491 visiting any directory in _dh.
6495 visiting any directory in _dh.
6492
6496
6493 * Introduced _dh, a history of visited directories. @dhist prints
6497 * Introduced _dh, a history of visited directories. @dhist prints
6494 it out with numbers.
6498 it out with numbers.
6495
6499
6496 2001-12-07 Fernando Perez <fperez@colorado.edu>
6500 2001-12-07 Fernando Perez <fperez@colorado.edu>
6497
6501
6498 * Released 0.1.22
6502 * Released 0.1.22
6499
6503
6500 * Made initialization a bit more robust against invalid color
6504 * Made initialization a bit more robust against invalid color
6501 options in user input (exit, not traceback-crash).
6505 options in user input (exit, not traceback-crash).
6502
6506
6503 * Changed the bug crash reporter to write the report only in the
6507 * Changed the bug crash reporter to write the report only in the
6504 user's .ipython directory. That way IPython won't litter people's
6508 user's .ipython directory. That way IPython won't litter people's
6505 hard disks with crash files all over the place. Also print on
6509 hard disks with crash files all over the place. Also print on
6506 screen the necessary mail command.
6510 screen the necessary mail command.
6507
6511
6508 * With the new ultraTB, implemented LightBG color scheme for light
6512 * With the new ultraTB, implemented LightBG color scheme for light
6509 background terminals. A lot of people like white backgrounds, so I
6513 background terminals. A lot of people like white backgrounds, so I
6510 guess we should at least give them something readable.
6514 guess we should at least give them something readable.
6511
6515
6512 2001-12-06 Fernando Perez <fperez@colorado.edu>
6516 2001-12-06 Fernando Perez <fperez@colorado.edu>
6513
6517
6514 * Modified the structure of ultraTB. Now there's a proper class
6518 * Modified the structure of ultraTB. Now there's a proper class
6515 for tables of color schemes which allow adding schemes easily and
6519 for tables of color schemes which allow adding schemes easily and
6516 switching the active scheme without creating a new instance every
6520 switching the active scheme without creating a new instance every
6517 time (which was ridiculous). The syntax for creating new schemes
6521 time (which was ridiculous). The syntax for creating new schemes
6518 is also cleaner. I think ultraTB is finally done, with a clean
6522 is also cleaner. I think ultraTB is finally done, with a clean
6519 class structure. Names are also much cleaner (now there's proper
6523 class structure. Names are also much cleaner (now there's proper
6520 color tables, no need for every variable to also have 'color' in
6524 color tables, no need for every variable to also have 'color' in
6521 its name).
6525 its name).
6522
6526
6523 * Broke down genutils into separate files. Now genutils only
6527 * Broke down genutils into separate files. Now genutils only
6524 contains utility functions, and classes have been moved to their
6528 contains utility functions, and classes have been moved to their
6525 own files (they had enough independent functionality to warrant
6529 own files (they had enough independent functionality to warrant
6526 it): ConfigLoader, OutputTrap, Struct.
6530 it): ConfigLoader, OutputTrap, Struct.
6527
6531
6528 2001-12-05 Fernando Perez <fperez@colorado.edu>
6532 2001-12-05 Fernando Perez <fperez@colorado.edu>
6529
6533
6530 * IPython turns 21! Released version 0.1.21, as a candidate for
6534 * IPython turns 21! Released version 0.1.21, as a candidate for
6531 public consumption. If all goes well, release in a few days.
6535 public consumption. If all goes well, release in a few days.
6532
6536
6533 * Fixed path bug (files in Extensions/ directory wouldn't be found
6537 * Fixed path bug (files in Extensions/ directory wouldn't be found
6534 unless IPython/ was explicitly in sys.path).
6538 unless IPython/ was explicitly in sys.path).
6535
6539
6536 * Extended the FlexCompleter class as MagicCompleter to allow
6540 * Extended the FlexCompleter class as MagicCompleter to allow
6537 completion of @-starting lines.
6541 completion of @-starting lines.
6538
6542
6539 * Created __release__.py file as a central repository for release
6543 * Created __release__.py file as a central repository for release
6540 info that other files can read from.
6544 info that other files can read from.
6541
6545
6542 * Fixed small bug in logging: when logging was turned on in
6546 * Fixed small bug in logging: when logging was turned on in
6543 mid-session, old lines with special meanings (!@?) were being
6547 mid-session, old lines with special meanings (!@?) were being
6544 logged without the prepended comment, which is necessary since
6548 logged without the prepended comment, which is necessary since
6545 they are not truly valid python syntax. This should make session
6549 they are not truly valid python syntax. This should make session
6546 restores produce less errors.
6550 restores produce less errors.
6547
6551
6548 * The namespace cleanup forced me to make a FlexCompleter class
6552 * The namespace cleanup forced me to make a FlexCompleter class
6549 which is nothing but a ripoff of rlcompleter, but with selectable
6553 which is nothing but a ripoff of rlcompleter, but with selectable
6550 namespace (rlcompleter only works in __main__.__dict__). I'll try
6554 namespace (rlcompleter only works in __main__.__dict__). I'll try
6551 to submit a note to the authors to see if this change can be
6555 to submit a note to the authors to see if this change can be
6552 incorporated in future rlcompleter releases (Dec.6: done)
6556 incorporated in future rlcompleter releases (Dec.6: done)
6553
6557
6554 * More fixes to namespace handling. It was a mess! Now all
6558 * More fixes to namespace handling. It was a mess! Now all
6555 explicit references to __main__.__dict__ are gone (except when
6559 explicit references to __main__.__dict__ are gone (except when
6556 really needed) and everything is handled through the namespace
6560 really needed) and everything is handled through the namespace
6557 dicts in the IPython instance. We seem to be getting somewhere
6561 dicts in the IPython instance. We seem to be getting somewhere
6558 with this, finally...
6562 with this, finally...
6559
6563
6560 * Small documentation updates.
6564 * Small documentation updates.
6561
6565
6562 * Created the Extensions directory under IPython (with an
6566 * Created the Extensions directory under IPython (with an
6563 __init__.py). Put the PhysicalQ stuff there. This directory should
6567 __init__.py). Put the PhysicalQ stuff there. This directory should
6564 be used for all special-purpose extensions.
6568 be used for all special-purpose extensions.
6565
6569
6566 * File renaming:
6570 * File renaming:
6567 ipythonlib --> ipmaker
6571 ipythonlib --> ipmaker
6568 ipplib --> iplib
6572 ipplib --> iplib
6569 This makes a bit more sense in terms of what these files actually do.
6573 This makes a bit more sense in terms of what these files actually do.
6570
6574
6571 * Moved all the classes and functions in ipythonlib to ipplib, so
6575 * Moved all the classes and functions in ipythonlib to ipplib, so
6572 now ipythonlib only has make_IPython(). This will ease up its
6576 now ipythonlib only has make_IPython(). This will ease up its
6573 splitting in smaller functional chunks later.
6577 splitting in smaller functional chunks later.
6574
6578
6575 * Cleaned up (done, I think) output of @whos. Better column
6579 * Cleaned up (done, I think) output of @whos. Better column
6576 formatting, and now shows str(var) for as much as it can, which is
6580 formatting, and now shows str(var) for as much as it can, which is
6577 typically what one gets with a 'print var'.
6581 typically what one gets with a 'print var'.
6578
6582
6579 2001-12-04 Fernando Perez <fperez@colorado.edu>
6583 2001-12-04 Fernando Perez <fperez@colorado.edu>
6580
6584
6581 * Fixed namespace problems. Now builtin/IPyhton/user names get
6585 * Fixed namespace problems. Now builtin/IPyhton/user names get
6582 properly reported in their namespace. Internal namespace handling
6586 properly reported in their namespace. Internal namespace handling
6583 is finally getting decent (not perfect yet, but much better than
6587 is finally getting decent (not perfect yet, but much better than
6584 the ad-hoc mess we had).
6588 the ad-hoc mess we had).
6585
6589
6586 * Removed -exit option. If people just want to run a python
6590 * Removed -exit option. If people just want to run a python
6587 script, that's what the normal interpreter is for. Less
6591 script, that's what the normal interpreter is for. Less
6588 unnecessary options, less chances for bugs.
6592 unnecessary options, less chances for bugs.
6589
6593
6590 * Added a crash handler which generates a complete post-mortem if
6594 * Added a crash handler which generates a complete post-mortem if
6591 IPython crashes. This will help a lot in tracking bugs down the
6595 IPython crashes. This will help a lot in tracking bugs down the
6592 road.
6596 road.
6593
6597
6594 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6598 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6595 which were boud to functions being reassigned would bypass the
6599 which were boud to functions being reassigned would bypass the
6596 logger, breaking the sync of _il with the prompt counter. This
6600 logger, breaking the sync of _il with the prompt counter. This
6597 would then crash IPython later when a new line was logged.
6601 would then crash IPython later when a new line was logged.
6598
6602
6599 2001-12-02 Fernando Perez <fperez@colorado.edu>
6603 2001-12-02 Fernando Perez <fperez@colorado.edu>
6600
6604
6601 * Made IPython a package. This means people don't have to clutter
6605 * Made IPython a package. This means people don't have to clutter
6602 their sys.path with yet another directory. Changed the INSTALL
6606 their sys.path with yet another directory. Changed the INSTALL
6603 file accordingly.
6607 file accordingly.
6604
6608
6605 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6609 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6606 sorts its output (so @who shows it sorted) and @whos formats the
6610 sorts its output (so @who shows it sorted) and @whos formats the
6607 table according to the width of the first column. Nicer, easier to
6611 table according to the width of the first column. Nicer, easier to
6608 read. Todo: write a generic table_format() which takes a list of
6612 read. Todo: write a generic table_format() which takes a list of
6609 lists and prints it nicely formatted, with optional row/column
6613 lists and prints it nicely formatted, with optional row/column
6610 separators and proper padding and justification.
6614 separators and proper padding and justification.
6611
6615
6612 * Released 0.1.20
6616 * Released 0.1.20
6613
6617
6614 * Fixed bug in @log which would reverse the inputcache list (a
6618 * Fixed bug in @log which would reverse the inputcache list (a
6615 copy operation was missing).
6619 copy operation was missing).
6616
6620
6617 * Code cleanup. @config was changed to use page(). Better, since
6621 * Code cleanup. @config was changed to use page(). Better, since
6618 its output is always quite long.
6622 its output is always quite long.
6619
6623
6620 * Itpl is back as a dependency. I was having too many problems
6624 * Itpl is back as a dependency. I was having too many problems
6621 getting the parametric aliases to work reliably, and it's just
6625 getting the parametric aliases to work reliably, and it's just
6622 easier to code weird string operations with it than playing %()s
6626 easier to code weird string operations with it than playing %()s
6623 games. It's only ~6k, so I don't think it's too big a deal.
6627 games. It's only ~6k, so I don't think it's too big a deal.
6624
6628
6625 * Found (and fixed) a very nasty bug with history. !lines weren't
6629 * Found (and fixed) a very nasty bug with history. !lines weren't
6626 getting cached, and the out of sync caches would crash
6630 getting cached, and the out of sync caches would crash
6627 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6631 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6628 division of labor a bit better. Bug fixed, cleaner structure.
6632 division of labor a bit better. Bug fixed, cleaner structure.
6629
6633
6630 2001-12-01 Fernando Perez <fperez@colorado.edu>
6634 2001-12-01 Fernando Perez <fperez@colorado.edu>
6631
6635
6632 * Released 0.1.19
6636 * Released 0.1.19
6633
6637
6634 * Added option -n to @hist to prevent line number printing. Much
6638 * Added option -n to @hist to prevent line number printing. Much
6635 easier to copy/paste code this way.
6639 easier to copy/paste code this way.
6636
6640
6637 * Created global _il to hold the input list. Allows easy
6641 * Created global _il to hold the input list. Allows easy
6638 re-execution of blocks of code by slicing it (inspired by Janko's
6642 re-execution of blocks of code by slicing it (inspired by Janko's
6639 comment on 'macros').
6643 comment on 'macros').
6640
6644
6641 * Small fixes and doc updates.
6645 * Small fixes and doc updates.
6642
6646
6643 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6647 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6644 much too fragile with automagic. Handles properly multi-line
6648 much too fragile with automagic. Handles properly multi-line
6645 statements and takes parameters.
6649 statements and takes parameters.
6646
6650
6647 2001-11-30 Fernando Perez <fperez@colorado.edu>
6651 2001-11-30 Fernando Perez <fperez@colorado.edu>
6648
6652
6649 * Version 0.1.18 released.
6653 * Version 0.1.18 released.
6650
6654
6651 * Fixed nasty namespace bug in initial module imports.
6655 * Fixed nasty namespace bug in initial module imports.
6652
6656
6653 * Added copyright/license notes to all code files (except
6657 * Added copyright/license notes to all code files (except
6654 DPyGetOpt). For the time being, LGPL. That could change.
6658 DPyGetOpt). For the time being, LGPL. That could change.
6655
6659
6656 * Rewrote a much nicer README, updated INSTALL, cleaned up
6660 * Rewrote a much nicer README, updated INSTALL, cleaned up
6657 ipythonrc-* samples.
6661 ipythonrc-* samples.
6658
6662
6659 * Overall code/documentation cleanup. Basically ready for
6663 * Overall code/documentation cleanup. Basically ready for
6660 release. Only remaining thing: licence decision (LGPL?).
6664 release. Only remaining thing: licence decision (LGPL?).
6661
6665
6662 * Converted load_config to a class, ConfigLoader. Now recursion
6666 * Converted load_config to a class, ConfigLoader. Now recursion
6663 control is better organized. Doesn't include the same file twice.
6667 control is better organized. Doesn't include the same file twice.
6664
6668
6665 2001-11-29 Fernando Perez <fperez@colorado.edu>
6669 2001-11-29 Fernando Perez <fperez@colorado.edu>
6666
6670
6667 * Got input history working. Changed output history variables from
6671 * Got input history working. Changed output history variables from
6668 _p to _o so that _i is for input and _o for output. Just cleaner
6672 _p to _o so that _i is for input and _o for output. Just cleaner
6669 convention.
6673 convention.
6670
6674
6671 * Implemented parametric aliases. This pretty much allows the
6675 * Implemented parametric aliases. This pretty much allows the
6672 alias system to offer full-blown shell convenience, I think.
6676 alias system to offer full-blown shell convenience, I think.
6673
6677
6674 * Version 0.1.17 released, 0.1.18 opened.
6678 * Version 0.1.17 released, 0.1.18 opened.
6675
6679
6676 * dot_ipython/ipythonrc (alias): added documentation.
6680 * dot_ipython/ipythonrc (alias): added documentation.
6677 (xcolor): Fixed small bug (xcolors -> xcolor)
6681 (xcolor): Fixed small bug (xcolors -> xcolor)
6678
6682
6679 * Changed the alias system. Now alias is a magic command to define
6683 * Changed the alias system. Now alias is a magic command to define
6680 aliases just like the shell. Rationale: the builtin magics should
6684 aliases just like the shell. Rationale: the builtin magics should
6681 be there for things deeply connected to IPython's
6685 be there for things deeply connected to IPython's
6682 architecture. And this is a much lighter system for what I think
6686 architecture. And this is a much lighter system for what I think
6683 is the really important feature: allowing users to define quickly
6687 is the really important feature: allowing users to define quickly
6684 magics that will do shell things for them, so they can customize
6688 magics that will do shell things for them, so they can customize
6685 IPython easily to match their work habits. If someone is really
6689 IPython easily to match their work habits. If someone is really
6686 desperate to have another name for a builtin alias, they can
6690 desperate to have another name for a builtin alias, they can
6687 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6691 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6688 works.
6692 works.
6689
6693
6690 2001-11-28 Fernando Perez <fperez@colorado.edu>
6694 2001-11-28 Fernando Perez <fperez@colorado.edu>
6691
6695
6692 * Changed @file so that it opens the source file at the proper
6696 * Changed @file so that it opens the source file at the proper
6693 line. Since it uses less, if your EDITOR environment is
6697 line. Since it uses less, if your EDITOR environment is
6694 configured, typing v will immediately open your editor of choice
6698 configured, typing v will immediately open your editor of choice
6695 right at the line where the object is defined. Not as quick as
6699 right at the line where the object is defined. Not as quick as
6696 having a direct @edit command, but for all intents and purposes it
6700 having a direct @edit command, but for all intents and purposes it
6697 works. And I don't have to worry about writing @edit to deal with
6701 works. And I don't have to worry about writing @edit to deal with
6698 all the editors, less does that.
6702 all the editors, less does that.
6699
6703
6700 * Version 0.1.16 released, 0.1.17 opened.
6704 * Version 0.1.16 released, 0.1.17 opened.
6701
6705
6702 * Fixed some nasty bugs in the page/page_dumb combo that could
6706 * Fixed some nasty bugs in the page/page_dumb combo that could
6703 crash IPython.
6707 crash IPython.
6704
6708
6705 2001-11-27 Fernando Perez <fperez@colorado.edu>
6709 2001-11-27 Fernando Perez <fperez@colorado.edu>
6706
6710
6707 * Version 0.1.15 released, 0.1.16 opened.
6711 * Version 0.1.15 released, 0.1.16 opened.
6708
6712
6709 * Finally got ? and ?? to work for undefined things: now it's
6713 * Finally got ? and ?? to work for undefined things: now it's
6710 possible to type {}.get? and get information about the get method
6714 possible to type {}.get? and get information about the get method
6711 of dicts, or os.path? even if only os is defined (so technically
6715 of dicts, or os.path? even if only os is defined (so technically
6712 os.path isn't). Works at any level. For example, after import os,
6716 os.path isn't). Works at any level. For example, after import os,
6713 os?, os.path?, os.path.abspath? all work. This is great, took some
6717 os?, os.path?, os.path.abspath? all work. This is great, took some
6714 work in _ofind.
6718 work in _ofind.
6715
6719
6716 * Fixed more bugs with logging. The sanest way to do it was to add
6720 * Fixed more bugs with logging. The sanest way to do it was to add
6717 to @log a 'mode' parameter. Killed two in one shot (this mode
6721 to @log a 'mode' parameter. Killed two in one shot (this mode
6718 option was a request of Janko's). I think it's finally clean
6722 option was a request of Janko's). I think it's finally clean
6719 (famous last words).
6723 (famous last words).
6720
6724
6721 * Added a page_dumb() pager which does a decent job of paging on
6725 * Added a page_dumb() pager which does a decent job of paging on
6722 screen, if better things (like less) aren't available. One less
6726 screen, if better things (like less) aren't available. One less
6723 unix dependency (someday maybe somebody will port this to
6727 unix dependency (someday maybe somebody will port this to
6724 windows).
6728 windows).
6725
6729
6726 * Fixed problem in magic_log: would lock of logging out if log
6730 * Fixed problem in magic_log: would lock of logging out if log
6727 creation failed (because it would still think it had succeeded).
6731 creation failed (because it would still think it had succeeded).
6728
6732
6729 * Improved the page() function using curses to auto-detect screen
6733 * Improved the page() function using curses to auto-detect screen
6730 size. Now it can make a much better decision on whether to print
6734 size. Now it can make a much better decision on whether to print
6731 or page a string. Option screen_length was modified: a value 0
6735 or page a string. Option screen_length was modified: a value 0
6732 means auto-detect, and that's the default now.
6736 means auto-detect, and that's the default now.
6733
6737
6734 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6738 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6735 go out. I'll test it for a few days, then talk to Janko about
6739 go out. I'll test it for a few days, then talk to Janko about
6736 licences and announce it.
6740 licences and announce it.
6737
6741
6738 * Fixed the length of the auto-generated ---> prompt which appears
6742 * Fixed the length of the auto-generated ---> prompt which appears
6739 for auto-parens and auto-quotes. Getting this right isn't trivial,
6743 for auto-parens and auto-quotes. Getting this right isn't trivial,
6740 with all the color escapes, different prompt types and optional
6744 with all the color escapes, different prompt types and optional
6741 separators. But it seems to be working in all the combinations.
6745 separators. But it seems to be working in all the combinations.
6742
6746
6743 2001-11-26 Fernando Perez <fperez@colorado.edu>
6747 2001-11-26 Fernando Perez <fperez@colorado.edu>
6744
6748
6745 * Wrote a regexp filter to get option types from the option names
6749 * Wrote a regexp filter to get option types from the option names
6746 string. This eliminates the need to manually keep two duplicate
6750 string. This eliminates the need to manually keep two duplicate
6747 lists.
6751 lists.
6748
6752
6749 * Removed the unneeded check_option_names. Now options are handled
6753 * Removed the unneeded check_option_names. Now options are handled
6750 in a much saner manner and it's easy to visually check that things
6754 in a much saner manner and it's easy to visually check that things
6751 are ok.
6755 are ok.
6752
6756
6753 * Updated version numbers on all files I modified to carry a
6757 * Updated version numbers on all files I modified to carry a
6754 notice so Janko and Nathan have clear version markers.
6758 notice so Janko and Nathan have clear version markers.
6755
6759
6756 * Updated docstring for ultraTB with my changes. I should send
6760 * Updated docstring for ultraTB with my changes. I should send
6757 this to Nathan.
6761 this to Nathan.
6758
6762
6759 * Lots of small fixes. Ran everything through pychecker again.
6763 * Lots of small fixes. Ran everything through pychecker again.
6760
6764
6761 * Made loading of deep_reload an cmd line option. If it's not too
6765 * Made loading of deep_reload an cmd line option. If it's not too
6762 kosher, now people can just disable it. With -nodeep_reload it's
6766 kosher, now people can just disable it. With -nodeep_reload it's
6763 still available as dreload(), it just won't overwrite reload().
6767 still available as dreload(), it just won't overwrite reload().
6764
6768
6765 * Moved many options to the no| form (-opt and -noopt
6769 * Moved many options to the no| form (-opt and -noopt
6766 accepted). Cleaner.
6770 accepted). Cleaner.
6767
6771
6768 * Changed magic_log so that if called with no parameters, it uses
6772 * Changed magic_log so that if called with no parameters, it uses
6769 'rotate' mode. That way auto-generated logs aren't automatically
6773 'rotate' mode. That way auto-generated logs aren't automatically
6770 over-written. For normal logs, now a backup is made if it exists
6774 over-written. For normal logs, now a backup is made if it exists
6771 (only 1 level of backups). A new 'backup' mode was added to the
6775 (only 1 level of backups). A new 'backup' mode was added to the
6772 Logger class to support this. This was a request by Janko.
6776 Logger class to support this. This was a request by Janko.
6773
6777
6774 * Added @logoff/@logon to stop/restart an active log.
6778 * Added @logoff/@logon to stop/restart an active log.
6775
6779
6776 * Fixed a lot of bugs in log saving/replay. It was pretty
6780 * Fixed a lot of bugs in log saving/replay. It was pretty
6777 broken. Now special lines (!@,/) appear properly in the command
6781 broken. Now special lines (!@,/) appear properly in the command
6778 history after a log replay.
6782 history after a log replay.
6779
6783
6780 * Tried and failed to implement full session saving via pickle. My
6784 * Tried and failed to implement full session saving via pickle. My
6781 idea was to pickle __main__.__dict__, but modules can't be
6785 idea was to pickle __main__.__dict__, but modules can't be
6782 pickled. This would be a better alternative to replaying logs, but
6786 pickled. This would be a better alternative to replaying logs, but
6783 seems quite tricky to get to work. Changed -session to be called
6787 seems quite tricky to get to work. Changed -session to be called
6784 -logplay, which more accurately reflects what it does. And if we
6788 -logplay, which more accurately reflects what it does. And if we
6785 ever get real session saving working, -session is now available.
6789 ever get real session saving working, -session is now available.
6786
6790
6787 * Implemented color schemes for prompts also. As for tracebacks,
6791 * Implemented color schemes for prompts also. As for tracebacks,
6788 currently only NoColor and Linux are supported. But now the
6792 currently only NoColor and Linux are supported. But now the
6789 infrastructure is in place, based on a generic ColorScheme
6793 infrastructure is in place, based on a generic ColorScheme
6790 class. So writing and activating new schemes both for the prompts
6794 class. So writing and activating new schemes both for the prompts
6791 and the tracebacks should be straightforward.
6795 and the tracebacks should be straightforward.
6792
6796
6793 * Version 0.1.13 released, 0.1.14 opened.
6797 * Version 0.1.13 released, 0.1.14 opened.
6794
6798
6795 * Changed handling of options for output cache. Now counter is
6799 * Changed handling of options for output cache. Now counter is
6796 hardwired starting at 1 and one specifies the maximum number of
6800 hardwired starting at 1 and one specifies the maximum number of
6797 entries *in the outcache* (not the max prompt counter). This is
6801 entries *in the outcache* (not the max prompt counter). This is
6798 much better, since many statements won't increase the cache
6802 much better, since many statements won't increase the cache
6799 count. It also eliminated some confusing options, now there's only
6803 count. It also eliminated some confusing options, now there's only
6800 one: cache_size.
6804 one: cache_size.
6801
6805
6802 * Added 'alias' magic function and magic_alias option in the
6806 * Added 'alias' magic function and magic_alias option in the
6803 ipythonrc file. Now the user can easily define whatever names he
6807 ipythonrc file. Now the user can easily define whatever names he
6804 wants for the magic functions without having to play weird
6808 wants for the magic functions without having to play weird
6805 namespace games. This gives IPython a real shell-like feel.
6809 namespace games. This gives IPython a real shell-like feel.
6806
6810
6807 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6811 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6808 @ or not).
6812 @ or not).
6809
6813
6810 This was one of the last remaining 'visible' bugs (that I know
6814 This was one of the last remaining 'visible' bugs (that I know
6811 of). I think if I can clean up the session loading so it works
6815 of). I think if I can clean up the session loading so it works
6812 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6816 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6813 about licensing).
6817 about licensing).
6814
6818
6815 2001-11-25 Fernando Perez <fperez@colorado.edu>
6819 2001-11-25 Fernando Perez <fperez@colorado.edu>
6816
6820
6817 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6821 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6818 there's a cleaner distinction between what ? and ?? show.
6822 there's a cleaner distinction between what ? and ?? show.
6819
6823
6820 * Added screen_length option. Now the user can define his own
6824 * Added screen_length option. Now the user can define his own
6821 screen size for page() operations.
6825 screen size for page() operations.
6822
6826
6823 * Implemented magic shell-like functions with automatic code
6827 * Implemented magic shell-like functions with automatic code
6824 generation. Now adding another function is just a matter of adding
6828 generation. Now adding another function is just a matter of adding
6825 an entry to a dict, and the function is dynamically generated at
6829 an entry to a dict, and the function is dynamically generated at
6826 run-time. Python has some really cool features!
6830 run-time. Python has some really cool features!
6827
6831
6828 * Renamed many options to cleanup conventions a little. Now all
6832 * Renamed many options to cleanup conventions a little. Now all
6829 are lowercase, and only underscores where needed. Also in the code
6833 are lowercase, and only underscores where needed. Also in the code
6830 option name tables are clearer.
6834 option name tables are clearer.
6831
6835
6832 * Changed prompts a little. Now input is 'In [n]:' instead of
6836 * Changed prompts a little. Now input is 'In [n]:' instead of
6833 'In[n]:='. This allows it the numbers to be aligned with the
6837 'In[n]:='. This allows it the numbers to be aligned with the
6834 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6838 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6835 Python (it was a Mathematica thing). The '...' continuation prompt
6839 Python (it was a Mathematica thing). The '...' continuation prompt
6836 was also changed a little to align better.
6840 was also changed a little to align better.
6837
6841
6838 * Fixed bug when flushing output cache. Not all _p<n> variables
6842 * Fixed bug when flushing output cache. Not all _p<n> variables
6839 exist, so their deletion needs to be wrapped in a try:
6843 exist, so their deletion needs to be wrapped in a try:
6840
6844
6841 * Figured out how to properly use inspect.formatargspec() (it
6845 * Figured out how to properly use inspect.formatargspec() (it
6842 requires the args preceded by *). So I removed all the code from
6846 requires the args preceded by *). So I removed all the code from
6843 _get_pdef in Magic, which was just replicating that.
6847 _get_pdef in Magic, which was just replicating that.
6844
6848
6845 * Added test to prefilter to allow redefining magic function names
6849 * Added test to prefilter to allow redefining magic function names
6846 as variables. This is ok, since the @ form is always available,
6850 as variables. This is ok, since the @ form is always available,
6847 but whe should allow the user to define a variable called 'ls' if
6851 but whe should allow the user to define a variable called 'ls' if
6848 he needs it.
6852 he needs it.
6849
6853
6850 * Moved the ToDo information from README into a separate ToDo.
6854 * Moved the ToDo information from README into a separate ToDo.
6851
6855
6852 * General code cleanup and small bugfixes. I think it's close to a
6856 * General code cleanup and small bugfixes. I think it's close to a
6853 state where it can be released, obviously with a big 'beta'
6857 state where it can be released, obviously with a big 'beta'
6854 warning on it.
6858 warning on it.
6855
6859
6856 * Got the magic function split to work. Now all magics are defined
6860 * Got the magic function split to work. Now all magics are defined
6857 in a separate class. It just organizes things a bit, and now
6861 in a separate class. It just organizes things a bit, and now
6858 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6862 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6859 was too long).
6863 was too long).
6860
6864
6861 * Changed @clear to @reset to avoid potential confusions with
6865 * Changed @clear to @reset to avoid potential confusions with
6862 the shell command clear. Also renamed @cl to @clear, which does
6866 the shell command clear. Also renamed @cl to @clear, which does
6863 exactly what people expect it to from their shell experience.
6867 exactly what people expect it to from their shell experience.
6864
6868
6865 Added a check to the @reset command (since it's so
6869 Added a check to the @reset command (since it's so
6866 destructive, it's probably a good idea to ask for confirmation).
6870 destructive, it's probably a good idea to ask for confirmation).
6867 But now reset only works for full namespace resetting. Since the
6871 But now reset only works for full namespace resetting. Since the
6868 del keyword is already there for deleting a few specific
6872 del keyword is already there for deleting a few specific
6869 variables, I don't see the point of having a redundant magic
6873 variables, I don't see the point of having a redundant magic
6870 function for the same task.
6874 function for the same task.
6871
6875
6872 2001-11-24 Fernando Perez <fperez@colorado.edu>
6876 2001-11-24 Fernando Perez <fperez@colorado.edu>
6873
6877
6874 * Updated the builtin docs (esp. the ? ones).
6878 * Updated the builtin docs (esp. the ? ones).
6875
6879
6876 * Ran all the code through pychecker. Not terribly impressed with
6880 * Ran all the code through pychecker. Not terribly impressed with
6877 it: lots of spurious warnings and didn't really find anything of
6881 it: lots of spurious warnings and didn't really find anything of
6878 substance (just a few modules being imported and not used).
6882 substance (just a few modules being imported and not used).
6879
6883
6880 * Implemented the new ultraTB functionality into IPython. New
6884 * Implemented the new ultraTB functionality into IPython. New
6881 option: xcolors. This chooses color scheme. xmode now only selects
6885 option: xcolors. This chooses color scheme. xmode now only selects
6882 between Plain and Verbose. Better orthogonality.
6886 between Plain and Verbose. Better orthogonality.
6883
6887
6884 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6888 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6885 mode and color scheme for the exception handlers. Now it's
6889 mode and color scheme for the exception handlers. Now it's
6886 possible to have the verbose traceback with no coloring.
6890 possible to have the verbose traceback with no coloring.
6887
6891
6888 2001-11-23 Fernando Perez <fperez@colorado.edu>
6892 2001-11-23 Fernando Perez <fperez@colorado.edu>
6889
6893
6890 * Version 0.1.12 released, 0.1.13 opened.
6894 * Version 0.1.12 released, 0.1.13 opened.
6891
6895
6892 * Removed option to set auto-quote and auto-paren escapes by
6896 * Removed option to set auto-quote and auto-paren escapes by
6893 user. The chances of breaking valid syntax are just too high. If
6897 user. The chances of breaking valid syntax are just too high. If
6894 someone *really* wants, they can always dig into the code.
6898 someone *really* wants, they can always dig into the code.
6895
6899
6896 * Made prompt separators configurable.
6900 * Made prompt separators configurable.
6897
6901
6898 2001-11-22 Fernando Perez <fperez@colorado.edu>
6902 2001-11-22 Fernando Perez <fperez@colorado.edu>
6899
6903
6900 * Small bugfixes in many places.
6904 * Small bugfixes in many places.
6901
6905
6902 * Removed the MyCompleter class from ipplib. It seemed redundant
6906 * Removed the MyCompleter class from ipplib. It seemed redundant
6903 with the C-p,C-n history search functionality. Less code to
6907 with the C-p,C-n history search functionality. Less code to
6904 maintain.
6908 maintain.
6905
6909
6906 * Moved all the original ipython.py code into ipythonlib.py. Right
6910 * Moved all the original ipython.py code into ipythonlib.py. Right
6907 now it's just one big dump into a function called make_IPython, so
6911 now it's just one big dump into a function called make_IPython, so
6908 no real modularity has been gained. But at least it makes the
6912 no real modularity has been gained. But at least it makes the
6909 wrapper script tiny, and since ipythonlib is a module, it gets
6913 wrapper script tiny, and since ipythonlib is a module, it gets
6910 compiled and startup is much faster.
6914 compiled and startup is much faster.
6911
6915
6912 This is a reasobably 'deep' change, so we should test it for a
6916 This is a reasobably 'deep' change, so we should test it for a
6913 while without messing too much more with the code.
6917 while without messing too much more with the code.
6914
6918
6915 2001-11-21 Fernando Perez <fperez@colorado.edu>
6919 2001-11-21 Fernando Perez <fperez@colorado.edu>
6916
6920
6917 * Version 0.1.11 released, 0.1.12 opened for further work.
6921 * Version 0.1.11 released, 0.1.12 opened for further work.
6918
6922
6919 * Removed dependency on Itpl. It was only needed in one place. It
6923 * Removed dependency on Itpl. It was only needed in one place. It
6920 would be nice if this became part of python, though. It makes life
6924 would be nice if this became part of python, though. It makes life
6921 *a lot* easier in some cases.
6925 *a lot* easier in some cases.
6922
6926
6923 * Simplified the prefilter code a bit. Now all handlers are
6927 * Simplified the prefilter code a bit. Now all handlers are
6924 expected to explicitly return a value (at least a blank string).
6928 expected to explicitly return a value (at least a blank string).
6925
6929
6926 * Heavy edits in ipplib. Removed the help system altogether. Now
6930 * Heavy edits in ipplib. Removed the help system altogether. Now
6927 obj?/?? is used for inspecting objects, a magic @doc prints
6931 obj?/?? is used for inspecting objects, a magic @doc prints
6928 docstrings, and full-blown Python help is accessed via the 'help'
6932 docstrings, and full-blown Python help is accessed via the 'help'
6929 keyword. This cleans up a lot of code (less to maintain) and does
6933 keyword. This cleans up a lot of code (less to maintain) and does
6930 the job. Since 'help' is now a standard Python component, might as
6934 the job. Since 'help' is now a standard Python component, might as
6931 well use it and remove duplicate functionality.
6935 well use it and remove duplicate functionality.
6932
6936
6933 Also removed the option to use ipplib as a standalone program. By
6937 Also removed the option to use ipplib as a standalone program. By
6934 now it's too dependent on other parts of IPython to function alone.
6938 now it's too dependent on other parts of IPython to function alone.
6935
6939
6936 * Fixed bug in genutils.pager. It would crash if the pager was
6940 * Fixed bug in genutils.pager. It would crash if the pager was
6937 exited immediately after opening (broken pipe).
6941 exited immediately after opening (broken pipe).
6938
6942
6939 * Trimmed down the VerboseTB reporting a little. The header is
6943 * Trimmed down the VerboseTB reporting a little. The header is
6940 much shorter now and the repeated exception arguments at the end
6944 much shorter now and the repeated exception arguments at the end
6941 have been removed. For interactive use the old header seemed a bit
6945 have been removed. For interactive use the old header seemed a bit
6942 excessive.
6946 excessive.
6943
6947
6944 * Fixed small bug in output of @whos for variables with multi-word
6948 * Fixed small bug in output of @whos for variables with multi-word
6945 types (only first word was displayed).
6949 types (only first word was displayed).
6946
6950
6947 2001-11-17 Fernando Perez <fperez@colorado.edu>
6951 2001-11-17 Fernando Perez <fperez@colorado.edu>
6948
6952
6949 * Version 0.1.10 released, 0.1.11 opened for further work.
6953 * Version 0.1.10 released, 0.1.11 opened for further work.
6950
6954
6951 * Modified dirs and friends. dirs now *returns* the stack (not
6955 * Modified dirs and friends. dirs now *returns* the stack (not
6952 prints), so one can manipulate it as a variable. Convenient to
6956 prints), so one can manipulate it as a variable. Convenient to
6953 travel along many directories.
6957 travel along many directories.
6954
6958
6955 * Fixed bug in magic_pdef: would only work with functions with
6959 * Fixed bug in magic_pdef: would only work with functions with
6956 arguments with default values.
6960 arguments with default values.
6957
6961
6958 2001-11-14 Fernando Perez <fperez@colorado.edu>
6962 2001-11-14 Fernando Perez <fperez@colorado.edu>
6959
6963
6960 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6964 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6961 example with IPython. Various other minor fixes and cleanups.
6965 example with IPython. Various other minor fixes and cleanups.
6962
6966
6963 * Version 0.1.9 released, 0.1.10 opened for further work.
6967 * Version 0.1.9 released, 0.1.10 opened for further work.
6964
6968
6965 * Added sys.path to the list of directories searched in the
6969 * Added sys.path to the list of directories searched in the
6966 execfile= option. It used to be the current directory and the
6970 execfile= option. It used to be the current directory and the
6967 user's IPYTHONDIR only.
6971 user's IPYTHONDIR only.
6968
6972
6969 2001-11-13 Fernando Perez <fperez@colorado.edu>
6973 2001-11-13 Fernando Perez <fperez@colorado.edu>
6970
6974
6971 * Reinstated the raw_input/prefilter separation that Janko had
6975 * Reinstated the raw_input/prefilter separation that Janko had
6972 initially. This gives a more convenient setup for extending the
6976 initially. This gives a more convenient setup for extending the
6973 pre-processor from the outside: raw_input always gets a string,
6977 pre-processor from the outside: raw_input always gets a string,
6974 and prefilter has to process it. We can then redefine prefilter
6978 and prefilter has to process it. We can then redefine prefilter
6975 from the outside and implement extensions for special
6979 from the outside and implement extensions for special
6976 purposes.
6980 purposes.
6977
6981
6978 Today I got one for inputting PhysicalQuantity objects
6982 Today I got one for inputting PhysicalQuantity objects
6979 (from Scientific) without needing any function calls at
6983 (from Scientific) without needing any function calls at
6980 all. Extremely convenient, and it's all done as a user-level
6984 all. Extremely convenient, and it's all done as a user-level
6981 extension (no IPython code was touched). Now instead of:
6985 extension (no IPython code was touched). Now instead of:
6982 a = PhysicalQuantity(4.2,'m/s**2')
6986 a = PhysicalQuantity(4.2,'m/s**2')
6983 one can simply say
6987 one can simply say
6984 a = 4.2 m/s**2
6988 a = 4.2 m/s**2
6985 or even
6989 or even
6986 a = 4.2 m/s^2
6990 a = 4.2 m/s^2
6987
6991
6988 I use this, but it's also a proof of concept: IPython really is
6992 I use this, but it's also a proof of concept: IPython really is
6989 fully user-extensible, even at the level of the parsing of the
6993 fully user-extensible, even at the level of the parsing of the
6990 command line. It's not trivial, but it's perfectly doable.
6994 command line. It's not trivial, but it's perfectly doable.
6991
6995
6992 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6996 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6993 the problem of modules being loaded in the inverse order in which
6997 the problem of modules being loaded in the inverse order in which
6994 they were defined in
6998 they were defined in
6995
6999
6996 * Version 0.1.8 released, 0.1.9 opened for further work.
7000 * Version 0.1.8 released, 0.1.9 opened for further work.
6997
7001
6998 * Added magics pdef, source and file. They respectively show the
7002 * Added magics pdef, source and file. They respectively show the
6999 definition line ('prototype' in C), source code and full python
7003 definition line ('prototype' in C), source code and full python
7000 file for any callable object. The object inspector oinfo uses
7004 file for any callable object. The object inspector oinfo uses
7001 these to show the same information.
7005 these to show the same information.
7002
7006
7003 * Version 0.1.7 released, 0.1.8 opened for further work.
7007 * Version 0.1.7 released, 0.1.8 opened for further work.
7004
7008
7005 * Separated all the magic functions into a class called Magic. The
7009 * Separated all the magic functions into a class called Magic. The
7006 InteractiveShell class was becoming too big for Xemacs to handle
7010 InteractiveShell class was becoming too big for Xemacs to handle
7007 (de-indenting a line would lock it up for 10 seconds while it
7011 (de-indenting a line would lock it up for 10 seconds while it
7008 backtracked on the whole class!)
7012 backtracked on the whole class!)
7009
7013
7010 FIXME: didn't work. It can be done, but right now namespaces are
7014 FIXME: didn't work. It can be done, but right now namespaces are
7011 all messed up. Do it later (reverted it for now, so at least
7015 all messed up. Do it later (reverted it for now, so at least
7012 everything works as before).
7016 everything works as before).
7013
7017
7014 * Got the object introspection system (magic_oinfo) working! I
7018 * Got the object introspection system (magic_oinfo) working! I
7015 think this is pretty much ready for release to Janko, so he can
7019 think this is pretty much ready for release to Janko, so he can
7016 test it for a while and then announce it. Pretty much 100% of what
7020 test it for a while and then announce it. Pretty much 100% of what
7017 I wanted for the 'phase 1' release is ready. Happy, tired.
7021 I wanted for the 'phase 1' release is ready. Happy, tired.
7018
7022
7019 2001-11-12 Fernando Perez <fperez@colorado.edu>
7023 2001-11-12 Fernando Perez <fperez@colorado.edu>
7020
7024
7021 * Version 0.1.6 released, 0.1.7 opened for further work.
7025 * Version 0.1.6 released, 0.1.7 opened for further work.
7022
7026
7023 * Fixed bug in printing: it used to test for truth before
7027 * Fixed bug in printing: it used to test for truth before
7024 printing, so 0 wouldn't print. Now checks for None.
7028 printing, so 0 wouldn't print. Now checks for None.
7025
7029
7026 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7030 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7027 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7031 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7028 reaches by hand into the outputcache. Think of a better way to do
7032 reaches by hand into the outputcache. Think of a better way to do
7029 this later.
7033 this later.
7030
7034
7031 * Various small fixes thanks to Nathan's comments.
7035 * Various small fixes thanks to Nathan's comments.
7032
7036
7033 * Changed magic_pprint to magic_Pprint. This way it doesn't
7037 * Changed magic_pprint to magic_Pprint. This way it doesn't
7034 collide with pprint() and the name is consistent with the command
7038 collide with pprint() and the name is consistent with the command
7035 line option.
7039 line option.
7036
7040
7037 * Changed prompt counter behavior to be fully like
7041 * Changed prompt counter behavior to be fully like
7038 Mathematica's. That is, even input that doesn't return a result
7042 Mathematica's. That is, even input that doesn't return a result
7039 raises the prompt counter. The old behavior was kind of confusing
7043 raises the prompt counter. The old behavior was kind of confusing
7040 (getting the same prompt number several times if the operation
7044 (getting the same prompt number several times if the operation
7041 didn't return a result).
7045 didn't return a result).
7042
7046
7043 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7047 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7044
7048
7045 * Fixed -Classic mode (wasn't working anymore).
7049 * Fixed -Classic mode (wasn't working anymore).
7046
7050
7047 * Added colored prompts using Nathan's new code. Colors are
7051 * Added colored prompts using Nathan's new code. Colors are
7048 currently hardwired, they can be user-configurable. For
7052 currently hardwired, they can be user-configurable. For
7049 developers, they can be chosen in file ipythonlib.py, at the
7053 developers, they can be chosen in file ipythonlib.py, at the
7050 beginning of the CachedOutput class def.
7054 beginning of the CachedOutput class def.
7051
7055
7052 2001-11-11 Fernando Perez <fperez@colorado.edu>
7056 2001-11-11 Fernando Perez <fperez@colorado.edu>
7053
7057
7054 * Version 0.1.5 released, 0.1.6 opened for further work.
7058 * Version 0.1.5 released, 0.1.6 opened for further work.
7055
7059
7056 * Changed magic_env to *return* the environment as a dict (not to
7060 * Changed magic_env to *return* the environment as a dict (not to
7057 print it). This way it prints, but it can also be processed.
7061 print it). This way it prints, but it can also be processed.
7058
7062
7059 * Added Verbose exception reporting to interactive
7063 * Added Verbose exception reporting to interactive
7060 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7064 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7061 traceback. Had to make some changes to the ultraTB file. This is
7065 traceback. Had to make some changes to the ultraTB file. This is
7062 probably the last 'big' thing in my mental todo list. This ties
7066 probably the last 'big' thing in my mental todo list. This ties
7063 in with the next entry:
7067 in with the next entry:
7064
7068
7065 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7069 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7066 has to specify is Plain, Color or Verbose for all exception
7070 has to specify is Plain, Color or Verbose for all exception
7067 handling.
7071 handling.
7068
7072
7069 * Removed ShellServices option. All this can really be done via
7073 * Removed ShellServices option. All this can really be done via
7070 the magic system. It's easier to extend, cleaner and has automatic
7074 the magic system. It's easier to extend, cleaner and has automatic
7071 namespace protection and documentation.
7075 namespace protection and documentation.
7072
7076
7073 2001-11-09 Fernando Perez <fperez@colorado.edu>
7077 2001-11-09 Fernando Perez <fperez@colorado.edu>
7074
7078
7075 * Fixed bug in output cache flushing (missing parameter to
7079 * Fixed bug in output cache flushing (missing parameter to
7076 __init__). Other small bugs fixed (found using pychecker).
7080 __init__). Other small bugs fixed (found using pychecker).
7077
7081
7078 * Version 0.1.4 opened for bugfixing.
7082 * Version 0.1.4 opened for bugfixing.
7079
7083
7080 2001-11-07 Fernando Perez <fperez@colorado.edu>
7084 2001-11-07 Fernando Perez <fperez@colorado.edu>
7081
7085
7082 * Version 0.1.3 released, mainly because of the raw_input bug.
7086 * Version 0.1.3 released, mainly because of the raw_input bug.
7083
7087
7084 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7088 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7085 and when testing for whether things were callable, a call could
7089 and when testing for whether things were callable, a call could
7086 actually be made to certain functions. They would get called again
7090 actually be made to certain functions. They would get called again
7087 once 'really' executed, with a resulting double call. A disaster
7091 once 'really' executed, with a resulting double call. A disaster
7088 in many cases (list.reverse() would never work!).
7092 in many cases (list.reverse() would never work!).
7089
7093
7090 * Removed prefilter() function, moved its code to raw_input (which
7094 * Removed prefilter() function, moved its code to raw_input (which
7091 after all was just a near-empty caller for prefilter). This saves
7095 after all was just a near-empty caller for prefilter). This saves
7092 a function call on every prompt, and simplifies the class a tiny bit.
7096 a function call on every prompt, and simplifies the class a tiny bit.
7093
7097
7094 * Fix _ip to __ip name in magic example file.
7098 * Fix _ip to __ip name in magic example file.
7095
7099
7096 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7100 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7097 work with non-gnu versions of tar.
7101 work with non-gnu versions of tar.
7098
7102
7099 2001-11-06 Fernando Perez <fperez@colorado.edu>
7103 2001-11-06 Fernando Perez <fperez@colorado.edu>
7100
7104
7101 * Version 0.1.2. Just to keep track of the recent changes.
7105 * Version 0.1.2. Just to keep track of the recent changes.
7102
7106
7103 * Fixed nasty bug in output prompt routine. It used to check 'if
7107 * Fixed nasty bug in output prompt routine. It used to check 'if
7104 arg != None...'. Problem is, this fails if arg implements a
7108 arg != None...'. Problem is, this fails if arg implements a
7105 special comparison (__cmp__) which disallows comparing to
7109 special comparison (__cmp__) which disallows comparing to
7106 None. Found it when trying to use the PhysicalQuantity module from
7110 None. Found it when trying to use the PhysicalQuantity module from
7107 ScientificPython.
7111 ScientificPython.
7108
7112
7109 2001-11-05 Fernando Perez <fperez@colorado.edu>
7113 2001-11-05 Fernando Perez <fperez@colorado.edu>
7110
7114
7111 * Also added dirs. Now the pushd/popd/dirs family functions
7115 * Also added dirs. Now the pushd/popd/dirs family functions
7112 basically like the shell, with the added convenience of going home
7116 basically like the shell, with the added convenience of going home
7113 when called with no args.
7117 when called with no args.
7114
7118
7115 * pushd/popd slightly modified to mimic shell behavior more
7119 * pushd/popd slightly modified to mimic shell behavior more
7116 closely.
7120 closely.
7117
7121
7118 * Added env,pushd,popd from ShellServices as magic functions. I
7122 * Added env,pushd,popd from ShellServices as magic functions. I
7119 think the cleanest will be to port all desired functions from
7123 think the cleanest will be to port all desired functions from
7120 ShellServices as magics and remove ShellServices altogether. This
7124 ShellServices as magics and remove ShellServices altogether. This
7121 will provide a single, clean way of adding functionality
7125 will provide a single, clean way of adding functionality
7122 (shell-type or otherwise) to IP.
7126 (shell-type or otherwise) to IP.
7123
7127
7124 2001-11-04 Fernando Perez <fperez@colorado.edu>
7128 2001-11-04 Fernando Perez <fperez@colorado.edu>
7125
7129
7126 * Added .ipython/ directory to sys.path. This way users can keep
7130 * Added .ipython/ directory to sys.path. This way users can keep
7127 customizations there and access them via import.
7131 customizations there and access them via import.
7128
7132
7129 2001-11-03 Fernando Perez <fperez@colorado.edu>
7133 2001-11-03 Fernando Perez <fperez@colorado.edu>
7130
7134
7131 * Opened version 0.1.1 for new changes.
7135 * Opened version 0.1.1 for new changes.
7132
7136
7133 * Changed version number to 0.1.0: first 'public' release, sent to
7137 * Changed version number to 0.1.0: first 'public' release, sent to
7134 Nathan and Janko.
7138 Nathan and Janko.
7135
7139
7136 * Lots of small fixes and tweaks.
7140 * Lots of small fixes and tweaks.
7137
7141
7138 * Minor changes to whos format. Now strings are shown, snipped if
7142 * Minor changes to whos format. Now strings are shown, snipped if
7139 too long.
7143 too long.
7140
7144
7141 * Changed ShellServices to work on __main__ so they show up in @who
7145 * Changed ShellServices to work on __main__ so they show up in @who
7142
7146
7143 * Help also works with ? at the end of a line:
7147 * Help also works with ? at the end of a line:
7144 ?sin and sin?
7148 ?sin and sin?
7145 both produce the same effect. This is nice, as often I use the
7149 both produce the same effect. This is nice, as often I use the
7146 tab-complete to find the name of a method, but I used to then have
7150 tab-complete to find the name of a method, but I used to then have
7147 to go to the beginning of the line to put a ? if I wanted more
7151 to go to the beginning of the line to put a ? if I wanted more
7148 info. Now I can just add the ? and hit return. Convenient.
7152 info. Now I can just add the ? and hit return. Convenient.
7149
7153
7150 2001-11-02 Fernando Perez <fperez@colorado.edu>
7154 2001-11-02 Fernando Perez <fperez@colorado.edu>
7151
7155
7152 * Python version check (>=2.1) added.
7156 * Python version check (>=2.1) added.
7153
7157
7154 * Added LazyPython documentation. At this point the docs are quite
7158 * Added LazyPython documentation. At this point the docs are quite
7155 a mess. A cleanup is in order.
7159 a mess. A cleanup is in order.
7156
7160
7157 * Auto-installer created. For some bizarre reason, the zipfiles
7161 * Auto-installer created. For some bizarre reason, the zipfiles
7158 module isn't working on my system. So I made a tar version
7162 module isn't working on my system. So I made a tar version
7159 (hopefully the command line options in various systems won't kill
7163 (hopefully the command line options in various systems won't kill
7160 me).
7164 me).
7161
7165
7162 * Fixes to Struct in genutils. Now all dictionary-like methods are
7166 * Fixes to Struct in genutils. Now all dictionary-like methods are
7163 protected (reasonably).
7167 protected (reasonably).
7164
7168
7165 * Added pager function to genutils and changed ? to print usage
7169 * Added pager function to genutils and changed ? to print usage
7166 note through it (it was too long).
7170 note through it (it was too long).
7167
7171
7168 * Added the LazyPython functionality. Works great! I changed the
7172 * Added the LazyPython functionality. Works great! I changed the
7169 auto-quote escape to ';', it's on home row and next to '. But
7173 auto-quote escape to ';', it's on home row and next to '. But
7170 both auto-quote and auto-paren (still /) escapes are command-line
7174 both auto-quote and auto-paren (still /) escapes are command-line
7171 parameters.
7175 parameters.
7172
7176
7173
7177
7174 2001-11-01 Fernando Perez <fperez@colorado.edu>
7178 2001-11-01 Fernando Perez <fperez@colorado.edu>
7175
7179
7176 * Version changed to 0.0.7. Fairly large change: configuration now
7180 * Version changed to 0.0.7. Fairly large change: configuration now
7177 is all stored in a directory, by default .ipython. There, all
7181 is all stored in a directory, by default .ipython. There, all
7178 config files have normal looking names (not .names)
7182 config files have normal looking names (not .names)
7179
7183
7180 * Version 0.0.6 Released first to Lucas and Archie as a test
7184 * Version 0.0.6 Released first to Lucas and Archie as a test
7181 run. Since it's the first 'semi-public' release, change version to
7185 run. Since it's the first 'semi-public' release, change version to
7182 > 0.0.6 for any changes now.
7186 > 0.0.6 for any changes now.
7183
7187
7184 * Stuff I had put in the ipplib.py changelog:
7188 * Stuff I had put in the ipplib.py changelog:
7185
7189
7186 Changes to InteractiveShell:
7190 Changes to InteractiveShell:
7187
7191
7188 - Made the usage message a parameter.
7192 - Made the usage message a parameter.
7189
7193
7190 - Require the name of the shell variable to be given. It's a bit
7194 - Require the name of the shell variable to be given. It's a bit
7191 of a hack, but allows the name 'shell' not to be hardwired in the
7195 of a hack, but allows the name 'shell' not to be hardwired in the
7192 magic (@) handler, which is problematic b/c it requires
7196 magic (@) handler, which is problematic b/c it requires
7193 polluting the global namespace with 'shell'. This in turn is
7197 polluting the global namespace with 'shell'. This in turn is
7194 fragile: if a user redefines a variable called shell, things
7198 fragile: if a user redefines a variable called shell, things
7195 break.
7199 break.
7196
7200
7197 - magic @: all functions available through @ need to be defined
7201 - magic @: all functions available through @ need to be defined
7198 as magic_<name>, even though they can be called simply as
7202 as magic_<name>, even though they can be called simply as
7199 @<name>. This allows the special command @magic to gather
7203 @<name>. This allows the special command @magic to gather
7200 information automatically about all existing magic functions,
7204 information automatically about all existing magic functions,
7201 even if they are run-time user extensions, by parsing the shell
7205 even if they are run-time user extensions, by parsing the shell
7202 instance __dict__ looking for special magic_ names.
7206 instance __dict__ looking for special magic_ names.
7203
7207
7204 - mainloop: added *two* local namespace parameters. This allows
7208 - mainloop: added *two* local namespace parameters. This allows
7205 the class to differentiate between parameters which were there
7209 the class to differentiate between parameters which were there
7206 before and after command line initialization was processed. This
7210 before and after command line initialization was processed. This
7207 way, later @who can show things loaded at startup by the
7211 way, later @who can show things loaded at startup by the
7208 user. This trick was necessary to make session saving/reloading
7212 user. This trick was necessary to make session saving/reloading
7209 really work: ideally after saving/exiting/reloading a session,
7213 really work: ideally after saving/exiting/reloading a session,
7210 *everything* should look the same, including the output of @who. I
7214 *everything* should look the same, including the output of @who. I
7211 was only able to make this work with this double namespace
7215 was only able to make this work with this double namespace
7212 trick.
7216 trick.
7213
7217
7214 - added a header to the logfile which allows (almost) full
7218 - added a header to the logfile which allows (almost) full
7215 session restoring.
7219 session restoring.
7216
7220
7217 - prepend lines beginning with @ or !, with a and log
7221 - prepend lines beginning with @ or !, with a and log
7218 them. Why? !lines: may be useful to know what you did @lines:
7222 them. Why? !lines: may be useful to know what you did @lines:
7219 they may affect session state. So when restoring a session, at
7223 they may affect session state. So when restoring a session, at
7220 least inform the user of their presence. I couldn't quite get
7224 least inform the user of their presence. I couldn't quite get
7221 them to properly re-execute, but at least the user is warned.
7225 them to properly re-execute, but at least the user is warned.
7222
7226
7223 * Started ChangeLog.
7227 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now