##// END OF EJS Templates
added ipy_completers.py, ipy_stock_completers.py now only ENABLES the completers as opposed to implementing them
vivainio -
Show More
@@ -0,0 +1,226 b''
1 #!/usr/bin/env python
2
3 """ Implementations for various useful completers
4
5 See Extensions/ipy_stock_completers.py on examples of how to enable a completer,
6 but the basic idea is to do:
7
8 ip.set_hook('complete_command', svn_completer, str_key = 'svn')
9
10 """
11
12 import IPython.ipapi
13 import glob,os,shlex,sys
14
15 ip = IPython.ipapi.get()
16
17 def vcs_completer(commands, event):
18 """ utility to make writing typical version control app completers easier
19
20 VCS command line apps typically have the format:
21
22 [sudo ]PROGNAME [help] [command] file file...
23
24 """
25
26
27 cmd_param = event.line.split()
28 if event.line.endswith(' '):
29 cmd_param.append('')
30
31 if cmd_param[0] == 'sudo':
32 cmd_param = cmd_param[1:]
33
34 if len(cmd_param) == 2 or 'help' in cmd_param:
35 return commands.split()
36
37 return ip.IP.Completer.file_matches(event.symbol)
38
39
40
41 def apt_completers(self, event):
42 """ This should return a list of strings with possible completions.
43
44 Note that all the included strings that don't start with event.symbol
45 are removed, in order to not confuse readline.
46
47 """
48 # print event # dbg
49
50 # commands are only suggested for the 'command' part of package manager
51 # invocation
52
53 cmd = (event.line + "<placeholder>").rsplit(None,1)[0]
54 # print cmd
55 if cmd.endswith('apt-get') or cmd.endswith('yum'):
56 return ['update', 'upgrade', 'install', 'remove']
57
58 # later on, add dpkg -l / whatever to get list of possible
59 # packages, add switches etc. for the rest of command line
60 # filling
61
62 raise IPython.ipapi.TryNext
63
64
65
66 pkg_cache = None
67
68 def module_completer(self,event):
69 """ Give completions after user has typed 'import'.
70
71 Note that only possible completions in the local directory are returned."""
72
73 # This works in all versions of python. While 2.5 has
74 # pkgutil.walk_packages(), that particular routine is fairly dangerous,
75 # since it imports *EVERYTHING* on sys.path. That is: a) very slow b) full
76 # of possibly problematic side effects. At some point we may implement
77 # something that searches sys.path in a saner/safer way, but for now we'll
78 # restrict ourselves to local completions only.
79 for el in [f[:-3] for f in glob.glob("*.py")]:
80 yield el
81 return
82
83
84 svn_commands = """\
85 add blame praise annotate ann cat checkout co cleanup commit ci copy
86 cp delete del remove rm diff di export help ? h import info list ls
87 lock log merge mkdir move mv rename ren propdel pdel pd propedit pedit
88 pe propget pget pg proplist plist pl propset pset ps resolved revert
89 status stat st switch sw unlock update
90 """
91
92 def svn_completer(self,event):
93 return vcs_completer(svn_commands, event)
94
95
96 hg_commands = """
97 add addremove annotate archive backout branch branches bundle cat
98 clone commit copy diff export grep heads help identify import incoming
99 init locate log manifest merge outgoing parents paths pull push
100 qapplied qclone qcommit qdelete qdiff qfold qguard qheader qimport
101 qinit qnew qnext qpop qprev qpush qrefresh qrename qrestore qsave
102 qselect qseries qtop qunapplied recover remove rename revert rollback
103 root serve showconfig status strip tag tags tip unbundle update verify
104 version
105 """
106
107 def hg_completer(self,event):
108 """ Completer for mercurial commands """
109
110 return vcs_completer(hg_commands, event)
111
112
113
114 bzr_commands = """
115 add annotate bind branch break-lock bundle-revisions cat check
116 checkout commit conflicts deleted diff export gannotate gbranch
117 gcommit gdiff help ignore ignored info init init-repository inventory
118 log merge missing mkdir mv nick pull push reconcile register-branch
119 remerge remove renames resolve revert revno root serve sign-my-commits
120 status testament unbind uncommit unknowns update upgrade version
121 version-info visualise whoami
122 """
123
124 def bzr_completer(self,event):
125 """ Completer for bazaar commands """
126 cmd_param = event.line.split()
127 if event.line.endswith(' '):
128 cmd_param.append('')
129
130 if len(cmd_param) > 2:
131 cmd = cmd_param[1]
132 param = cmd_param[-1]
133 output_file = (param == '--output=')
134 if cmd == 'help':
135 return bzr_commands.split()
136 elif cmd in ['bundle-revisions','conflicts',
137 'deleted','nick','register-branch',
138 'serve','unbind','upgrade','version',
139 'whoami'] and not output_file:
140 return []
141 else:
142 # the rest are probably file names
143 return ip.IP.Completer.file_matches(event.symbol)
144
145 return bzr_commands.split()
146
147
148 def shlex_split(x):
149 """Helper function to split lines into segments."""
150 #shlex.split raise exception if syntax error in sh syntax
151 #for example if no closing " is found. This function keeps dropping
152 #the last character of the line until shlex.split does not raise
153 #exception. Adds end of the line to the result of shlex.split
154 #example: %run "c:/python -> ['%run','"c:/python']
155 endofline=[]
156 while x!="":
157 try:
158 comps=shlex.split(x)
159 if len(endofline)>=1:
160 comps.append("".join(endofline))
161 return comps
162 except ValueError:
163 endofline=[x[-1:]]+endofline
164 x=x[:-1]
165 return ["".join(endofline)]
166
167 def runlistpy(self, event):
168 comps = shlex_split(event.line)
169 relpath = (len(comps) > 1 and comps[-1] or '').strip("'\"")
170
171 #print "\nev=",event # dbg
172 #print "rp=",relpath # dbg
173 #print 'comps=',comps # dbg
174
175 lglob = glob.glob
176 isdir = os.path.isdir
177 if relpath.startswith('~'):
178 relpath = os.path.expanduser(relpath)
179 dirs = [f.replace('\\','/') + "/" for f in lglob(relpath+'*')
180 if isdir(f)]
181
182 # Find if the user has already typed the first filename, after which we
183 # should complete on all files, since after the first one other files may
184 # be arguments to the input script.
185 #filter(
186 if filter(lambda f: f.endswith('.py') or f.endswith('.ipy'),comps):
187 pys = [f.replace('\\','/') for f in lglob('*')]
188 else:
189 pys = [f.replace('\\','/')
190 for f in lglob(relpath+'*.py') + lglob(relpath+'*.ipy')]
191 return dirs + pys
192
193
194 def cd_completer(self, event):
195 relpath = event.symbol
196 #print event # dbg
197 if '-b' in event.line:
198 # return only bookmark completions
199 bkms = self.db.get('bookmarks',{})
200 return bkms.keys()
201
202
203 if event.symbol == '-':
204 # jump in directory history by number
205 ents = ['-%d [%s]' % (i,s) for i,s in enumerate(ip.user_ns['_dh'])]
206 if len(ents) > 1:
207 return ents
208 return []
209
210 if relpath.startswith('~'):
211 relpath = os.path.expanduser(relpath).replace('\\','/')
212 found = []
213 for d in [f.replace('\\','/') + '/' for f in glob.glob(relpath+'*')
214 if os.path.isdir(f)]:
215 if ' ' in d:
216 # we don't want to deal with any of that, complex code
217 # for this is elsewhere
218 raise IPython.ipapi.TryNext
219 found.append( d )
220
221 if not found:
222 if os.path.isdir(relpath):
223 return [relpath]
224 raise IPython.ipapi.TryNext
225 return found
226
@@ -1,239 +1,30 b''
1 """ Tab completion support for a couple of linux package managers
1 """ Install various IPython completers
2
2
3 This is also an example of how to write custom completer plugins
3 IPython extension that installs most of the implemented
4 or hooks.
4 custom completers.
5
5
6 Practical use:
6 The actual implementations are in Extensions/ipy_completers.py
7
8 [ipython]|1> import ipy_linux_package_managers
9 [ipython]|2> apt-get u<<< press tab here >>>
10 update upgrade
11 [ipython]|2> apt-get up
12
7
13 """
8 """
14 import IPython.ipapi
9 import IPython.ipapi
15 import glob,os,shlex,sys
16
10
17 ip = IPython.ipapi.get()
11 ip = IPython.ipapi.get()
18
12
19 def vcs_completer(commands, event):
13 from ipy_completers import *
20 """ utility to make writing typical version control app completers easier
21
22 VCS command line apps typically have the format:
23
24 [sudo ]PROGNAME [help] [command] file file...
25
26 """
27
28
29 cmd_param = event.line.split()
30 if event.line.endswith(' '):
31 cmd_param.append('')
32
33 if cmd_param[0] == 'sudo':
34 cmd_param = cmd_param[1:]
35
36 if len(cmd_param) == 2 or 'help' in cmd_param:
37 return commands.split()
38
39 return ip.IP.Completer.file_matches(event.symbol)
40
41
42
43 def apt_completers(self, event):
44 """ This should return a list of strings with possible completions.
45
46 Note that all the included strings that don't start with event.symbol
47 are removed, in order to not confuse readline.
48
49 """
50 # print event # dbg
51
52 # commands are only suggested for the 'command' part of package manager
53 # invocation
54
55 cmd = (event.line + "<placeholder>").rsplit(None,1)[0]
56 # print cmd
57 if cmd.endswith('apt-get') or cmd.endswith('yum'):
58 return ['update', 'upgrade', 'install', 'remove']
59
60 # later on, add dpkg -l / whatever to get list of possible
61 # packages, add switches etc. for the rest of command line
62 # filling
63
64 raise IPython.ipapi.TryNext
65
66
67 # re_key specifies the regexp that triggers the specified completer
68
14
69 ip.set_hook('complete_command', apt_completers, re_key = '.*apt-get')
15 ip.set_hook('complete_command', apt_completers, re_key = '.*apt-get')
70 ip.set_hook('complete_command', apt_completers, re_key = '.*yum')
16 ip.set_hook('complete_command', apt_completers, re_key = '.*yum')
71
17
72 pkg_cache = None
73
74 def module_completer(self,event):
75 """ Give completions after user has typed 'import'.
76
77 Note that only possible completions in the local directory are returned."""
78
79 # This works in all versions of python. While 2.5 has
80 # pkgutil.walk_packages(), that particular routine is fairly dangerous,
81 # since it imports *EVERYTHING* on sys.path. That is: a) very slow b) full
82 # of possibly problematic side effects. At some point we may implement
83 # something that searches sys.path in a saner/safer way, but for now we'll
84 # restrict ourselves to local completions only.
85 for el in [f[:-3] for f in glob.glob("*.py")]:
86 yield el
87 return
88
18
89 ip.set_hook('complete_command', module_completer, str_key = 'import')
19 ip.set_hook('complete_command', module_completer, str_key = 'import')
90 ip.set_hook('complete_command', module_completer, str_key = 'from')
20 ip.set_hook('complete_command', module_completer, str_key = 'from')
91
21
92 svn_commands = """\
93 add blame praise annotate ann cat checkout co cleanup commit ci copy
94 cp delete del remove rm diff di export help ? h import info list ls
95 lock log merge mkdir move mv rename ren propdel pdel pd propedit pedit
96 pe propget pget pg proplist plist pl propset pset ps resolved revert
97 status stat st switch sw unlock update
98 """
99
100 def svn_completer(self,event):
101 return vcs_completer(svn_commands, event)
102
103 ip.set_hook('complete_command', svn_completer, str_key = 'svn')
22 ip.set_hook('complete_command', svn_completer, str_key = 'svn')
104
23
105 hg_commands = """
106 add addremove annotate archive backout branch branches bundle cat
107 clone commit copy diff export grep heads help identify import incoming
108 init locate log manifest merge outgoing parents paths pull push
109 qapplied qclone qcommit qdelete qdiff qfold qguard qheader qimport
110 qinit qnew qnext qpop qprev qpush qrefresh qrename qrestore qsave
111 qselect qseries qtop qunapplied recover remove rename revert rollback
112 root serve showconfig status strip tag tags tip unbundle update verify
113 version
114 """
115
116 def hg_completer(self,event):
117 """ Completer for mercurial commands """
118
119 return vcs_completer(hg_commands, event)
120
121 ip.set_hook('complete_command', hg_completer, str_key = 'hg')
24 ip.set_hook('complete_command', hg_completer, str_key = 'hg')
122
25
123
124 bzr_commands = """
125 add annotate bind branch break-lock bundle-revisions cat check
126 checkout commit conflicts deleted diff export gannotate gbranch
127 gcommit gdiff help ignore ignored info init init-repository inventory
128 log merge missing mkdir mv nick pull push reconcile register-branch
129 remerge remove renames resolve revert revno root serve sign-my-commits
130 status testament unbind uncommit unknowns update upgrade version
131 version-info visualise whoami
132 """
133
134 def bzr_completer(self,event):
135 """ Completer for bazaar commands """
136 cmd_param = event.line.split()
137 if event.line.endswith(' '):
138 cmd_param.append('')
139
140 if len(cmd_param) > 2:
141 cmd = cmd_param[1]
142 param = cmd_param[-1]
143 output_file = (param == '--output=')
144 if cmd == 'help':
145 return bzr_commands.split()
146 elif cmd in ['bundle-revisions','conflicts',
147 'deleted','nick','register-branch',
148 'serve','unbind','upgrade','version',
149 'whoami'] and not output_file:
150 return []
151 else:
152 # the rest are probably file names
153 return ip.IP.Completer.file_matches(event.symbol)
154
155 return bzr_commands.split()
156
157 ip.set_hook('complete_command', bzr_completer, str_key = 'bzr')
26 ip.set_hook('complete_command', bzr_completer, str_key = 'bzr')
158
27
159 def shlex_split(x):
160 """Helper function to split lines into segments."""
161 #shlex.split raise exception if syntax error in sh syntax
162 #for example if no closing " is found. This function keeps dropping
163 #the last character of the line until shlex.split does not raise
164 #exception. Adds end of the line to the result of shlex.split
165 #example: %run "c:/python -> ['%run','"c:/python']
166 endofline=[]
167 while x!="":
168 try:
169 comps=shlex.split(x)
170 if len(endofline)>=1:
171 comps.append("".join(endofline))
172 return comps
173 except ValueError:
174 endofline=[x[-1:]]+endofline
175 x=x[:-1]
176 return ["".join(endofline)]
177
178 def runlistpy(self, event):
179 comps = shlex_split(event.line)
180 relpath = (len(comps) > 1 and comps[-1] or '').strip("'\"")
181
182 #print "\nev=",event # dbg
183 #print "rp=",relpath # dbg
184 #print 'comps=',comps # dbg
185
186 lglob = glob.glob
187 isdir = os.path.isdir
188 if relpath.startswith('~'):
189 relpath = os.path.expanduser(relpath)
190 dirs = [f.replace('\\','/') + "/" for f in lglob(relpath+'*')
191 if isdir(f)]
192
193 # Find if the user has already typed the first filename, after which we
194 # should complete on all files, since after the first one other files may
195 # be arguments to the input script.
196 #filter(
197 if filter(lambda f: f.endswith('.py') or f.endswith('.ipy'),comps):
198 pys = [f.replace('\\','/') for f in lglob('*')]
199 else:
200 pys = [f.replace('\\','/')
201 for f in lglob(relpath+'*.py') + lglob(relpath+'*.ipy')]
202 return dirs + pys
203
204 ip.set_hook('complete_command', runlistpy, str_key = '%run')
28 ip.set_hook('complete_command', runlistpy, str_key = '%run')
205
29
206 def cd_completer(self, event):
207 relpath = event.symbol
208 #print event # dbg
209 if '-b' in event.line:
210 # return only bookmark completions
211 bkms = self.db.get('bookmarks',{})
212 return bkms.keys()
213
214
215 if event.symbol == '-':
216 # jump in directory history by number
217 ents = ['-%d [%s]' % (i,s) for i,s in enumerate(ip.user_ns['_dh'])]
218 if len(ents) > 1:
219 return ents
220 return []
221
222 if relpath.startswith('~'):
223 relpath = os.path.expanduser(relpath).replace('\\','/')
224 found = []
225 for d in [f.replace('\\','/') + '/' for f in glob.glob(relpath+'*')
226 if os.path.isdir(f)]:
227 if ' ' in d:
228 # we don't want to deal with any of that, complex code
229 # for this is elsewhere
230 raise IPython.ipapi.TryNext
231 found.append( d )
232
233 if not found:
234 if os.path.isdir(relpath):
235 return [relpath]
236 raise IPython.ipapi.TryNext
237 return found
238
239 ip.set_hook('complete_command', cd_completer, str_key = '%cd')
30 ip.set_hook('complete_command', cd_completer, str_key = '%cd')
@@ -1,6464 +1,6470 b''
1 2007-04-04 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ipy_completers.py, ipy_stock_completers.py:
4 Moved implementations of 'bundled' completers to ipy_completers.py,
5 they are only enabled in ipy_stock_completers.py.
6
1 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
7 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/PyColorize.py (Parser.format2): Fix identation of
9 * IPython/PyColorize.py (Parser.format2): Fix identation of
4 colorzied output and return early if color scheme is NoColor, to
10 colorzied output and return early if color scheme is NoColor, to
5 avoid unnecessary and expensive tokenization. Closes #131.
11 avoid unnecessary and expensive tokenization. Closes #131.
6
12
7 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
13 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
8
14
9 * IPython/Debugger.py: disable the use of pydb version 1.17. It
15 * IPython/Debugger.py: disable the use of pydb version 1.17. It
10 has a critical bug (a missing import that makes post-mortem not
16 has a critical bug (a missing import that makes post-mortem not
11 work at all). Unfortunately as of this time, this is the version
17 work at all). Unfortunately as of this time, this is the version
12 shipped with Ubuntu Edgy, so quite a few people have this one. I
18 shipped with Ubuntu Edgy, so quite a few people have this one. I
13 hope Edgy will update to a more recent package.
19 hope Edgy will update to a more recent package.
14
20
15 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
21 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
16
22
17 * IPython/iplib.py (_prefilter): close #52, second part of a patch
23 * IPython/iplib.py (_prefilter): close #52, second part of a patch
18 set by Stefan (only the first part had been applied before).
24 set by Stefan (only the first part had been applied before).
19
25
20 * IPython/Extensions/ipy_stock_completers.py (module_completer):
26 * IPython/Extensions/ipy_stock_completers.py (module_completer):
21 remove usage of the dangerous pkgutil.walk_packages(). See
27 remove usage of the dangerous pkgutil.walk_packages(). See
22 details in comments left in the code.
28 details in comments left in the code.
23
29
24 * IPython/Magic.py (magic_whos): add support for numpy arrays
30 * IPython/Magic.py (magic_whos): add support for numpy arrays
25 similar to what we had for Numeric.
31 similar to what we had for Numeric.
26
32
27 * IPython/completer.py (IPCompleter.complete): extend the
33 * IPython/completer.py (IPCompleter.complete): extend the
28 complete() call API to support completions by other mechanisms
34 complete() call API to support completions by other mechanisms
29 than readline. Closes #109.
35 than readline. Closes #109.
30
36
31 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
37 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
32 protect against a bug in Python's execfile(). Closes #123.
38 protect against a bug in Python's execfile(). Closes #123.
33
39
34 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
40 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
35
41
36 * IPython/iplib.py (split_user_input): ensure that when splitting
42 * IPython/iplib.py (split_user_input): ensure that when splitting
37 user input, the part that can be treated as a python name is pure
43 user input, the part that can be treated as a python name is pure
38 ascii (Python identifiers MUST be pure ascii). Part of the
44 ascii (Python identifiers MUST be pure ascii). Part of the
39 ongoing Unicode support work.
45 ongoing Unicode support work.
40
46
41 * IPython/Prompts.py (prompt_specials_color): Add \N for the
47 * IPython/Prompts.py (prompt_specials_color): Add \N for the
42 actual prompt number, without any coloring. This allows users to
48 actual prompt number, without any coloring. This allows users to
43 produce numbered prompts with their own colors. Added after a
49 produce numbered prompts with their own colors. Added after a
44 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
50 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
45
51
46 2007-03-31 Walter Doerwald <walter@livinglogic.de>
52 2007-03-31 Walter Doerwald <walter@livinglogic.de>
47
53
48 * IPython/Extensions/igrid.py: Map the return key
54 * IPython/Extensions/igrid.py: Map the return key
49 to enter() and shift-return to enterattr().
55 to enter() and shift-return to enterattr().
50
56
51 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
57 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
52
58
53 * IPython/Magic.py (magic_psearch): add unicode support by
59 * IPython/Magic.py (magic_psearch): add unicode support by
54 encoding to ascii the input, since this routine also only deals
60 encoding to ascii the input, since this routine also only deals
55 with valid Python names. Fixes a bug reported by Stefan.
61 with valid Python names. Fixes a bug reported by Stefan.
56
62
57 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
63 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
58
64
59 * IPython/Magic.py (_inspect): convert unicode input into ascii
65 * IPython/Magic.py (_inspect): convert unicode input into ascii
60 before trying to evaluate it as a Python identifier. This fixes a
66 before trying to evaluate it as a Python identifier. This fixes a
61 problem that the new unicode support had introduced when analyzing
67 problem that the new unicode support had introduced when analyzing
62 long definition lines for functions.
68 long definition lines for functions.
63
69
64 2007-03-24 Walter Doerwald <walter@livinglogic.de>
70 2007-03-24 Walter Doerwald <walter@livinglogic.de>
65
71
66 * IPython/Extensions/igrid.py: Fix picking. Using
72 * IPython/Extensions/igrid.py: Fix picking. Using
67 igrid with wxPython 2.6 and -wthread should work now.
73 igrid with wxPython 2.6 and -wthread should work now.
68 igrid.display() simply tries to create a frame without
74 igrid.display() simply tries to create a frame without
69 an application. Only if this fails an application is created.
75 an application. Only if this fails an application is created.
70
76
71 2007-03-23 Walter Doerwald <walter@livinglogic.de>
77 2007-03-23 Walter Doerwald <walter@livinglogic.de>
72
78
73 * IPython/Extensions/path.py: Updated to version 2.2.
79 * IPython/Extensions/path.py: Updated to version 2.2.
74
80
75 2007-03-23 Ville Vainio <vivainio@gmail.com>
81 2007-03-23 Ville Vainio <vivainio@gmail.com>
76
82
77 * iplib.py: recursive alias expansion now works better, so that
83 * iplib.py: recursive alias expansion now works better, so that
78 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
84 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
79 doesn't trip up the process, if 'd' has been aliased to 'ls'.
85 doesn't trip up the process, if 'd' has been aliased to 'ls'.
80
86
81 * Extensions/ipy_gnuglobal.py added, provides %global magic
87 * Extensions/ipy_gnuglobal.py added, provides %global magic
82 for users of http://www.gnu.org/software/global
88 for users of http://www.gnu.org/software/global
83
89
84 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
90 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
85 Closes #52. Patch by Stefan van der Walt.
91 Closes #52. Patch by Stefan van der Walt.
86
92
87 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
93 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
88
94
89 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
95 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
90 respect the __file__ attribute when using %run. Thanks to a bug
96 respect the __file__ attribute when using %run. Thanks to a bug
91 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
97 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
92
98
93 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
99 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
94
100
95 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
101 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
96 input. Patch sent by Stefan.
102 input. Patch sent by Stefan.
97
103
98 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
104 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
99 * IPython/Extensions/ipy_stock_completer.py
105 * IPython/Extensions/ipy_stock_completer.py
100 shlex_split, fix bug in shlex_split. len function
106 shlex_split, fix bug in shlex_split. len function
101 call was missing an if statement. Caused shlex_split to
107 call was missing an if statement. Caused shlex_split to
102 sometimes return "" as last element.
108 sometimes return "" as last element.
103
109
104 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
110 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
105
111
106 * IPython/completer.py
112 * IPython/completer.py
107 (IPCompleter.file_matches.single_dir_expand): fix a problem
113 (IPCompleter.file_matches.single_dir_expand): fix a problem
108 reported by Stefan, where directories containign a single subdir
114 reported by Stefan, where directories containign a single subdir
109 would be completed too early.
115 would be completed too early.
110
116
111 * IPython/Shell.py (_load_pylab): Make the execution of 'from
117 * IPython/Shell.py (_load_pylab): Make the execution of 'from
112 pylab import *' when -pylab is given be optional. A new flag,
118 pylab import *' when -pylab is given be optional. A new flag,
113 pylab_import_all controls this behavior, the default is True for
119 pylab_import_all controls this behavior, the default is True for
114 backwards compatibility.
120 backwards compatibility.
115
121
116 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
122 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
117 modified) R. Bernstein's patch for fully syntax highlighted
123 modified) R. Bernstein's patch for fully syntax highlighted
118 tracebacks. The functionality is also available under ultraTB for
124 tracebacks. The functionality is also available under ultraTB for
119 non-ipython users (someone using ultraTB but outside an ipython
125 non-ipython users (someone using ultraTB but outside an ipython
120 session). They can select the color scheme by setting the
126 session). They can select the color scheme by setting the
121 module-level global DEFAULT_SCHEME. The highlight functionality
127 module-level global DEFAULT_SCHEME. The highlight functionality
122 also works when debugging.
128 also works when debugging.
123
129
124 * IPython/genutils.py (IOStream.close): small patch by
130 * IPython/genutils.py (IOStream.close): small patch by
125 R. Bernstein for improved pydb support.
131 R. Bernstein for improved pydb support.
126
132
127 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
133 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
128 DaveS <davls@telus.net> to improve support of debugging under
134 DaveS <davls@telus.net> to improve support of debugging under
129 NTEmacs, including improved pydb behavior.
135 NTEmacs, including improved pydb behavior.
130
136
131 * IPython/Magic.py (magic_prun): Fix saving of profile info for
137 * IPython/Magic.py (magic_prun): Fix saving of profile info for
132 Python 2.5, where the stats object API changed a little. Thanks
138 Python 2.5, where the stats object API changed a little. Thanks
133 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
139 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
134
140
135 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
141 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
136 Pernetty's patch to improve support for (X)Emacs under Win32.
142 Pernetty's patch to improve support for (X)Emacs under Win32.
137
143
138 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
144 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
139
145
140 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
146 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
141 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
147 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
142 a report by Nik Tautenhahn.
148 a report by Nik Tautenhahn.
143
149
144 2007-03-16 Walter Doerwald <walter@livinglogic.de>
150 2007-03-16 Walter Doerwald <walter@livinglogic.de>
145
151
146 * setup.py: Add the igrid help files to the list of data files
152 * setup.py: Add the igrid help files to the list of data files
147 to be installed alongside igrid.
153 to be installed alongside igrid.
148 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
154 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
149 Show the input object of the igrid browser as the window tile.
155 Show the input object of the igrid browser as the window tile.
150 Show the object the cursor is on in the statusbar.
156 Show the object the cursor is on in the statusbar.
151
157
152 2007-03-15 Ville Vainio <vivainio@gmail.com>
158 2007-03-15 Ville Vainio <vivainio@gmail.com>
153
159
154 * Extensions/ipy_stock_completers.py: Fixed exception
160 * Extensions/ipy_stock_completers.py: Fixed exception
155 on mismatching quotes in %run completer. Patch by
161 on mismatching quotes in %run completer. Patch by
156 JοΏ½rgen Stenarson. Closes #127.
162 JοΏ½rgen Stenarson. Closes #127.
157
163
158 2007-03-14 Ville Vainio <vivainio@gmail.com>
164 2007-03-14 Ville Vainio <vivainio@gmail.com>
159
165
160 * Extensions/ext_rehashdir.py: Do not do auto_alias
166 * Extensions/ext_rehashdir.py: Do not do auto_alias
161 in %rehashdir, it clobbers %store'd aliases.
167 in %rehashdir, it clobbers %store'd aliases.
162
168
163 * UserConfig/ipy_profile_sh.py: envpersist.py extension
169 * UserConfig/ipy_profile_sh.py: envpersist.py extension
164 (beefed up %env) imported for sh profile.
170 (beefed up %env) imported for sh profile.
165
171
166 2007-03-10 Walter Doerwald <walter@livinglogic.de>
172 2007-03-10 Walter Doerwald <walter@livinglogic.de>
167
173
168 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
174 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
169 as the default browser.
175 as the default browser.
170 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
176 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
171 As igrid displays all attributes it ever encounters, fetch() (which has
177 As igrid displays all attributes it ever encounters, fetch() (which has
172 been renamed to _fetch()) doesn't have to recalculate the display attributes
178 been renamed to _fetch()) doesn't have to recalculate the display attributes
173 every time a new item is fetched. This should speed up scrolling.
179 every time a new item is fetched. This should speed up scrolling.
174
180
175 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
181 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
176
182
177 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
183 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
178 Schmolck's recently reported tab-completion bug (my previous one
184 Schmolck's recently reported tab-completion bug (my previous one
179 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
185 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
180
186
181 2007-03-09 Walter Doerwald <walter@livinglogic.de>
187 2007-03-09 Walter Doerwald <walter@livinglogic.de>
182
188
183 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
189 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
184 Close help window if exiting igrid.
190 Close help window if exiting igrid.
185
191
186 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
192 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
187
193
188 * IPython/Extensions/ipy_defaults.py: Check if readline is available
194 * IPython/Extensions/ipy_defaults.py: Check if readline is available
189 before calling functions from readline.
195 before calling functions from readline.
190
196
191 2007-03-02 Walter Doerwald <walter@livinglogic.de>
197 2007-03-02 Walter Doerwald <walter@livinglogic.de>
192
198
193 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
199 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
194 igrid is a wxPython-based display object for ipipe. If your system has
200 igrid is a wxPython-based display object for ipipe. If your system has
195 wx installed igrid will be the default display. Without wx ipipe falls
201 wx installed igrid will be the default display. Without wx ipipe falls
196 back to ibrowse (which needs curses). If no curses is installed ipipe
202 back to ibrowse (which needs curses). If no curses is installed ipipe
197 falls back to idump.
203 falls back to idump.
198
204
199 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
205 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
200
206
201 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
207 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
202 my changes from yesterday, they introduced bugs. Will reactivate
208 my changes from yesterday, they introduced bugs. Will reactivate
203 once I get a correct solution, which will be much easier thanks to
209 once I get a correct solution, which will be much easier thanks to
204 Dan Milstein's new prefilter test suite.
210 Dan Milstein's new prefilter test suite.
205
211
206 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
212 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
207
213
208 * IPython/iplib.py (split_user_input): fix input splitting so we
214 * IPython/iplib.py (split_user_input): fix input splitting so we
209 don't attempt attribute accesses on things that can't possibly be
215 don't attempt attribute accesses on things that can't possibly be
210 valid Python attributes. After a bug report by Alex Schmolck.
216 valid Python attributes. After a bug report by Alex Schmolck.
211 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
217 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
212 %magic with explicit % prefix.
218 %magic with explicit % prefix.
213
219
214 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
220 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
215
221
216 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
222 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
217 avoid a DeprecationWarning from GTK.
223 avoid a DeprecationWarning from GTK.
218
224
219 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
225 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
220
226
221 * IPython/genutils.py (clock): I modified clock() to return total
227 * IPython/genutils.py (clock): I modified clock() to return total
222 time, user+system. This is a more commonly needed metric. I also
228 time, user+system. This is a more commonly needed metric. I also
223 introduced the new clocku/clocks to get only user/system time if
229 introduced the new clocku/clocks to get only user/system time if
224 one wants those instead.
230 one wants those instead.
225
231
226 ***WARNING: API CHANGE*** clock() used to return only user time,
232 ***WARNING: API CHANGE*** clock() used to return only user time,
227 so if you want exactly the same results as before, use clocku
233 so if you want exactly the same results as before, use clocku
228 instead.
234 instead.
229
235
230 2007-02-22 Ville Vainio <vivainio@gmail.com>
236 2007-02-22 Ville Vainio <vivainio@gmail.com>
231
237
232 * IPython/Extensions/ipy_p4.py: Extension for improved
238 * IPython/Extensions/ipy_p4.py: Extension for improved
233 p4 (perforce version control system) experience.
239 p4 (perforce version control system) experience.
234 Adds %p4 magic with p4 command completion and
240 Adds %p4 magic with p4 command completion and
235 automatic -G argument (marshall output as python dict)
241 automatic -G argument (marshall output as python dict)
236
242
237 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
243 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
238
244
239 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
245 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
240 stop marks.
246 stop marks.
241 (ClearingMixin): a simple mixin to easily make a Demo class clear
247 (ClearingMixin): a simple mixin to easily make a Demo class clear
242 the screen in between blocks and have empty marquees. The
248 the screen in between blocks and have empty marquees. The
243 ClearDemo and ClearIPDemo classes that use it are included.
249 ClearDemo and ClearIPDemo classes that use it are included.
244
250
245 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
251 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
246
252
247 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
253 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
248 protect against exceptions at Python shutdown time. Patch
254 protect against exceptions at Python shutdown time. Patch
249 sumbmitted to upstream.
255 sumbmitted to upstream.
250
256
251 2007-02-14 Walter Doerwald <walter@livinglogic.de>
257 2007-02-14 Walter Doerwald <walter@livinglogic.de>
252
258
253 * IPython/Extensions/ibrowse.py: If entering the first object level
259 * IPython/Extensions/ibrowse.py: If entering the first object level
254 (i.e. the object for which the browser has been started) fails,
260 (i.e. the object for which the browser has been started) fails,
255 now the error is raised directly (aborting the browser) instead of
261 now the error is raised directly (aborting the browser) instead of
256 running into an empty levels list later.
262 running into an empty levels list later.
257
263
258 2007-02-03 Walter Doerwald <walter@livinglogic.de>
264 2007-02-03 Walter Doerwald <walter@livinglogic.de>
259
265
260 * IPython/Extensions/ipipe.py: Add an xrepr implementation
266 * IPython/Extensions/ipipe.py: Add an xrepr implementation
261 for the noitem object.
267 for the noitem object.
262
268
263 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
269 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
264
270
265 * IPython/completer.py (Completer.attr_matches): Fix small
271 * IPython/completer.py (Completer.attr_matches): Fix small
266 tab-completion bug with Enthought Traits objects with units.
272 tab-completion bug with Enthought Traits objects with units.
267 Thanks to a bug report by Tom Denniston
273 Thanks to a bug report by Tom Denniston
268 <tom.denniston-AT-alum.dartmouth.org>.
274 <tom.denniston-AT-alum.dartmouth.org>.
269
275
270 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
276 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
271
277
272 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
278 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
273 bug where only .ipy or .py would be completed. Once the first
279 bug where only .ipy or .py would be completed. Once the first
274 argument to %run has been given, all completions are valid because
280 argument to %run has been given, all completions are valid because
275 they are the arguments to the script, which may well be non-python
281 they are the arguments to the script, which may well be non-python
276 filenames.
282 filenames.
277
283
278 * IPython/irunner.py (InteractiveRunner.run_source): major updates
284 * IPython/irunner.py (InteractiveRunner.run_source): major updates
279 to irunner to allow it to correctly support real doctesting of
285 to irunner to allow it to correctly support real doctesting of
280 out-of-process ipython code.
286 out-of-process ipython code.
281
287
282 * IPython/Magic.py (magic_cd): Make the setting of the terminal
288 * IPython/Magic.py (magic_cd): Make the setting of the terminal
283 title an option (-noterm_title) because it completely breaks
289 title an option (-noterm_title) because it completely breaks
284 doctesting.
290 doctesting.
285
291
286 * IPython/demo.py: fix IPythonDemo class that was not actually working.
292 * IPython/demo.py: fix IPythonDemo class that was not actually working.
287
293
288 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
294 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
289
295
290 * IPython/irunner.py (main): fix small bug where extensions were
296 * IPython/irunner.py (main): fix small bug where extensions were
291 not being correctly recognized.
297 not being correctly recognized.
292
298
293 2007-01-23 Walter Doerwald <walter@livinglogic.de>
299 2007-01-23 Walter Doerwald <walter@livinglogic.de>
294
300
295 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
301 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
296 a string containing a single line yields the string itself as the
302 a string containing a single line yields the string itself as the
297 only item.
303 only item.
298
304
299 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
305 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
300 object if it's the same as the one on the last level (This avoids
306 object if it's the same as the one on the last level (This avoids
301 infinite recursion for one line strings).
307 infinite recursion for one line strings).
302
308
303 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
309 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
304
310
305 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
311 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
306 all output streams before printing tracebacks. This ensures that
312 all output streams before printing tracebacks. This ensures that
307 user output doesn't end up interleaved with traceback output.
313 user output doesn't end up interleaved with traceback output.
308
314
309 2007-01-10 Ville Vainio <vivainio@gmail.com>
315 2007-01-10 Ville Vainio <vivainio@gmail.com>
310
316
311 * Extensions/envpersist.py: Turbocharged %env that remembers
317 * Extensions/envpersist.py: Turbocharged %env that remembers
312 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
318 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
313 "%env VISUAL=jed".
319 "%env VISUAL=jed".
314
320
315 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
321 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
316
322
317 * IPython/iplib.py (showtraceback): ensure that we correctly call
323 * IPython/iplib.py (showtraceback): ensure that we correctly call
318 custom handlers in all cases (some with pdb were slipping through,
324 custom handlers in all cases (some with pdb were slipping through,
319 but I'm not exactly sure why).
325 but I'm not exactly sure why).
320
326
321 * IPython/Debugger.py (Tracer.__init__): added new class to
327 * IPython/Debugger.py (Tracer.__init__): added new class to
322 support set_trace-like usage of IPython's enhanced debugger.
328 support set_trace-like usage of IPython's enhanced debugger.
323
329
324 2006-12-24 Ville Vainio <vivainio@gmail.com>
330 2006-12-24 Ville Vainio <vivainio@gmail.com>
325
331
326 * ipmaker.py: more informative message when ipy_user_conf
332 * ipmaker.py: more informative message when ipy_user_conf
327 import fails (suggest running %upgrade).
333 import fails (suggest running %upgrade).
328
334
329 * tools/run_ipy_in_profiler.py: Utility to see where
335 * tools/run_ipy_in_profiler.py: Utility to see where
330 the time during IPython startup is spent.
336 the time during IPython startup is spent.
331
337
332 2006-12-20 Ville Vainio <vivainio@gmail.com>
338 2006-12-20 Ville Vainio <vivainio@gmail.com>
333
339
334 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
340 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
335
341
336 * ipapi.py: Add new ipapi method, expand_alias.
342 * ipapi.py: Add new ipapi method, expand_alias.
337
343
338 * Release.py: Bump up version to 0.7.4.svn
344 * Release.py: Bump up version to 0.7.4.svn
339
345
340 2006-12-17 Ville Vainio <vivainio@gmail.com>
346 2006-12-17 Ville Vainio <vivainio@gmail.com>
341
347
342 * Extensions/jobctrl.py: Fixed &cmd arg arg...
348 * Extensions/jobctrl.py: Fixed &cmd arg arg...
343 to work properly on posix too
349 to work properly on posix too
344
350
345 * Release.py: Update revnum (version is still just 0.7.3).
351 * Release.py: Update revnum (version is still just 0.7.3).
346
352
347 2006-12-15 Ville Vainio <vivainio@gmail.com>
353 2006-12-15 Ville Vainio <vivainio@gmail.com>
348
354
349 * scripts/ipython_win_post_install: create ipython.py in
355 * scripts/ipython_win_post_install: create ipython.py in
350 prefix + "/scripts".
356 prefix + "/scripts".
351
357
352 * Release.py: Update version to 0.7.3.
358 * Release.py: Update version to 0.7.3.
353
359
354 2006-12-14 Ville Vainio <vivainio@gmail.com>
360 2006-12-14 Ville Vainio <vivainio@gmail.com>
355
361
356 * scripts/ipython_win_post_install: Overwrite old shortcuts
362 * scripts/ipython_win_post_install: Overwrite old shortcuts
357 if they already exist
363 if they already exist
358
364
359 * Release.py: release 0.7.3rc2
365 * Release.py: release 0.7.3rc2
360
366
361 2006-12-13 Ville Vainio <vivainio@gmail.com>
367 2006-12-13 Ville Vainio <vivainio@gmail.com>
362
368
363 * Branch and update Release.py for 0.7.3rc1
369 * Branch and update Release.py for 0.7.3rc1
364
370
365 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
371 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
366
372
367 * IPython/Shell.py (IPShellWX): update for current WX naming
373 * IPython/Shell.py (IPShellWX): update for current WX naming
368 conventions, to avoid a deprecation warning with current WX
374 conventions, to avoid a deprecation warning with current WX
369 versions. Thanks to a report by Danny Shevitz.
375 versions. Thanks to a report by Danny Shevitz.
370
376
371 2006-12-12 Ville Vainio <vivainio@gmail.com>
377 2006-12-12 Ville Vainio <vivainio@gmail.com>
372
378
373 * ipmaker.py: apply david cournapeau's patch to make
379 * ipmaker.py: apply david cournapeau's patch to make
374 import_some work properly even when ipythonrc does
380 import_some work properly even when ipythonrc does
375 import_some on empty list (it was an old bug!).
381 import_some on empty list (it was an old bug!).
376
382
377 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
383 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
378 Add deprecation note to ipythonrc and a url to wiki
384 Add deprecation note to ipythonrc and a url to wiki
379 in ipy_user_conf.py
385 in ipy_user_conf.py
380
386
381
387
382 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
388 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
383 as if it was typed on IPython command prompt, i.e.
389 as if it was typed on IPython command prompt, i.e.
384 as IPython script.
390 as IPython script.
385
391
386 * example-magic.py, magic_grepl.py: remove outdated examples
392 * example-magic.py, magic_grepl.py: remove outdated examples
387
393
388 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
394 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
389
395
390 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
396 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
391 is called before any exception has occurred.
397 is called before any exception has occurred.
392
398
393 2006-12-08 Ville Vainio <vivainio@gmail.com>
399 2006-12-08 Ville Vainio <vivainio@gmail.com>
394
400
395 * Extensions/ipy_stock_completers.py: fix cd completer
401 * Extensions/ipy_stock_completers.py: fix cd completer
396 to translate /'s to \'s again.
402 to translate /'s to \'s again.
397
403
398 * completer.py: prevent traceback on file completions w/
404 * completer.py: prevent traceback on file completions w/
399 backslash.
405 backslash.
400
406
401 * Release.py: Update release number to 0.7.3b3 for release
407 * Release.py: Update release number to 0.7.3b3 for release
402
408
403 2006-12-07 Ville Vainio <vivainio@gmail.com>
409 2006-12-07 Ville Vainio <vivainio@gmail.com>
404
410
405 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
411 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
406 while executing external code. Provides more shell-like behaviour
412 while executing external code. Provides more shell-like behaviour
407 and overall better response to ctrl + C / ctrl + break.
413 and overall better response to ctrl + C / ctrl + break.
408
414
409 * tools/make_tarball.py: new script to create tarball straight from svn
415 * tools/make_tarball.py: new script to create tarball straight from svn
410 (setup.py sdist doesn't work on win32).
416 (setup.py sdist doesn't work on win32).
411
417
412 * Extensions/ipy_stock_completers.py: fix cd completer to give up
418 * Extensions/ipy_stock_completers.py: fix cd completer to give up
413 on dirnames with spaces and use the default completer instead.
419 on dirnames with spaces and use the default completer instead.
414
420
415 * Revision.py: Change version to 0.7.3b2 for release.
421 * Revision.py: Change version to 0.7.3b2 for release.
416
422
417 2006-12-05 Ville Vainio <vivainio@gmail.com>
423 2006-12-05 Ville Vainio <vivainio@gmail.com>
418
424
419 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
425 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
420 pydb patch 4 (rm debug printing, py 2.5 checking)
426 pydb patch 4 (rm debug printing, py 2.5 checking)
421
427
422 2006-11-30 Walter Doerwald <walter@livinglogic.de>
428 2006-11-30 Walter Doerwald <walter@livinglogic.de>
423 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
429 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
424 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
430 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
425 "refreshfind" (mapped to "R") does the same but tries to go back to the same
431 "refreshfind" (mapped to "R") does the same but tries to go back to the same
426 object the cursor was on before the refresh. The command "markrange" is
432 object the cursor was on before the refresh. The command "markrange" is
427 mapped to "%" now.
433 mapped to "%" now.
428 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
434 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
429
435
430 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
436 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
431
437
432 * IPython/Magic.py (magic_debug): new %debug magic to activate the
438 * IPython/Magic.py (magic_debug): new %debug magic to activate the
433 interactive debugger on the last traceback, without having to call
439 interactive debugger on the last traceback, without having to call
434 %pdb and rerun your code. Made minor changes in various modules,
440 %pdb and rerun your code. Made minor changes in various modules,
435 should automatically recognize pydb if available.
441 should automatically recognize pydb if available.
436
442
437 2006-11-28 Ville Vainio <vivainio@gmail.com>
443 2006-11-28 Ville Vainio <vivainio@gmail.com>
438
444
439 * completer.py: If the text start with !, show file completions
445 * completer.py: If the text start with !, show file completions
440 properly. This helps when trying to complete command name
446 properly. This helps when trying to complete command name
441 for shell escapes.
447 for shell escapes.
442
448
443 2006-11-27 Ville Vainio <vivainio@gmail.com>
449 2006-11-27 Ville Vainio <vivainio@gmail.com>
444
450
445 * ipy_stock_completers.py: bzr completer submitted by Stefan van
451 * ipy_stock_completers.py: bzr completer submitted by Stefan van
446 der Walt. Clean up svn and hg completers by using a common
452 der Walt. Clean up svn and hg completers by using a common
447 vcs_completer.
453 vcs_completer.
448
454
449 2006-11-26 Ville Vainio <vivainio@gmail.com>
455 2006-11-26 Ville Vainio <vivainio@gmail.com>
450
456
451 * Remove ipconfig and %config; you should use _ip.options structure
457 * Remove ipconfig and %config; you should use _ip.options structure
452 directly instead!
458 directly instead!
453
459
454 * genutils.py: add wrap_deprecated function for deprecating callables
460 * genutils.py: add wrap_deprecated function for deprecating callables
455
461
456 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
462 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
457 _ip.system instead. ipalias is redundant.
463 _ip.system instead. ipalias is redundant.
458
464
459 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
465 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
460 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
466 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
461 explicit.
467 explicit.
462
468
463 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
469 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
464 completer. Try it by entering 'hg ' and pressing tab.
470 completer. Try it by entering 'hg ' and pressing tab.
465
471
466 * macro.py: Give Macro a useful __repr__ method
472 * macro.py: Give Macro a useful __repr__ method
467
473
468 * Magic.py: %whos abbreviates the typename of Macro for brevity.
474 * Magic.py: %whos abbreviates the typename of Macro for brevity.
469
475
470 2006-11-24 Walter Doerwald <walter@livinglogic.de>
476 2006-11-24 Walter Doerwald <walter@livinglogic.de>
471 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
477 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
472 we don't get a duplicate ipipe module, where registration of the xrepr
478 we don't get a duplicate ipipe module, where registration of the xrepr
473 implementation for Text is useless.
479 implementation for Text is useless.
474
480
475 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
481 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
476
482
477 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
483 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
478
484
479 2006-11-24 Ville Vainio <vivainio@gmail.com>
485 2006-11-24 Ville Vainio <vivainio@gmail.com>
480
486
481 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
487 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
482 try to use "cProfile" instead of the slower pure python
488 try to use "cProfile" instead of the slower pure python
483 "profile"
489 "profile"
484
490
485 2006-11-23 Ville Vainio <vivainio@gmail.com>
491 2006-11-23 Ville Vainio <vivainio@gmail.com>
486
492
487 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
493 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
488 Qt+IPython+Designer link in documentation.
494 Qt+IPython+Designer link in documentation.
489
495
490 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
496 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
491 correct Pdb object to %pydb.
497 correct Pdb object to %pydb.
492
498
493
499
494 2006-11-22 Walter Doerwald <walter@livinglogic.de>
500 2006-11-22 Walter Doerwald <walter@livinglogic.de>
495 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
501 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
496 generic xrepr(), otherwise the list implementation would kick in.
502 generic xrepr(), otherwise the list implementation would kick in.
497
503
498 2006-11-21 Ville Vainio <vivainio@gmail.com>
504 2006-11-21 Ville Vainio <vivainio@gmail.com>
499
505
500 * upgrade_dir.py: Now actually overwrites a nonmodified user file
506 * upgrade_dir.py: Now actually overwrites a nonmodified user file
501 with one from UserConfig.
507 with one from UserConfig.
502
508
503 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
509 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
504 it was missing which broke the sh profile.
510 it was missing which broke the sh profile.
505
511
506 * completer.py: file completer now uses explicit '/' instead
512 * completer.py: file completer now uses explicit '/' instead
507 of os.path.join, expansion of 'foo' was broken on win32
513 of os.path.join, expansion of 'foo' was broken on win32
508 if there was one directory with name 'foobar'.
514 if there was one directory with name 'foobar'.
509
515
510 * A bunch of patches from Kirill Smelkov:
516 * A bunch of patches from Kirill Smelkov:
511
517
512 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
518 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
513
519
514 * [patch 7/9] Implement %page -r (page in raw mode) -
520 * [patch 7/9] Implement %page -r (page in raw mode) -
515
521
516 * [patch 5/9] ScientificPython webpage has moved
522 * [patch 5/9] ScientificPython webpage has moved
517
523
518 * [patch 4/9] The manual mentions %ds, should be %dhist
524 * [patch 4/9] The manual mentions %ds, should be %dhist
519
525
520 * [patch 3/9] Kill old bits from %prun doc.
526 * [patch 3/9] Kill old bits from %prun doc.
521
527
522 * [patch 1/9] Fix typos here and there.
528 * [patch 1/9] Fix typos here and there.
523
529
524 2006-11-08 Ville Vainio <vivainio@gmail.com>
530 2006-11-08 Ville Vainio <vivainio@gmail.com>
525
531
526 * completer.py (attr_matches): catch all exceptions raised
532 * completer.py (attr_matches): catch all exceptions raised
527 by eval of expr with dots.
533 by eval of expr with dots.
528
534
529 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
535 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
530
536
531 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
537 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
532 input if it starts with whitespace. This allows you to paste
538 input if it starts with whitespace. This allows you to paste
533 indented input from any editor without manually having to type in
539 indented input from any editor without manually having to type in
534 the 'if 1:', which is convenient when working interactively.
540 the 'if 1:', which is convenient when working interactively.
535 Slightly modifed version of a patch by Bo Peng
541 Slightly modifed version of a patch by Bo Peng
536 <bpeng-AT-rice.edu>.
542 <bpeng-AT-rice.edu>.
537
543
538 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
544 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
539
545
540 * IPython/irunner.py (main): modified irunner so it automatically
546 * IPython/irunner.py (main): modified irunner so it automatically
541 recognizes the right runner to use based on the extension (.py for
547 recognizes the right runner to use based on the extension (.py for
542 python, .ipy for ipython and .sage for sage).
548 python, .ipy for ipython and .sage for sage).
543
549
544 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
550 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
545 visible in ipapi as ip.config(), to programatically control the
551 visible in ipapi as ip.config(), to programatically control the
546 internal rc object. There's an accompanying %config magic for
552 internal rc object. There's an accompanying %config magic for
547 interactive use, which has been enhanced to match the
553 interactive use, which has been enhanced to match the
548 funtionality in ipconfig.
554 funtionality in ipconfig.
549
555
550 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
556 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
551 so it's not just a toggle, it now takes an argument. Add support
557 so it's not just a toggle, it now takes an argument. Add support
552 for a customizable header when making system calls, as the new
558 for a customizable header when making system calls, as the new
553 system_header variable in the ipythonrc file.
559 system_header variable in the ipythonrc file.
554
560
555 2006-11-03 Walter Doerwald <walter@livinglogic.de>
561 2006-11-03 Walter Doerwald <walter@livinglogic.de>
556
562
557 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
563 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
558 generic functions (using Philip J. Eby's simplegeneric package).
564 generic functions (using Philip J. Eby's simplegeneric package).
559 This makes it possible to customize the display of third-party classes
565 This makes it possible to customize the display of third-party classes
560 without having to monkeypatch them. xiter() no longer supports a mode
566 without having to monkeypatch them. xiter() no longer supports a mode
561 argument and the XMode class has been removed. The same functionality can
567 argument and the XMode class has been removed. The same functionality can
562 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
568 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
563 One consequence of the switch to generic functions is that xrepr() and
569 One consequence of the switch to generic functions is that xrepr() and
564 xattrs() implementation must define the default value for the mode
570 xattrs() implementation must define the default value for the mode
565 argument themselves and xattrs() implementations must return real
571 argument themselves and xattrs() implementations must return real
566 descriptors.
572 descriptors.
567
573
568 * IPython/external: This new subpackage will contain all third-party
574 * IPython/external: This new subpackage will contain all third-party
569 packages that are bundled with IPython. (The first one is simplegeneric).
575 packages that are bundled with IPython. (The first one is simplegeneric).
570
576
571 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
577 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
572 directory which as been dropped in r1703.
578 directory which as been dropped in r1703.
573
579
574 * IPython/Extensions/ipipe.py (iless): Fixed.
580 * IPython/Extensions/ipipe.py (iless): Fixed.
575
581
576 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
582 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
577
583
578 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
584 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
579
585
580 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
586 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
581 handling in variable expansion so that shells and magics recognize
587 handling in variable expansion so that shells and magics recognize
582 function local scopes correctly. Bug reported by Brian.
588 function local scopes correctly. Bug reported by Brian.
583
589
584 * scripts/ipython: remove the very first entry in sys.path which
590 * scripts/ipython: remove the very first entry in sys.path which
585 Python auto-inserts for scripts, so that sys.path under IPython is
591 Python auto-inserts for scripts, so that sys.path under IPython is
586 as similar as possible to that under plain Python.
592 as similar as possible to that under plain Python.
587
593
588 * IPython/completer.py (IPCompleter.file_matches): Fix
594 * IPython/completer.py (IPCompleter.file_matches): Fix
589 tab-completion so that quotes are not closed unless the completion
595 tab-completion so that quotes are not closed unless the completion
590 is unambiguous. After a request by Stefan. Minor cleanups in
596 is unambiguous. After a request by Stefan. Minor cleanups in
591 ipy_stock_completers.
597 ipy_stock_completers.
592
598
593 2006-11-02 Ville Vainio <vivainio@gmail.com>
599 2006-11-02 Ville Vainio <vivainio@gmail.com>
594
600
595 * ipy_stock_completers.py: Add %run and %cd completers.
601 * ipy_stock_completers.py: Add %run and %cd completers.
596
602
597 * completer.py: Try running custom completer for both
603 * completer.py: Try running custom completer for both
598 "foo" and "%foo" if the command is just "foo". Ignore case
604 "foo" and "%foo" if the command is just "foo". Ignore case
599 when filtering possible completions.
605 when filtering possible completions.
600
606
601 * UserConfig/ipy_user_conf.py: install stock completers as default
607 * UserConfig/ipy_user_conf.py: install stock completers as default
602
608
603 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
609 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
604 simplified readline history save / restore through a wrapper
610 simplified readline history save / restore through a wrapper
605 function
611 function
606
612
607
613
608 2006-10-31 Ville Vainio <vivainio@gmail.com>
614 2006-10-31 Ville Vainio <vivainio@gmail.com>
609
615
610 * strdispatch.py, completer.py, ipy_stock_completers.py:
616 * strdispatch.py, completer.py, ipy_stock_completers.py:
611 Allow str_key ("command") in completer hooks. Implement
617 Allow str_key ("command") in completer hooks. Implement
612 trivial completer for 'import' (stdlib modules only). Rename
618 trivial completer for 'import' (stdlib modules only). Rename
613 ipy_linux_package_managers.py to ipy_stock_completers.py.
619 ipy_linux_package_managers.py to ipy_stock_completers.py.
614 SVN completer.
620 SVN completer.
615
621
616 * Extensions/ledit.py: %magic line editor for easily and
622 * Extensions/ledit.py: %magic line editor for easily and
617 incrementally manipulating lists of strings. The magic command
623 incrementally manipulating lists of strings. The magic command
618 name is %led.
624 name is %led.
619
625
620 2006-10-30 Ville Vainio <vivainio@gmail.com>
626 2006-10-30 Ville Vainio <vivainio@gmail.com>
621
627
622 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
628 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
623 Bernsteins's patches for pydb integration.
629 Bernsteins's patches for pydb integration.
624 http://bashdb.sourceforge.net/pydb/
630 http://bashdb.sourceforge.net/pydb/
625
631
626 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
632 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
627 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
633 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
628 custom completer hook to allow the users to implement their own
634 custom completer hook to allow the users to implement their own
629 completers. See ipy_linux_package_managers.py for example. The
635 completers. See ipy_linux_package_managers.py for example. The
630 hook name is 'complete_command'.
636 hook name is 'complete_command'.
631
637
632 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
638 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
633
639
634 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
640 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
635 Numeric leftovers.
641 Numeric leftovers.
636
642
637 * ipython.el (py-execute-region): apply Stefan's patch to fix
643 * ipython.el (py-execute-region): apply Stefan's patch to fix
638 garbled results if the python shell hasn't been previously started.
644 garbled results if the python shell hasn't been previously started.
639
645
640 * IPython/genutils.py (arg_split): moved to genutils, since it's a
646 * IPython/genutils.py (arg_split): moved to genutils, since it's a
641 pretty generic function and useful for other things.
647 pretty generic function and useful for other things.
642
648
643 * IPython/OInspect.py (getsource): Add customizable source
649 * IPython/OInspect.py (getsource): Add customizable source
644 extractor. After a request/patch form W. Stein (SAGE).
650 extractor. After a request/patch form W. Stein (SAGE).
645
651
646 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
652 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
647 window size to a more reasonable value from what pexpect does,
653 window size to a more reasonable value from what pexpect does,
648 since their choice causes wrapping bugs with long input lines.
654 since their choice causes wrapping bugs with long input lines.
649
655
650 2006-10-28 Ville Vainio <vivainio@gmail.com>
656 2006-10-28 Ville Vainio <vivainio@gmail.com>
651
657
652 * Magic.py (%run): Save and restore the readline history from
658 * Magic.py (%run): Save and restore the readline history from
653 file around %run commands to prevent side effects from
659 file around %run commands to prevent side effects from
654 %runned programs that might use readline (e.g. pydb).
660 %runned programs that might use readline (e.g. pydb).
655
661
656 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
662 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
657 invoking the pydb enhanced debugger.
663 invoking the pydb enhanced debugger.
658
664
659 2006-10-23 Walter Doerwald <walter@livinglogic.de>
665 2006-10-23 Walter Doerwald <walter@livinglogic.de>
660
666
661 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
667 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
662 call the base class method and propagate the return value to
668 call the base class method and propagate the return value to
663 ifile. This is now done by path itself.
669 ifile. This is now done by path itself.
664
670
665 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
671 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
666
672
667 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
673 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
668 api: set_crash_handler(), to expose the ability to change the
674 api: set_crash_handler(), to expose the ability to change the
669 internal crash handler.
675 internal crash handler.
670
676
671 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
677 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
672 the various parameters of the crash handler so that apps using
678 the various parameters of the crash handler so that apps using
673 IPython as their engine can customize crash handling. Ipmlemented
679 IPython as their engine can customize crash handling. Ipmlemented
674 at the request of SAGE.
680 at the request of SAGE.
675
681
676 2006-10-14 Ville Vainio <vivainio@gmail.com>
682 2006-10-14 Ville Vainio <vivainio@gmail.com>
677
683
678 * Magic.py, ipython.el: applied first "safe" part of Rocky
684 * Magic.py, ipython.el: applied first "safe" part of Rocky
679 Bernstein's patch set for pydb integration.
685 Bernstein's patch set for pydb integration.
680
686
681 * Magic.py (%unalias, %alias): %store'd aliases can now be
687 * Magic.py (%unalias, %alias): %store'd aliases can now be
682 removed with '%unalias'. %alias w/o args now shows most
688 removed with '%unalias'. %alias w/o args now shows most
683 interesting (stored / manually defined) aliases last
689 interesting (stored / manually defined) aliases last
684 where they catch the eye w/o scrolling.
690 where they catch the eye w/o scrolling.
685
691
686 * Magic.py (%rehashx), ext_rehashdir.py: files with
692 * Magic.py (%rehashx), ext_rehashdir.py: files with
687 'py' extension are always considered executable, even
693 'py' extension are always considered executable, even
688 when not in PATHEXT environment variable.
694 when not in PATHEXT environment variable.
689
695
690 2006-10-12 Ville Vainio <vivainio@gmail.com>
696 2006-10-12 Ville Vainio <vivainio@gmail.com>
691
697
692 * jobctrl.py: Add new "jobctrl" extension for spawning background
698 * jobctrl.py: Add new "jobctrl" extension for spawning background
693 processes with "&find /". 'import jobctrl' to try it out. Requires
699 processes with "&find /". 'import jobctrl' to try it out. Requires
694 'subprocess' module, standard in python 2.4+.
700 'subprocess' module, standard in python 2.4+.
695
701
696 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
702 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
697 so if foo -> bar and bar -> baz, then foo -> baz.
703 so if foo -> bar and bar -> baz, then foo -> baz.
698
704
699 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
705 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
700
706
701 * IPython/Magic.py (Magic.parse_options): add a new posix option
707 * IPython/Magic.py (Magic.parse_options): add a new posix option
702 to allow parsing of input args in magics that doesn't strip quotes
708 to allow parsing of input args in magics that doesn't strip quotes
703 (if posix=False). This also closes %timeit bug reported by
709 (if posix=False). This also closes %timeit bug reported by
704 Stefan.
710 Stefan.
705
711
706 2006-10-03 Ville Vainio <vivainio@gmail.com>
712 2006-10-03 Ville Vainio <vivainio@gmail.com>
707
713
708 * iplib.py (raw_input, interact): Return ValueError catching for
714 * iplib.py (raw_input, interact): Return ValueError catching for
709 raw_input. Fixes infinite loop for sys.stdin.close() or
715 raw_input. Fixes infinite loop for sys.stdin.close() or
710 sys.stdout.close().
716 sys.stdout.close().
711
717
712 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
718 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
713
719
714 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
720 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
715 to help in handling doctests. irunner is now pretty useful for
721 to help in handling doctests. irunner is now pretty useful for
716 running standalone scripts and simulate a full interactive session
722 running standalone scripts and simulate a full interactive session
717 in a format that can be then pasted as a doctest.
723 in a format that can be then pasted as a doctest.
718
724
719 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
725 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
720 on top of the default (useless) ones. This also fixes the nasty
726 on top of the default (useless) ones. This also fixes the nasty
721 way in which 2.5's Quitter() exits (reverted [1785]).
727 way in which 2.5's Quitter() exits (reverted [1785]).
722
728
723 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
729 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
724 2.5.
730 2.5.
725
731
726 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
732 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
727 color scheme is updated as well when color scheme is changed
733 color scheme is updated as well when color scheme is changed
728 interactively.
734 interactively.
729
735
730 2006-09-27 Ville Vainio <vivainio@gmail.com>
736 2006-09-27 Ville Vainio <vivainio@gmail.com>
731
737
732 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
738 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
733 infinite loop and just exit. It's a hack, but will do for a while.
739 infinite loop and just exit. It's a hack, but will do for a while.
734
740
735 2006-08-25 Walter Doerwald <walter@livinglogic.de>
741 2006-08-25 Walter Doerwald <walter@livinglogic.de>
736
742
737 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
743 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
738 the constructor, this makes it possible to get a list of only directories
744 the constructor, this makes it possible to get a list of only directories
739 or only files.
745 or only files.
740
746
741 2006-08-12 Ville Vainio <vivainio@gmail.com>
747 2006-08-12 Ville Vainio <vivainio@gmail.com>
742
748
743 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
749 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
744 they broke unittest
750 they broke unittest
745
751
746 2006-08-11 Ville Vainio <vivainio@gmail.com>
752 2006-08-11 Ville Vainio <vivainio@gmail.com>
747
753
748 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
754 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
749 by resolving issue properly, i.e. by inheriting FakeModule
755 by resolving issue properly, i.e. by inheriting FakeModule
750 from types.ModuleType. Pickling ipython interactive data
756 from types.ModuleType. Pickling ipython interactive data
751 should still work as usual (testing appreciated).
757 should still work as usual (testing appreciated).
752
758
753 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
759 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
754
760
755 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
761 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
756 running under python 2.3 with code from 2.4 to fix a bug with
762 running under python 2.3 with code from 2.4 to fix a bug with
757 help(). Reported by the Debian maintainers, Norbert Tretkowski
763 help(). Reported by the Debian maintainers, Norbert Tretkowski
758 <norbert-AT-tretkowski.de> and Alexandre Fayolle
764 <norbert-AT-tretkowski.de> and Alexandre Fayolle
759 <afayolle-AT-debian.org>.
765 <afayolle-AT-debian.org>.
760
766
761 2006-08-04 Walter Doerwald <walter@livinglogic.de>
767 2006-08-04 Walter Doerwald <walter@livinglogic.de>
762
768
763 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
769 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
764 (which was displaying "quit" twice).
770 (which was displaying "quit" twice).
765
771
766 2006-07-28 Walter Doerwald <walter@livinglogic.de>
772 2006-07-28 Walter Doerwald <walter@livinglogic.de>
767
773
768 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
774 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
769 the mode argument).
775 the mode argument).
770
776
771 2006-07-27 Walter Doerwald <walter@livinglogic.de>
777 2006-07-27 Walter Doerwald <walter@livinglogic.de>
772
778
773 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
779 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
774 not running under IPython.
780 not running under IPython.
775
781
776 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
782 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
777 and make it iterable (iterating over the attribute itself). Add two new
783 and make it iterable (iterating over the attribute itself). Add two new
778 magic strings for __xattrs__(): If the string starts with "-", the attribute
784 magic strings for __xattrs__(): If the string starts with "-", the attribute
779 will not be displayed in ibrowse's detail view (but it can still be
785 will not be displayed in ibrowse's detail view (but it can still be
780 iterated over). This makes it possible to add attributes that are large
786 iterated over). This makes it possible to add attributes that are large
781 lists or generator methods to the detail view. Replace magic attribute names
787 lists or generator methods to the detail view. Replace magic attribute names
782 and _attrname() and _getattr() with "descriptors": For each type of magic
788 and _attrname() and _getattr() with "descriptors": For each type of magic
783 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
789 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
784 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
790 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
785 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
791 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
786 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
792 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
787 are still supported.
793 are still supported.
788
794
789 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
795 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
790 fails in ibrowse.fetch(), the exception object is added as the last item
796 fails in ibrowse.fetch(), the exception object is added as the last item
791 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
797 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
792 a generator throws an exception midway through execution.
798 a generator throws an exception midway through execution.
793
799
794 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
800 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
795 encoding into methods.
801 encoding into methods.
796
802
797 2006-07-26 Ville Vainio <vivainio@gmail.com>
803 2006-07-26 Ville Vainio <vivainio@gmail.com>
798
804
799 * iplib.py: history now stores multiline input as single
805 * iplib.py: history now stores multiline input as single
800 history entries. Patch by Jorgen Cederlof.
806 history entries. Patch by Jorgen Cederlof.
801
807
802 2006-07-18 Walter Doerwald <walter@livinglogic.de>
808 2006-07-18 Walter Doerwald <walter@livinglogic.de>
803
809
804 * IPython/Extensions/ibrowse.py: Make cursor visible over
810 * IPython/Extensions/ibrowse.py: Make cursor visible over
805 non existing attributes.
811 non existing attributes.
806
812
807 2006-07-14 Walter Doerwald <walter@livinglogic.de>
813 2006-07-14 Walter Doerwald <walter@livinglogic.de>
808
814
809 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
815 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
810 error output of the running command doesn't mess up the screen.
816 error output of the running command doesn't mess up the screen.
811
817
812 2006-07-13 Walter Doerwald <walter@livinglogic.de>
818 2006-07-13 Walter Doerwald <walter@livinglogic.de>
813
819
814 * IPython/Extensions/ipipe.py (isort): Make isort usable without
820 * IPython/Extensions/ipipe.py (isort): Make isort usable without
815 argument. This sorts the items themselves.
821 argument. This sorts the items themselves.
816
822
817 2006-07-12 Walter Doerwald <walter@livinglogic.de>
823 2006-07-12 Walter Doerwald <walter@livinglogic.de>
818
824
819 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
825 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
820 Compile expression strings into code objects. This should speed
826 Compile expression strings into code objects. This should speed
821 up ifilter and friends somewhat.
827 up ifilter and friends somewhat.
822
828
823 2006-07-08 Ville Vainio <vivainio@gmail.com>
829 2006-07-08 Ville Vainio <vivainio@gmail.com>
824
830
825 * Magic.py: %cpaste now strips > from the beginning of lines
831 * Magic.py: %cpaste now strips > from the beginning of lines
826 to ease pasting quoted code from emails. Contributed by
832 to ease pasting quoted code from emails. Contributed by
827 Stefan van der Walt.
833 Stefan van der Walt.
828
834
829 2006-06-29 Ville Vainio <vivainio@gmail.com>
835 2006-06-29 Ville Vainio <vivainio@gmail.com>
830
836
831 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
837 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
832 mode, patch contributed by Darren Dale. NEEDS TESTING!
838 mode, patch contributed by Darren Dale. NEEDS TESTING!
833
839
834 2006-06-28 Walter Doerwald <walter@livinglogic.de>
840 2006-06-28 Walter Doerwald <walter@livinglogic.de>
835
841
836 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
842 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
837 a blue background. Fix fetching new display rows when the browser
843 a blue background. Fix fetching new display rows when the browser
838 scrolls more than a screenful (e.g. by using the goto command).
844 scrolls more than a screenful (e.g. by using the goto command).
839
845
840 2006-06-27 Ville Vainio <vivainio@gmail.com>
846 2006-06-27 Ville Vainio <vivainio@gmail.com>
841
847
842 * Magic.py (_inspect, _ofind) Apply David Huard's
848 * Magic.py (_inspect, _ofind) Apply David Huard's
843 patch for displaying the correct docstring for 'property'
849 patch for displaying the correct docstring for 'property'
844 attributes.
850 attributes.
845
851
846 2006-06-23 Walter Doerwald <walter@livinglogic.de>
852 2006-06-23 Walter Doerwald <walter@livinglogic.de>
847
853
848 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
854 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
849 commands into the methods implementing them.
855 commands into the methods implementing them.
850
856
851 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
857 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
852
858
853 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
859 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
854 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
860 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
855 autoindent support was authored by Jin Liu.
861 autoindent support was authored by Jin Liu.
856
862
857 2006-06-22 Walter Doerwald <walter@livinglogic.de>
863 2006-06-22 Walter Doerwald <walter@livinglogic.de>
858
864
859 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
865 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
860 for keymaps with a custom class that simplifies handling.
866 for keymaps with a custom class that simplifies handling.
861
867
862 2006-06-19 Walter Doerwald <walter@livinglogic.de>
868 2006-06-19 Walter Doerwald <walter@livinglogic.de>
863
869
864 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
870 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
865 resizing. This requires Python 2.5 to work.
871 resizing. This requires Python 2.5 to work.
866
872
867 2006-06-16 Walter Doerwald <walter@livinglogic.de>
873 2006-06-16 Walter Doerwald <walter@livinglogic.de>
868
874
869 * IPython/Extensions/ibrowse.py: Add two new commands to
875 * IPython/Extensions/ibrowse.py: Add two new commands to
870 ibrowse: "hideattr" (mapped to "h") hides the attribute under
876 ibrowse: "hideattr" (mapped to "h") hides the attribute under
871 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
877 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
872 attributes again. Remapped the help command to "?". Display
878 attributes again. Remapped the help command to "?". Display
873 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
879 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
874 as keys for the "home" and "end" commands. Add three new commands
880 as keys for the "home" and "end" commands. Add three new commands
875 to the input mode for "find" and friends: "delend" (CTRL-K)
881 to the input mode for "find" and friends: "delend" (CTRL-K)
876 deletes to the end of line. "incsearchup" searches upwards in the
882 deletes to the end of line. "incsearchup" searches upwards in the
877 command history for an input that starts with the text before the cursor.
883 command history for an input that starts with the text before the cursor.
878 "incsearchdown" does the same downwards. Removed a bogus mapping of
884 "incsearchdown" does the same downwards. Removed a bogus mapping of
879 the x key to "delete".
885 the x key to "delete".
880
886
881 2006-06-15 Ville Vainio <vivainio@gmail.com>
887 2006-06-15 Ville Vainio <vivainio@gmail.com>
882
888
883 * iplib.py, hooks.py: Added new generate_prompt hook that can be
889 * iplib.py, hooks.py: Added new generate_prompt hook that can be
884 used to create prompts dynamically, instead of the "old" way of
890 used to create prompts dynamically, instead of the "old" way of
885 assigning "magic" strings to prompt_in1 and prompt_in2. The old
891 assigning "magic" strings to prompt_in1 and prompt_in2. The old
886 way still works (it's invoked by the default hook), of course.
892 way still works (it's invoked by the default hook), of course.
887
893
888 * Prompts.py: added generate_output_prompt hook for altering output
894 * Prompts.py: added generate_output_prompt hook for altering output
889 prompt
895 prompt
890
896
891 * Release.py: Changed version string to 0.7.3.svn.
897 * Release.py: Changed version string to 0.7.3.svn.
892
898
893 2006-06-15 Walter Doerwald <walter@livinglogic.de>
899 2006-06-15 Walter Doerwald <walter@livinglogic.de>
894
900
895 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
901 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
896 the call to fetch() always tries to fetch enough data for at least one
902 the call to fetch() always tries to fetch enough data for at least one
897 full screen. This makes it possible to simply call moveto(0,0,True) in
903 full screen. This makes it possible to simply call moveto(0,0,True) in
898 the constructor. Fix typos and removed the obsolete goto attribute.
904 the constructor. Fix typos and removed the obsolete goto attribute.
899
905
900 2006-06-12 Ville Vainio <vivainio@gmail.com>
906 2006-06-12 Ville Vainio <vivainio@gmail.com>
901
907
902 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
908 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
903 allowing $variable interpolation within multiline statements,
909 allowing $variable interpolation within multiline statements,
904 though so far only with "sh" profile for a testing period.
910 though so far only with "sh" profile for a testing period.
905 The patch also enables splitting long commands with \ but it
911 The patch also enables splitting long commands with \ but it
906 doesn't work properly yet.
912 doesn't work properly yet.
907
913
908 2006-06-12 Walter Doerwald <walter@livinglogic.de>
914 2006-06-12 Walter Doerwald <walter@livinglogic.de>
909
915
910 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
916 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
911 input history and the position of the cursor in the input history for
917 input history and the position of the cursor in the input history for
912 the find, findbackwards and goto command.
918 the find, findbackwards and goto command.
913
919
914 2006-06-10 Walter Doerwald <walter@livinglogic.de>
920 2006-06-10 Walter Doerwald <walter@livinglogic.de>
915
921
916 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
922 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
917 implements the basic functionality of browser commands that require
923 implements the basic functionality of browser commands that require
918 input. Reimplement the goto, find and findbackwards commands as
924 input. Reimplement the goto, find and findbackwards commands as
919 subclasses of _CommandInput. Add an input history and keymaps to those
925 subclasses of _CommandInput. Add an input history and keymaps to those
920 commands. Add "\r" as a keyboard shortcut for the enterdefault and
926 commands. Add "\r" as a keyboard shortcut for the enterdefault and
921 execute commands.
927 execute commands.
922
928
923 2006-06-07 Ville Vainio <vivainio@gmail.com>
929 2006-06-07 Ville Vainio <vivainio@gmail.com>
924
930
925 * iplib.py: ipython mybatch.ipy exits ipython immediately after
931 * iplib.py: ipython mybatch.ipy exits ipython immediately after
926 running the batch files instead of leaving the session open.
932 running the batch files instead of leaving the session open.
927
933
928 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
934 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
929
935
930 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
936 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
931 the original fix was incomplete. Patch submitted by W. Maier.
937 the original fix was incomplete. Patch submitted by W. Maier.
932
938
933 2006-06-07 Ville Vainio <vivainio@gmail.com>
939 2006-06-07 Ville Vainio <vivainio@gmail.com>
934
940
935 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
941 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
936 Confirmation prompts can be supressed by 'quiet' option.
942 Confirmation prompts can be supressed by 'quiet' option.
937 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
943 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
938
944
939 2006-06-06 *** Released version 0.7.2
945 2006-06-06 *** Released version 0.7.2
940
946
941 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
947 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
942
948
943 * IPython/Release.py (version): Made 0.7.2 final for release.
949 * IPython/Release.py (version): Made 0.7.2 final for release.
944 Repo tagged and release cut.
950 Repo tagged and release cut.
945
951
946 2006-06-05 Ville Vainio <vivainio@gmail.com>
952 2006-06-05 Ville Vainio <vivainio@gmail.com>
947
953
948 * Magic.py (magic_rehashx): Honor no_alias list earlier in
954 * Magic.py (magic_rehashx): Honor no_alias list earlier in
949 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
955 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
950
956
951 * upgrade_dir.py: try import 'path' module a bit harder
957 * upgrade_dir.py: try import 'path' module a bit harder
952 (for %upgrade)
958 (for %upgrade)
953
959
954 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
960 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
955
961
956 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
962 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
957 instead of looping 20 times.
963 instead of looping 20 times.
958
964
959 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
965 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
960 correctly at initialization time. Bug reported by Krishna Mohan
966 correctly at initialization time. Bug reported by Krishna Mohan
961 Gundu <gkmohan-AT-gmail.com> on the user list.
967 Gundu <gkmohan-AT-gmail.com> on the user list.
962
968
963 * IPython/Release.py (version): Mark 0.7.2 version to start
969 * IPython/Release.py (version): Mark 0.7.2 version to start
964 testing for release on 06/06.
970 testing for release on 06/06.
965
971
966 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
972 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
967
973
968 * scripts/irunner: thin script interface so users don't have to
974 * scripts/irunner: thin script interface so users don't have to
969 find the module and call it as an executable, since modules rarely
975 find the module and call it as an executable, since modules rarely
970 live in people's PATH.
976 live in people's PATH.
971
977
972 * IPython/irunner.py (InteractiveRunner.__init__): added
978 * IPython/irunner.py (InteractiveRunner.__init__): added
973 delaybeforesend attribute to control delays with newer versions of
979 delaybeforesend attribute to control delays with newer versions of
974 pexpect. Thanks to detailed help from pexpect's author, Noah
980 pexpect. Thanks to detailed help from pexpect's author, Noah
975 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
981 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
976 correctly (it works in NoColor mode).
982 correctly (it works in NoColor mode).
977
983
978 * IPython/iplib.py (handle_normal): fix nasty crash reported on
984 * IPython/iplib.py (handle_normal): fix nasty crash reported on
979 SAGE list, from improper log() calls.
985 SAGE list, from improper log() calls.
980
986
981 2006-05-31 Ville Vainio <vivainio@gmail.com>
987 2006-05-31 Ville Vainio <vivainio@gmail.com>
982
988
983 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
989 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
984 with args in parens to work correctly with dirs that have spaces.
990 with args in parens to work correctly with dirs that have spaces.
985
991
986 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
992 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
987
993
988 * IPython/Logger.py (Logger.logstart): add option to log raw input
994 * IPython/Logger.py (Logger.logstart): add option to log raw input
989 instead of the processed one. A -r flag was added to the
995 instead of the processed one. A -r flag was added to the
990 %logstart magic used for controlling logging.
996 %logstart magic used for controlling logging.
991
997
992 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
998 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
993
999
994 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1000 * IPython/iplib.py (InteractiveShell.__init__): add check for the
995 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1001 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
996 recognize the option. After a bug report by Will Maier. This
1002 recognize the option. After a bug report by Will Maier. This
997 closes #64 (will do it after confirmation from W. Maier).
1003 closes #64 (will do it after confirmation from W. Maier).
998
1004
999 * IPython/irunner.py: New module to run scripts as if manually
1005 * IPython/irunner.py: New module to run scripts as if manually
1000 typed into an interactive environment, based on pexpect. After a
1006 typed into an interactive environment, based on pexpect. After a
1001 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1007 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1002 ipython-user list. Simple unittests in the tests/ directory.
1008 ipython-user list. Simple unittests in the tests/ directory.
1003
1009
1004 * tools/release: add Will Maier, OpenBSD port maintainer, to
1010 * tools/release: add Will Maier, OpenBSD port maintainer, to
1005 recepients list. We are now officially part of the OpenBSD ports:
1011 recepients list. We are now officially part of the OpenBSD ports:
1006 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1012 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1007 work.
1013 work.
1008
1014
1009 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1015 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1010
1016
1011 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1017 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1012 so that it doesn't break tkinter apps.
1018 so that it doesn't break tkinter apps.
1013
1019
1014 * IPython/iplib.py (_prefilter): fix bug where aliases would
1020 * IPython/iplib.py (_prefilter): fix bug where aliases would
1015 shadow variables when autocall was fully off. Reported by SAGE
1021 shadow variables when autocall was fully off. Reported by SAGE
1016 author William Stein.
1022 author William Stein.
1017
1023
1018 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1024 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1019 at what detail level strings are computed when foo? is requested.
1025 at what detail level strings are computed when foo? is requested.
1020 This allows users to ask for example that the string form of an
1026 This allows users to ask for example that the string form of an
1021 object is only computed when foo?? is called, or even never, by
1027 object is only computed when foo?? is called, or even never, by
1022 setting the object_info_string_level >= 2 in the configuration
1028 setting the object_info_string_level >= 2 in the configuration
1023 file. This new option has been added and documented. After a
1029 file. This new option has been added and documented. After a
1024 request by SAGE to be able to control the printing of very large
1030 request by SAGE to be able to control the printing of very large
1025 objects more easily.
1031 objects more easily.
1026
1032
1027 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1033 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1034
1029 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1035 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1030 from sys.argv, to be 100% consistent with how Python itself works
1036 from sys.argv, to be 100% consistent with how Python itself works
1031 (as seen for example with python -i file.py). After a bug report
1037 (as seen for example with python -i file.py). After a bug report
1032 by Jeffrey Collins.
1038 by Jeffrey Collins.
1033
1039
1034 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1040 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1035 nasty bug which was preventing custom namespaces with -pylab,
1041 nasty bug which was preventing custom namespaces with -pylab,
1036 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1042 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1037 compatibility (long gone from mpl).
1043 compatibility (long gone from mpl).
1038
1044
1039 * IPython/ipapi.py (make_session): name change: create->make. We
1045 * IPython/ipapi.py (make_session): name change: create->make. We
1040 use make in other places (ipmaker,...), it's shorter and easier to
1046 use make in other places (ipmaker,...), it's shorter and easier to
1041 type and say, etc. I'm trying to clean things before 0.7.2 so
1047 type and say, etc. I'm trying to clean things before 0.7.2 so
1042 that I can keep things stable wrt to ipapi in the chainsaw branch.
1048 that I can keep things stable wrt to ipapi in the chainsaw branch.
1043
1049
1044 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1050 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1045 python-mode recognizes our debugger mode. Add support for
1051 python-mode recognizes our debugger mode. Add support for
1046 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1052 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1047 <m.liu.jin-AT-gmail.com> originally written by
1053 <m.liu.jin-AT-gmail.com> originally written by
1048 doxgen-AT-newsmth.net (with minor modifications for xemacs
1054 doxgen-AT-newsmth.net (with minor modifications for xemacs
1049 compatibility)
1055 compatibility)
1050
1056
1051 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1057 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1052 tracebacks when walking the stack so that the stack tracking system
1058 tracebacks when walking the stack so that the stack tracking system
1053 in emacs' python-mode can identify the frames correctly.
1059 in emacs' python-mode can identify the frames correctly.
1054
1060
1055 * IPython/ipmaker.py (make_IPython): make the internal (and
1061 * IPython/ipmaker.py (make_IPython): make the internal (and
1056 default config) autoedit_syntax value false by default. Too many
1062 default config) autoedit_syntax value false by default. Too many
1057 users have complained to me (both on and off-list) about problems
1063 users have complained to me (both on and off-list) about problems
1058 with this option being on by default, so I'm making it default to
1064 with this option being on by default, so I'm making it default to
1059 off. It can still be enabled by anyone via the usual mechanisms.
1065 off. It can still be enabled by anyone via the usual mechanisms.
1060
1066
1061 * IPython/completer.py (Completer.attr_matches): add support for
1067 * IPython/completer.py (Completer.attr_matches): add support for
1062 PyCrust-style _getAttributeNames magic method. Patch contributed
1068 PyCrust-style _getAttributeNames magic method. Patch contributed
1063 by <mscott-AT-goldenspud.com>. Closes #50.
1069 by <mscott-AT-goldenspud.com>. Closes #50.
1064
1070
1065 * IPython/iplib.py (InteractiveShell.__init__): remove the
1071 * IPython/iplib.py (InteractiveShell.__init__): remove the
1066 deletion of exit/quit from __builtin__, which can break
1072 deletion of exit/quit from __builtin__, which can break
1067 third-party tools like the Zope debugging console. The
1073 third-party tools like the Zope debugging console. The
1068 %exit/%quit magics remain. In general, it's probably a good idea
1074 %exit/%quit magics remain. In general, it's probably a good idea
1069 not to delete anything from __builtin__, since we never know what
1075 not to delete anything from __builtin__, since we never know what
1070 that will break. In any case, python now (for 2.5) will support
1076 that will break. In any case, python now (for 2.5) will support
1071 'real' exit/quit, so this issue is moot. Closes #55.
1077 'real' exit/quit, so this issue is moot. Closes #55.
1072
1078
1073 * IPython/genutils.py (with_obj): rename the 'with' function to
1079 * IPython/genutils.py (with_obj): rename the 'with' function to
1074 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1080 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1075 becomes a language keyword. Closes #53.
1081 becomes a language keyword. Closes #53.
1076
1082
1077 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1083 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1078 __file__ attribute to this so it fools more things into thinking
1084 __file__ attribute to this so it fools more things into thinking
1079 it is a real module. Closes #59.
1085 it is a real module. Closes #59.
1080
1086
1081 * IPython/Magic.py (magic_edit): add -n option to open the editor
1087 * IPython/Magic.py (magic_edit): add -n option to open the editor
1082 at a specific line number. After a patch by Stefan van der Walt.
1088 at a specific line number. After a patch by Stefan van der Walt.
1083
1089
1084 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1090 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1091
1086 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1092 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1087 reason the file could not be opened. After automatic crash
1093 reason the file could not be opened. After automatic crash
1088 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1094 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1089 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1095 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1090 (_should_recompile): Don't fire editor if using %bg, since there
1096 (_should_recompile): Don't fire editor if using %bg, since there
1091 is no file in the first place. From the same report as above.
1097 is no file in the first place. From the same report as above.
1092 (raw_input): protect against faulty third-party prefilters. After
1098 (raw_input): protect against faulty third-party prefilters. After
1093 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1099 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1094 while running under SAGE.
1100 while running under SAGE.
1095
1101
1096 2006-05-23 Ville Vainio <vivainio@gmail.com>
1102 2006-05-23 Ville Vainio <vivainio@gmail.com>
1097
1103
1098 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1104 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1099 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1105 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1100 now returns None (again), unless dummy is specifically allowed by
1106 now returns None (again), unless dummy is specifically allowed by
1101 ipapi.get(allow_dummy=True).
1107 ipapi.get(allow_dummy=True).
1102
1108
1103 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1109 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1104
1110
1105 * IPython: remove all 2.2-compatibility objects and hacks from
1111 * IPython: remove all 2.2-compatibility objects and hacks from
1106 everywhere, since we only support 2.3 at this point. Docs
1112 everywhere, since we only support 2.3 at this point. Docs
1107 updated.
1113 updated.
1108
1114
1109 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1115 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1110 Anything requiring extra validation can be turned into a Python
1116 Anything requiring extra validation can be turned into a Python
1111 property in the future. I used a property for the db one b/c
1117 property in the future. I used a property for the db one b/c
1112 there was a nasty circularity problem with the initialization
1118 there was a nasty circularity problem with the initialization
1113 order, which right now I don't have time to clean up.
1119 order, which right now I don't have time to clean up.
1114
1120
1115 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1121 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1116 another locking bug reported by Jorgen. I'm not 100% sure though,
1122 another locking bug reported by Jorgen. I'm not 100% sure though,
1117 so more testing is needed...
1123 so more testing is needed...
1118
1124
1119 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1125 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1120
1126
1121 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1127 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1122 local variables from any routine in user code (typically executed
1128 local variables from any routine in user code (typically executed
1123 with %run) directly into the interactive namespace. Very useful
1129 with %run) directly into the interactive namespace. Very useful
1124 when doing complex debugging.
1130 when doing complex debugging.
1125 (IPythonNotRunning): Changed the default None object to a dummy
1131 (IPythonNotRunning): Changed the default None object to a dummy
1126 whose attributes can be queried as well as called without
1132 whose attributes can be queried as well as called without
1127 exploding, to ease writing code which works transparently both in
1133 exploding, to ease writing code which works transparently both in
1128 and out of ipython and uses some of this API.
1134 and out of ipython and uses some of this API.
1129
1135
1130 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1136 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1137
1132 * IPython/hooks.py (result_display): Fix the fact that our display
1138 * IPython/hooks.py (result_display): Fix the fact that our display
1133 hook was using str() instead of repr(), as the default python
1139 hook was using str() instead of repr(), as the default python
1134 console does. This had gone unnoticed b/c it only happened if
1140 console does. This had gone unnoticed b/c it only happened if
1135 %Pprint was off, but the inconsistency was there.
1141 %Pprint was off, but the inconsistency was there.
1136
1142
1137 2006-05-15 Ville Vainio <vivainio@gmail.com>
1143 2006-05-15 Ville Vainio <vivainio@gmail.com>
1138
1144
1139 * Oinspect.py: Only show docstring for nonexisting/binary files
1145 * Oinspect.py: Only show docstring for nonexisting/binary files
1140 when doing object??, closing ticket #62
1146 when doing object??, closing ticket #62
1141
1147
1142 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1148 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1143
1149
1144 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1150 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1145 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1151 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1146 was being released in a routine which hadn't checked if it had
1152 was being released in a routine which hadn't checked if it had
1147 been the one to acquire it.
1153 been the one to acquire it.
1148
1154
1149 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1155 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1150
1156
1151 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1157 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1152
1158
1153 2006-04-11 Ville Vainio <vivainio@gmail.com>
1159 2006-04-11 Ville Vainio <vivainio@gmail.com>
1154
1160
1155 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1161 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1156 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1162 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1157 prefilters, allowing stuff like magics and aliases in the file.
1163 prefilters, allowing stuff like magics and aliases in the file.
1158
1164
1159 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1165 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1160 added. Supported now are "%clear in" and "%clear out" (clear input and
1166 added. Supported now are "%clear in" and "%clear out" (clear input and
1161 output history, respectively). Also fixed CachedOutput.flush to
1167 output history, respectively). Also fixed CachedOutput.flush to
1162 properly flush the output cache.
1168 properly flush the output cache.
1163
1169
1164 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1170 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1165 half-success (and fail explicitly).
1171 half-success (and fail explicitly).
1166
1172
1167 2006-03-28 Ville Vainio <vivainio@gmail.com>
1173 2006-03-28 Ville Vainio <vivainio@gmail.com>
1168
1174
1169 * iplib.py: Fix quoting of aliases so that only argless ones
1175 * iplib.py: Fix quoting of aliases so that only argless ones
1170 are quoted
1176 are quoted
1171
1177
1172 2006-03-28 Ville Vainio <vivainio@gmail.com>
1178 2006-03-28 Ville Vainio <vivainio@gmail.com>
1173
1179
1174 * iplib.py: Quote aliases with spaces in the name.
1180 * iplib.py: Quote aliases with spaces in the name.
1175 "c:\program files\blah\bin" is now legal alias target.
1181 "c:\program files\blah\bin" is now legal alias target.
1176
1182
1177 * ext_rehashdir.py: Space no longer allowed as arg
1183 * ext_rehashdir.py: Space no longer allowed as arg
1178 separator, since space is legal in path names.
1184 separator, since space is legal in path names.
1179
1185
1180 2006-03-16 Ville Vainio <vivainio@gmail.com>
1186 2006-03-16 Ville Vainio <vivainio@gmail.com>
1181
1187
1182 * upgrade_dir.py: Take path.py from Extensions, correcting
1188 * upgrade_dir.py: Take path.py from Extensions, correcting
1183 %upgrade magic
1189 %upgrade magic
1184
1190
1185 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1191 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1186
1192
1187 * hooks.py: Only enclose editor binary in quotes if legal and
1193 * hooks.py: Only enclose editor binary in quotes if legal and
1188 necessary (space in the name, and is an existing file). Fixes a bug
1194 necessary (space in the name, and is an existing file). Fixes a bug
1189 reported by Zachary Pincus.
1195 reported by Zachary Pincus.
1190
1196
1191 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1192
1198
1193 * Manual: thanks to a tip on proper color handling for Emacs, by
1199 * Manual: thanks to a tip on proper color handling for Emacs, by
1194 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1200 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1195
1201
1196 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1202 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1197 by applying the provided patch. Thanks to Liu Jin
1203 by applying the provided patch. Thanks to Liu Jin
1198 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1204 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1199 XEmacs/Linux, I'm trusting the submitter that it actually helps
1205 XEmacs/Linux, I'm trusting the submitter that it actually helps
1200 under win32/GNU Emacs. Will revisit if any problems are reported.
1206 under win32/GNU Emacs. Will revisit if any problems are reported.
1201
1207
1202 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1208 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1203
1209
1204 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1210 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1205 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1211 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1206
1212
1207 2006-03-12 Ville Vainio <vivainio@gmail.com>
1213 2006-03-12 Ville Vainio <vivainio@gmail.com>
1208
1214
1209 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1215 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1210 Torsten Marek.
1216 Torsten Marek.
1211
1217
1212 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1218 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1213
1219
1214 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1220 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1215 line ranges works again.
1221 line ranges works again.
1216
1222
1217 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1223 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1218
1224
1219 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1225 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1220 and friends, after a discussion with Zach Pincus on ipython-user.
1226 and friends, after a discussion with Zach Pincus on ipython-user.
1221 I'm not 100% sure, but after thinking about it quite a bit, it may
1227 I'm not 100% sure, but after thinking about it quite a bit, it may
1222 be OK. Testing with the multithreaded shells didn't reveal any
1228 be OK. Testing with the multithreaded shells didn't reveal any
1223 problems, but let's keep an eye out.
1229 problems, but let's keep an eye out.
1224
1230
1225 In the process, I fixed a few things which were calling
1231 In the process, I fixed a few things which were calling
1226 self.InteractiveTB() directly (like safe_execfile), which is a
1232 self.InteractiveTB() directly (like safe_execfile), which is a
1227 mistake: ALL exception reporting should be done by calling
1233 mistake: ALL exception reporting should be done by calling
1228 self.showtraceback(), which handles state and tab-completion and
1234 self.showtraceback(), which handles state and tab-completion and
1229 more.
1235 more.
1230
1236
1231 2006-03-01 Ville Vainio <vivainio@gmail.com>
1237 2006-03-01 Ville Vainio <vivainio@gmail.com>
1232
1238
1233 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1239 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1234 To use, do "from ipipe import *".
1240 To use, do "from ipipe import *".
1235
1241
1236 2006-02-24 Ville Vainio <vivainio@gmail.com>
1242 2006-02-24 Ville Vainio <vivainio@gmail.com>
1237
1243
1238 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1244 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1239 "cleanly" and safely than the older upgrade mechanism.
1245 "cleanly" and safely than the older upgrade mechanism.
1240
1246
1241 2006-02-21 Ville Vainio <vivainio@gmail.com>
1247 2006-02-21 Ville Vainio <vivainio@gmail.com>
1242
1248
1243 * Magic.py: %save works again.
1249 * Magic.py: %save works again.
1244
1250
1245 2006-02-15 Ville Vainio <vivainio@gmail.com>
1251 2006-02-15 Ville Vainio <vivainio@gmail.com>
1246
1252
1247 * Magic.py: %Pprint works again
1253 * Magic.py: %Pprint works again
1248
1254
1249 * Extensions/ipy_sane_defaults.py: Provide everything provided
1255 * Extensions/ipy_sane_defaults.py: Provide everything provided
1250 in default ipythonrc, to make it possible to have a completely empty
1256 in default ipythonrc, to make it possible to have a completely empty
1251 ipythonrc (and thus completely rc-file free configuration)
1257 ipythonrc (and thus completely rc-file free configuration)
1252
1258
1253 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1259 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1254
1260
1255 * IPython/hooks.py (editor): quote the call to the editor command,
1261 * IPython/hooks.py (editor): quote the call to the editor command,
1256 to allow commands with spaces in them. Problem noted by watching
1262 to allow commands with spaces in them. Problem noted by watching
1257 Ian Oswald's video about textpad under win32 at
1263 Ian Oswald's video about textpad under win32 at
1258 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1264 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1259
1265
1260 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1266 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1261 describing magics (we haven't used @ for a loong time).
1267 describing magics (we haven't used @ for a loong time).
1262
1268
1263 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1269 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1264 contributed by marienz to close
1270 contributed by marienz to close
1265 http://www.scipy.net/roundup/ipython/issue53.
1271 http://www.scipy.net/roundup/ipython/issue53.
1266
1272
1267 2006-02-10 Ville Vainio <vivainio@gmail.com>
1273 2006-02-10 Ville Vainio <vivainio@gmail.com>
1268
1274
1269 * genutils.py: getoutput now works in win32 too
1275 * genutils.py: getoutput now works in win32 too
1270
1276
1271 * completer.py: alias and magic completion only invoked
1277 * completer.py: alias and magic completion only invoked
1272 at the first "item" in the line, to avoid "cd %store"
1278 at the first "item" in the line, to avoid "cd %store"
1273 nonsense.
1279 nonsense.
1274
1280
1275 2006-02-09 Ville Vainio <vivainio@gmail.com>
1281 2006-02-09 Ville Vainio <vivainio@gmail.com>
1276
1282
1277 * test/*: Added a unit testing framework (finally).
1283 * test/*: Added a unit testing framework (finally).
1278 '%run runtests.py' to run test_*.
1284 '%run runtests.py' to run test_*.
1279
1285
1280 * ipapi.py: Exposed runlines and set_custom_exc
1286 * ipapi.py: Exposed runlines and set_custom_exc
1281
1287
1282 2006-02-07 Ville Vainio <vivainio@gmail.com>
1288 2006-02-07 Ville Vainio <vivainio@gmail.com>
1283
1289
1284 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1290 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1285 instead use "f(1 2)" as before.
1291 instead use "f(1 2)" as before.
1286
1292
1287 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1293 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1288
1294
1289 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1295 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1290 facilities, for demos processed by the IPython input filter
1296 facilities, for demos processed by the IPython input filter
1291 (IPythonDemo), and for running a script one-line-at-a-time as a
1297 (IPythonDemo), and for running a script one-line-at-a-time as a
1292 demo, both for pure Python (LineDemo) and for IPython-processed
1298 demo, both for pure Python (LineDemo) and for IPython-processed
1293 input (IPythonLineDemo). After a request by Dave Kohel, from the
1299 input (IPythonLineDemo). After a request by Dave Kohel, from the
1294 SAGE team.
1300 SAGE team.
1295 (Demo.edit): added an edit() method to the demo objects, to edit
1301 (Demo.edit): added an edit() method to the demo objects, to edit
1296 the in-memory copy of the last executed block.
1302 the in-memory copy of the last executed block.
1297
1303
1298 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1304 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1299 processing to %edit, %macro and %save. These commands can now be
1305 processing to %edit, %macro and %save. These commands can now be
1300 invoked on the unprocessed input as it was typed by the user
1306 invoked on the unprocessed input as it was typed by the user
1301 (without any prefilters applied). After requests by the SAGE team
1307 (without any prefilters applied). After requests by the SAGE team
1302 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1308 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1303
1309
1304 2006-02-01 Ville Vainio <vivainio@gmail.com>
1310 2006-02-01 Ville Vainio <vivainio@gmail.com>
1305
1311
1306 * setup.py, eggsetup.py: easy_install ipython==dev works
1312 * setup.py, eggsetup.py: easy_install ipython==dev works
1307 correctly now (on Linux)
1313 correctly now (on Linux)
1308
1314
1309 * ipy_user_conf,ipmaker: user config changes, removed spurious
1315 * ipy_user_conf,ipmaker: user config changes, removed spurious
1310 warnings
1316 warnings
1311
1317
1312 * iplib: if rc.banner is string, use it as is.
1318 * iplib: if rc.banner is string, use it as is.
1313
1319
1314 * Magic: %pycat accepts a string argument and pages it's contents.
1320 * Magic: %pycat accepts a string argument and pages it's contents.
1315
1321
1316
1322
1317 2006-01-30 Ville Vainio <vivainio@gmail.com>
1323 2006-01-30 Ville Vainio <vivainio@gmail.com>
1318
1324
1319 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1325 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1320 Now %store and bookmarks work through PickleShare, meaning that
1326 Now %store and bookmarks work through PickleShare, meaning that
1321 concurrent access is possible and all ipython sessions see the
1327 concurrent access is possible and all ipython sessions see the
1322 same database situation all the time, instead of snapshot of
1328 same database situation all the time, instead of snapshot of
1323 the situation when the session was started. Hence, %bookmark
1329 the situation when the session was started. Hence, %bookmark
1324 results are immediately accessible from othes sessions. The database
1330 results are immediately accessible from othes sessions. The database
1325 is also available for use by user extensions. See:
1331 is also available for use by user extensions. See:
1326 http://www.python.org/pypi/pickleshare
1332 http://www.python.org/pypi/pickleshare
1327
1333
1328 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1334 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1329
1335
1330 * aliases can now be %store'd
1336 * aliases can now be %store'd
1331
1337
1332 * path.py moved to Extensions so that pickleshare does not need
1338 * path.py moved to Extensions so that pickleshare does not need
1333 IPython-specific import. Extensions added to pythonpath right
1339 IPython-specific import. Extensions added to pythonpath right
1334 at __init__.
1340 at __init__.
1335
1341
1336 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1342 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1337 called with _ip.system and the pre-transformed command string.
1343 called with _ip.system and the pre-transformed command string.
1338
1344
1339 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1345 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1340
1346
1341 * IPython/iplib.py (interact): Fix that we were not catching
1347 * IPython/iplib.py (interact): Fix that we were not catching
1342 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1348 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1343 logic here had to change, but it's fixed now.
1349 logic here had to change, but it's fixed now.
1344
1350
1345 2006-01-29 Ville Vainio <vivainio@gmail.com>
1351 2006-01-29 Ville Vainio <vivainio@gmail.com>
1346
1352
1347 * iplib.py: Try to import pyreadline on Windows.
1353 * iplib.py: Try to import pyreadline on Windows.
1348
1354
1349 2006-01-27 Ville Vainio <vivainio@gmail.com>
1355 2006-01-27 Ville Vainio <vivainio@gmail.com>
1350
1356
1351 * iplib.py: Expose ipapi as _ip in builtin namespace.
1357 * iplib.py: Expose ipapi as _ip in builtin namespace.
1352 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1358 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1353 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1359 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1354 syntax now produce _ip.* variant of the commands.
1360 syntax now produce _ip.* variant of the commands.
1355
1361
1356 * "_ip.options().autoedit_syntax = 2" automatically throws
1362 * "_ip.options().autoedit_syntax = 2" automatically throws
1357 user to editor for syntax error correction without prompting.
1363 user to editor for syntax error correction without prompting.
1358
1364
1359 2006-01-27 Ville Vainio <vivainio@gmail.com>
1365 2006-01-27 Ville Vainio <vivainio@gmail.com>
1360
1366
1361 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1367 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1362 'ipython' at argv[0]) executed through command line.
1368 'ipython' at argv[0]) executed through command line.
1363 NOTE: this DEPRECATES calling ipython with multiple scripts
1369 NOTE: this DEPRECATES calling ipython with multiple scripts
1364 ("ipython a.py b.py c.py")
1370 ("ipython a.py b.py c.py")
1365
1371
1366 * iplib.py, hooks.py: Added configurable input prefilter,
1372 * iplib.py, hooks.py: Added configurable input prefilter,
1367 named 'input_prefilter'. See ext_rescapture.py for example
1373 named 'input_prefilter'. See ext_rescapture.py for example
1368 usage.
1374 usage.
1369
1375
1370 * ext_rescapture.py, Magic.py: Better system command output capture
1376 * ext_rescapture.py, Magic.py: Better system command output capture
1371 through 'var = !ls' (deprecates user-visible %sc). Same notation
1377 through 'var = !ls' (deprecates user-visible %sc). Same notation
1372 applies for magics, 'var = %alias' assigns alias list to var.
1378 applies for magics, 'var = %alias' assigns alias list to var.
1373
1379
1374 * ipapi.py: added meta() for accessing extension-usable data store.
1380 * ipapi.py: added meta() for accessing extension-usable data store.
1375
1381
1376 * iplib.py: added InteractiveShell.getapi(). New magics should be
1382 * iplib.py: added InteractiveShell.getapi(). New magics should be
1377 written doing self.getapi() instead of using the shell directly.
1383 written doing self.getapi() instead of using the shell directly.
1378
1384
1379 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1385 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1380 %store foo >> ~/myfoo.txt to store variables to files (in clean
1386 %store foo >> ~/myfoo.txt to store variables to files (in clean
1381 textual form, not a restorable pickle).
1387 textual form, not a restorable pickle).
1382
1388
1383 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1389 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1384
1390
1385 * usage.py, Magic.py: added %quickref
1391 * usage.py, Magic.py: added %quickref
1386
1392
1387 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1393 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1388
1394
1389 * GetoptErrors when invoking magics etc. with wrong args
1395 * GetoptErrors when invoking magics etc. with wrong args
1390 are now more helpful:
1396 are now more helpful:
1391 GetoptError: option -l not recognized (allowed: "qb" )
1397 GetoptError: option -l not recognized (allowed: "qb" )
1392
1398
1393 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1399 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1394
1400
1395 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1401 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1396 computationally intensive blocks don't appear to stall the demo.
1402 computationally intensive blocks don't appear to stall the demo.
1397
1403
1398 2006-01-24 Ville Vainio <vivainio@gmail.com>
1404 2006-01-24 Ville Vainio <vivainio@gmail.com>
1399
1405
1400 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1406 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1401 value to manipulate resulting history entry.
1407 value to manipulate resulting history entry.
1402
1408
1403 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1409 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1404 to instance methods of IPApi class, to make extending an embedded
1410 to instance methods of IPApi class, to make extending an embedded
1405 IPython feasible. See ext_rehashdir.py for example usage.
1411 IPython feasible. See ext_rehashdir.py for example usage.
1406
1412
1407 * Merged 1071-1076 from branches/0.7.1
1413 * Merged 1071-1076 from branches/0.7.1
1408
1414
1409
1415
1410 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1416 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1411
1417
1412 * tools/release (daystamp): Fix build tools to use the new
1418 * tools/release (daystamp): Fix build tools to use the new
1413 eggsetup.py script to build lightweight eggs.
1419 eggsetup.py script to build lightweight eggs.
1414
1420
1415 * Applied changesets 1062 and 1064 before 0.7.1 release.
1421 * Applied changesets 1062 and 1064 before 0.7.1 release.
1416
1422
1417 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1423 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1418 see the raw input history (without conversions like %ls ->
1424 see the raw input history (without conversions like %ls ->
1419 ipmagic("ls")). After a request from W. Stein, SAGE
1425 ipmagic("ls")). After a request from W. Stein, SAGE
1420 (http://modular.ucsd.edu/sage) developer. This information is
1426 (http://modular.ucsd.edu/sage) developer. This information is
1421 stored in the input_hist_raw attribute of the IPython instance, so
1427 stored in the input_hist_raw attribute of the IPython instance, so
1422 developers can access it if needed (it's an InputList instance).
1428 developers can access it if needed (it's an InputList instance).
1423
1429
1424 * Versionstring = 0.7.2.svn
1430 * Versionstring = 0.7.2.svn
1425
1431
1426 * eggsetup.py: A separate script for constructing eggs, creates
1432 * eggsetup.py: A separate script for constructing eggs, creates
1427 proper launch scripts even on Windows (an .exe file in
1433 proper launch scripts even on Windows (an .exe file in
1428 \python24\scripts).
1434 \python24\scripts).
1429
1435
1430 * ipapi.py: launch_new_instance, launch entry point needed for the
1436 * ipapi.py: launch_new_instance, launch entry point needed for the
1431 egg.
1437 egg.
1432
1438
1433 2006-01-23 Ville Vainio <vivainio@gmail.com>
1439 2006-01-23 Ville Vainio <vivainio@gmail.com>
1434
1440
1435 * Added %cpaste magic for pasting python code
1441 * Added %cpaste magic for pasting python code
1436
1442
1437 2006-01-22 Ville Vainio <vivainio@gmail.com>
1443 2006-01-22 Ville Vainio <vivainio@gmail.com>
1438
1444
1439 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1445 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1440
1446
1441 * Versionstring = 0.7.2.svn
1447 * Versionstring = 0.7.2.svn
1442
1448
1443 * eggsetup.py: A separate script for constructing eggs, creates
1449 * eggsetup.py: A separate script for constructing eggs, creates
1444 proper launch scripts even on Windows (an .exe file in
1450 proper launch scripts even on Windows (an .exe file in
1445 \python24\scripts).
1451 \python24\scripts).
1446
1452
1447 * ipapi.py: launch_new_instance, launch entry point needed for the
1453 * ipapi.py: launch_new_instance, launch entry point needed for the
1448 egg.
1454 egg.
1449
1455
1450 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1456 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1451
1457
1452 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1458 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1453 %pfile foo would print the file for foo even if it was a binary.
1459 %pfile foo would print the file for foo even if it was a binary.
1454 Now, extensions '.so' and '.dll' are skipped.
1460 Now, extensions '.so' and '.dll' are skipped.
1455
1461
1456 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1462 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1457 bug, where macros would fail in all threaded modes. I'm not 100%
1463 bug, where macros would fail in all threaded modes. I'm not 100%
1458 sure, so I'm going to put out an rc instead of making a release
1464 sure, so I'm going to put out an rc instead of making a release
1459 today, and wait for feedback for at least a few days.
1465 today, and wait for feedback for at least a few days.
1460
1466
1461 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1467 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1462 it...) the handling of pasting external code with autoindent on.
1468 it...) the handling of pasting external code with autoindent on.
1463 To get out of a multiline input, the rule will appear for most
1469 To get out of a multiline input, the rule will appear for most
1464 users unchanged: two blank lines or change the indent level
1470 users unchanged: two blank lines or change the indent level
1465 proposed by IPython. But there is a twist now: you can
1471 proposed by IPython. But there is a twist now: you can
1466 add/subtract only *one or two spaces*. If you add/subtract three
1472 add/subtract only *one or two spaces*. If you add/subtract three
1467 or more (unless you completely delete the line), IPython will
1473 or more (unless you completely delete the line), IPython will
1468 accept that line, and you'll need to enter a second one of pure
1474 accept that line, and you'll need to enter a second one of pure
1469 whitespace. I know it sounds complicated, but I can't find a
1475 whitespace. I know it sounds complicated, but I can't find a
1470 different solution that covers all the cases, with the right
1476 different solution that covers all the cases, with the right
1471 heuristics. Hopefully in actual use, nobody will really notice
1477 heuristics. Hopefully in actual use, nobody will really notice
1472 all these strange rules and things will 'just work'.
1478 all these strange rules and things will 'just work'.
1473
1479
1474 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1480 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1475
1481
1476 * IPython/iplib.py (interact): catch exceptions which can be
1482 * IPython/iplib.py (interact): catch exceptions which can be
1477 triggered asynchronously by signal handlers. Thanks to an
1483 triggered asynchronously by signal handlers. Thanks to an
1478 automatic crash report, submitted by Colin Kingsley
1484 automatic crash report, submitted by Colin Kingsley
1479 <tercel-AT-gentoo.org>.
1485 <tercel-AT-gentoo.org>.
1480
1486
1481 2006-01-20 Ville Vainio <vivainio@gmail.com>
1487 2006-01-20 Ville Vainio <vivainio@gmail.com>
1482
1488
1483 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1489 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1484 (%rehashdir, very useful, try it out) of how to extend ipython
1490 (%rehashdir, very useful, try it out) of how to extend ipython
1485 with new magics. Also added Extensions dir to pythonpath to make
1491 with new magics. Also added Extensions dir to pythonpath to make
1486 importing extensions easy.
1492 importing extensions easy.
1487
1493
1488 * %store now complains when trying to store interactively declared
1494 * %store now complains when trying to store interactively declared
1489 classes / instances of those classes.
1495 classes / instances of those classes.
1490
1496
1491 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1497 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1492 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1498 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1493 if they exist, and ipy_user_conf.py with some defaults is created for
1499 if they exist, and ipy_user_conf.py with some defaults is created for
1494 the user.
1500 the user.
1495
1501
1496 * Startup rehashing done by the config file, not InterpreterExec.
1502 * Startup rehashing done by the config file, not InterpreterExec.
1497 This means system commands are available even without selecting the
1503 This means system commands are available even without selecting the
1498 pysh profile. It's the sensible default after all.
1504 pysh profile. It's the sensible default after all.
1499
1505
1500 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1506 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1501
1507
1502 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1508 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1503 multiline code with autoindent on working. But I am really not
1509 multiline code with autoindent on working. But I am really not
1504 sure, so this needs more testing. Will commit a debug-enabled
1510 sure, so this needs more testing. Will commit a debug-enabled
1505 version for now, while I test it some more, so that Ville and
1511 version for now, while I test it some more, so that Ville and
1506 others may also catch any problems. Also made
1512 others may also catch any problems. Also made
1507 self.indent_current_str() a method, to ensure that there's no
1513 self.indent_current_str() a method, to ensure that there's no
1508 chance of the indent space count and the corresponding string
1514 chance of the indent space count and the corresponding string
1509 falling out of sync. All code needing the string should just call
1515 falling out of sync. All code needing the string should just call
1510 the method.
1516 the method.
1511
1517
1512 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1518 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1519
1514 * IPython/Magic.py (magic_edit): fix check for when users don't
1520 * IPython/Magic.py (magic_edit): fix check for when users don't
1515 save their output files, the try/except was in the wrong section.
1521 save their output files, the try/except was in the wrong section.
1516
1522
1517 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1523 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1518
1524
1519 * IPython/Magic.py (magic_run): fix __file__ global missing from
1525 * IPython/Magic.py (magic_run): fix __file__ global missing from
1520 script's namespace when executed via %run. After a report by
1526 script's namespace when executed via %run. After a report by
1521 Vivian.
1527 Vivian.
1522
1528
1523 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1529 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1524 when using python 2.4. The parent constructor changed in 2.4, and
1530 when using python 2.4. The parent constructor changed in 2.4, and
1525 we need to track it directly (we can't call it, as it messes up
1531 we need to track it directly (we can't call it, as it messes up
1526 readline and tab-completion inside our pdb would stop working).
1532 readline and tab-completion inside our pdb would stop working).
1527 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1533 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1528
1534
1529 2006-01-16 Ville Vainio <vivainio@gmail.com>
1535 2006-01-16 Ville Vainio <vivainio@gmail.com>
1530
1536
1531 * Ipython/magic.py: Reverted back to old %edit functionality
1537 * Ipython/magic.py: Reverted back to old %edit functionality
1532 that returns file contents on exit.
1538 that returns file contents on exit.
1533
1539
1534 * IPython/path.py: Added Jason Orendorff's "path" module to
1540 * IPython/path.py: Added Jason Orendorff's "path" module to
1535 IPython tree, http://www.jorendorff.com/articles/python/path/.
1541 IPython tree, http://www.jorendorff.com/articles/python/path/.
1536 You can get path objects conveniently through %sc, and !!, e.g.:
1542 You can get path objects conveniently through %sc, and !!, e.g.:
1537 sc files=ls
1543 sc files=ls
1538 for p in files.paths: # or files.p
1544 for p in files.paths: # or files.p
1539 print p,p.mtime
1545 print p,p.mtime
1540
1546
1541 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1547 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1542 now work again without considering the exclusion regexp -
1548 now work again without considering the exclusion regexp -
1543 hence, things like ',foo my/path' turn to 'foo("my/path")'
1549 hence, things like ',foo my/path' turn to 'foo("my/path")'
1544 instead of syntax error.
1550 instead of syntax error.
1545
1551
1546
1552
1547 2006-01-14 Ville Vainio <vivainio@gmail.com>
1553 2006-01-14 Ville Vainio <vivainio@gmail.com>
1548
1554
1549 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1555 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1550 ipapi decorators for python 2.4 users, options() provides access to rc
1556 ipapi decorators for python 2.4 users, options() provides access to rc
1551 data.
1557 data.
1552
1558
1553 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1559 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1554 as path separators (even on Linux ;-). Space character after
1560 as path separators (even on Linux ;-). Space character after
1555 backslash (as yielded by tab completer) is still space;
1561 backslash (as yielded by tab completer) is still space;
1556 "%cd long\ name" works as expected.
1562 "%cd long\ name" works as expected.
1557
1563
1558 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1564 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1559 as "chain of command", with priority. API stays the same,
1565 as "chain of command", with priority. API stays the same,
1560 TryNext exception raised by a hook function signals that
1566 TryNext exception raised by a hook function signals that
1561 current hook failed and next hook should try handling it, as
1567 current hook failed and next hook should try handling it, as
1562 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1568 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1563 requested configurable display hook, which is now implemented.
1569 requested configurable display hook, which is now implemented.
1564
1570
1565 2006-01-13 Ville Vainio <vivainio@gmail.com>
1571 2006-01-13 Ville Vainio <vivainio@gmail.com>
1566
1572
1567 * IPython/platutils*.py: platform specific utility functions,
1573 * IPython/platutils*.py: platform specific utility functions,
1568 so far only set_term_title is implemented (change terminal
1574 so far only set_term_title is implemented (change terminal
1569 label in windowing systems). %cd now changes the title to
1575 label in windowing systems). %cd now changes the title to
1570 current dir.
1576 current dir.
1571
1577
1572 * IPython/Release.py: Added myself to "authors" list,
1578 * IPython/Release.py: Added myself to "authors" list,
1573 had to create new files.
1579 had to create new files.
1574
1580
1575 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1581 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1576 shell escape; not a known bug but had potential to be one in the
1582 shell escape; not a known bug but had potential to be one in the
1577 future.
1583 future.
1578
1584
1579 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1585 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1580 extension API for IPython! See the module for usage example. Fix
1586 extension API for IPython! See the module for usage example. Fix
1581 OInspect for docstring-less magic functions.
1587 OInspect for docstring-less magic functions.
1582
1588
1583
1589
1584 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1590 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1585
1591
1586 * IPython/iplib.py (raw_input): temporarily deactivate all
1592 * IPython/iplib.py (raw_input): temporarily deactivate all
1587 attempts at allowing pasting of code with autoindent on. It
1593 attempts at allowing pasting of code with autoindent on. It
1588 introduced bugs (reported by Prabhu) and I can't seem to find a
1594 introduced bugs (reported by Prabhu) and I can't seem to find a
1589 robust combination which works in all cases. Will have to revisit
1595 robust combination which works in all cases. Will have to revisit
1590 later.
1596 later.
1591
1597
1592 * IPython/genutils.py: remove isspace() function. We've dropped
1598 * IPython/genutils.py: remove isspace() function. We've dropped
1593 2.2 compatibility, so it's OK to use the string method.
1599 2.2 compatibility, so it's OK to use the string method.
1594
1600
1595 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1601 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1596
1602
1597 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1603 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1598 matching what NOT to autocall on, to include all python binary
1604 matching what NOT to autocall on, to include all python binary
1599 operators (including things like 'and', 'or', 'is' and 'in').
1605 operators (including things like 'and', 'or', 'is' and 'in').
1600 Prompted by a bug report on 'foo & bar', but I realized we had
1606 Prompted by a bug report on 'foo & bar', but I realized we had
1601 many more potential bug cases with other operators. The regexp is
1607 many more potential bug cases with other operators. The regexp is
1602 self.re_exclude_auto, it's fairly commented.
1608 self.re_exclude_auto, it's fairly commented.
1603
1609
1604 2006-01-12 Ville Vainio <vivainio@gmail.com>
1610 2006-01-12 Ville Vainio <vivainio@gmail.com>
1605
1611
1606 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1612 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1607 Prettified and hardened string/backslash quoting with ipsystem(),
1613 Prettified and hardened string/backslash quoting with ipsystem(),
1608 ipalias() and ipmagic(). Now even \ characters are passed to
1614 ipalias() and ipmagic(). Now even \ characters are passed to
1609 %magics, !shell escapes and aliases exactly as they are in the
1615 %magics, !shell escapes and aliases exactly as they are in the
1610 ipython command line. Should improve backslash experience,
1616 ipython command line. Should improve backslash experience,
1611 particularly in Windows (path delimiter for some commands that
1617 particularly in Windows (path delimiter for some commands that
1612 won't understand '/'), but Unix benefits as well (regexps). %cd
1618 won't understand '/'), but Unix benefits as well (regexps). %cd
1613 magic still doesn't support backslash path delimiters, though. Also
1619 magic still doesn't support backslash path delimiters, though. Also
1614 deleted all pretense of supporting multiline command strings in
1620 deleted all pretense of supporting multiline command strings in
1615 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1621 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1616
1622
1617 * doc/build_doc_instructions.txt added. Documentation on how to
1623 * doc/build_doc_instructions.txt added. Documentation on how to
1618 use doc/update_manual.py, added yesterday. Both files contributed
1624 use doc/update_manual.py, added yesterday. Both files contributed
1619 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1625 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1620 doc/*.sh for deprecation at a later date.
1626 doc/*.sh for deprecation at a later date.
1621
1627
1622 * /ipython.py Added ipython.py to root directory for
1628 * /ipython.py Added ipython.py to root directory for
1623 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1629 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1624 ipython.py) and development convenience (no need to keep doing
1630 ipython.py) and development convenience (no need to keep doing
1625 "setup.py install" between changes).
1631 "setup.py install" between changes).
1626
1632
1627 * Made ! and !! shell escapes work (again) in multiline expressions:
1633 * Made ! and !! shell escapes work (again) in multiline expressions:
1628 if 1:
1634 if 1:
1629 !ls
1635 !ls
1630 !!ls
1636 !!ls
1631
1637
1632 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1638 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1633
1639
1634 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1640 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1635 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1641 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1636 module in case-insensitive installation. Was causing crashes
1642 module in case-insensitive installation. Was causing crashes
1637 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1643 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1638
1644
1639 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1645 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1640 <marienz-AT-gentoo.org>, closes
1646 <marienz-AT-gentoo.org>, closes
1641 http://www.scipy.net/roundup/ipython/issue51.
1647 http://www.scipy.net/roundup/ipython/issue51.
1642
1648
1643 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1644
1650
1645 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1651 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1646 problem of excessive CPU usage under *nix and keyboard lag under
1652 problem of excessive CPU usage under *nix and keyboard lag under
1647 win32.
1653 win32.
1648
1654
1649 2006-01-10 *** Released version 0.7.0
1655 2006-01-10 *** Released version 0.7.0
1650
1656
1651 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1657 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1652
1658
1653 * IPython/Release.py (revision): tag version number to 0.7.0,
1659 * IPython/Release.py (revision): tag version number to 0.7.0,
1654 ready for release.
1660 ready for release.
1655
1661
1656 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1662 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1657 it informs the user of the name of the temp. file used. This can
1663 it informs the user of the name of the temp. file used. This can
1658 help if you decide later to reuse that same file, so you know
1664 help if you decide later to reuse that same file, so you know
1659 where to copy the info from.
1665 where to copy the info from.
1660
1666
1661 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1667 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1662
1668
1663 * setup_bdist_egg.py: little script to build an egg. Added
1669 * setup_bdist_egg.py: little script to build an egg. Added
1664 support in the release tools as well.
1670 support in the release tools as well.
1665
1671
1666 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1672 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1667
1673
1668 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1674 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1669 version selection (new -wxversion command line and ipythonrc
1675 version selection (new -wxversion command line and ipythonrc
1670 parameter). Patch contributed by Arnd Baecker
1676 parameter). Patch contributed by Arnd Baecker
1671 <arnd.baecker-AT-web.de>.
1677 <arnd.baecker-AT-web.de>.
1672
1678
1673 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1679 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1674 embedded instances, for variables defined at the interactive
1680 embedded instances, for variables defined at the interactive
1675 prompt of the embedded ipython. Reported by Arnd.
1681 prompt of the embedded ipython. Reported by Arnd.
1676
1682
1677 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1683 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1678 it can be used as a (stateful) toggle, or with a direct parameter.
1684 it can be used as a (stateful) toggle, or with a direct parameter.
1679
1685
1680 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1686 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1681 could be triggered in certain cases and cause the traceback
1687 could be triggered in certain cases and cause the traceback
1682 printer not to work.
1688 printer not to work.
1683
1689
1684 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1690 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1685
1691
1686 * IPython/iplib.py (_should_recompile): Small fix, closes
1692 * IPython/iplib.py (_should_recompile): Small fix, closes
1687 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1693 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1688
1694
1689 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1695 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1690
1696
1691 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1697 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1692 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1698 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1693 Moad for help with tracking it down.
1699 Moad for help with tracking it down.
1694
1700
1695 * IPython/iplib.py (handle_auto): fix autocall handling for
1701 * IPython/iplib.py (handle_auto): fix autocall handling for
1696 objects which support BOTH __getitem__ and __call__ (so that f [x]
1702 objects which support BOTH __getitem__ and __call__ (so that f [x]
1697 is left alone, instead of becoming f([x]) automatically).
1703 is left alone, instead of becoming f([x]) automatically).
1698
1704
1699 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1705 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1700 Ville's patch.
1706 Ville's patch.
1701
1707
1702 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1708 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1709
1704 * IPython/iplib.py (handle_auto): changed autocall semantics to
1710 * IPython/iplib.py (handle_auto): changed autocall semantics to
1705 include 'smart' mode, where the autocall transformation is NOT
1711 include 'smart' mode, where the autocall transformation is NOT
1706 applied if there are no arguments on the line. This allows you to
1712 applied if there are no arguments on the line. This allows you to
1707 just type 'foo' if foo is a callable to see its internal form,
1713 just type 'foo' if foo is a callable to see its internal form,
1708 instead of having it called with no arguments (typically a
1714 instead of having it called with no arguments (typically a
1709 mistake). The old 'full' autocall still exists: for that, you
1715 mistake). The old 'full' autocall still exists: for that, you
1710 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1716 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1711
1717
1712 * IPython/completer.py (Completer.attr_matches): add
1718 * IPython/completer.py (Completer.attr_matches): add
1713 tab-completion support for Enthoughts' traits. After a report by
1719 tab-completion support for Enthoughts' traits. After a report by
1714 Arnd and a patch by Prabhu.
1720 Arnd and a patch by Prabhu.
1715
1721
1716 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1722 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1717
1723
1718 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1724 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1719 Schmolck's patch to fix inspect.getinnerframes().
1725 Schmolck's patch to fix inspect.getinnerframes().
1720
1726
1721 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1727 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1722 for embedded instances, regarding handling of namespaces and items
1728 for embedded instances, regarding handling of namespaces and items
1723 added to the __builtin__ one. Multiple embedded instances and
1729 added to the __builtin__ one. Multiple embedded instances and
1724 recursive embeddings should work better now (though I'm not sure
1730 recursive embeddings should work better now (though I'm not sure
1725 I've got all the corner cases fixed, that code is a bit of a brain
1731 I've got all the corner cases fixed, that code is a bit of a brain
1726 twister).
1732 twister).
1727
1733
1728 * IPython/Magic.py (magic_edit): added support to edit in-memory
1734 * IPython/Magic.py (magic_edit): added support to edit in-memory
1729 macros (automatically creates the necessary temp files). %edit
1735 macros (automatically creates the necessary temp files). %edit
1730 also doesn't return the file contents anymore, it's just noise.
1736 also doesn't return the file contents anymore, it's just noise.
1731
1737
1732 * IPython/completer.py (Completer.attr_matches): revert change to
1738 * IPython/completer.py (Completer.attr_matches): revert change to
1733 complete only on attributes listed in __all__. I realized it
1739 complete only on attributes listed in __all__. I realized it
1734 cripples the tab-completion system as a tool for exploring the
1740 cripples the tab-completion system as a tool for exploring the
1735 internals of unknown libraries (it renders any non-__all__
1741 internals of unknown libraries (it renders any non-__all__
1736 attribute off-limits). I got bit by this when trying to see
1742 attribute off-limits). I got bit by this when trying to see
1737 something inside the dis module.
1743 something inside the dis module.
1738
1744
1739 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1745 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1740
1746
1741 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1747 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1742 namespace for users and extension writers to hold data in. This
1748 namespace for users and extension writers to hold data in. This
1743 follows the discussion in
1749 follows the discussion in
1744 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1750 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1745
1751
1746 * IPython/completer.py (IPCompleter.complete): small patch to help
1752 * IPython/completer.py (IPCompleter.complete): small patch to help
1747 tab-completion under Emacs, after a suggestion by John Barnard
1753 tab-completion under Emacs, after a suggestion by John Barnard
1748 <barnarj-AT-ccf.org>.
1754 <barnarj-AT-ccf.org>.
1749
1755
1750 * IPython/Magic.py (Magic.extract_input_slices): added support for
1756 * IPython/Magic.py (Magic.extract_input_slices): added support for
1751 the slice notation in magics to use N-M to represent numbers N...M
1757 the slice notation in magics to use N-M to represent numbers N...M
1752 (closed endpoints). This is used by %macro and %save.
1758 (closed endpoints). This is used by %macro and %save.
1753
1759
1754 * IPython/completer.py (Completer.attr_matches): for modules which
1760 * IPython/completer.py (Completer.attr_matches): for modules which
1755 define __all__, complete only on those. After a patch by Jeffrey
1761 define __all__, complete only on those. After a patch by Jeffrey
1756 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1762 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1757 speed up this routine.
1763 speed up this routine.
1758
1764
1759 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1765 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1760 don't know if this is the end of it, but the behavior now is
1766 don't know if this is the end of it, but the behavior now is
1761 certainly much more correct. Note that coupled with macros,
1767 certainly much more correct. Note that coupled with macros,
1762 slightly surprising (at first) behavior may occur: a macro will in
1768 slightly surprising (at first) behavior may occur: a macro will in
1763 general expand to multiple lines of input, so upon exiting, the
1769 general expand to multiple lines of input, so upon exiting, the
1764 in/out counters will both be bumped by the corresponding amount
1770 in/out counters will both be bumped by the corresponding amount
1765 (as if the macro's contents had been typed interactively). Typing
1771 (as if the macro's contents had been typed interactively). Typing
1766 %hist will reveal the intermediate (silently processed) lines.
1772 %hist will reveal the intermediate (silently processed) lines.
1767
1773
1768 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1774 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1769 pickle to fail (%run was overwriting __main__ and not restoring
1775 pickle to fail (%run was overwriting __main__ and not restoring
1770 it, but pickle relies on __main__ to operate).
1776 it, but pickle relies on __main__ to operate).
1771
1777
1772 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1778 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1773 using properties, but forgot to make the main InteractiveShell
1779 using properties, but forgot to make the main InteractiveShell
1774 class a new-style class. Properties fail silently, and
1780 class a new-style class. Properties fail silently, and
1775 mysteriously, with old-style class (getters work, but
1781 mysteriously, with old-style class (getters work, but
1776 setters don't do anything).
1782 setters don't do anything).
1777
1783
1778 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1784 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1779
1785
1780 * IPython/Magic.py (magic_history): fix history reporting bug (I
1786 * IPython/Magic.py (magic_history): fix history reporting bug (I
1781 know some nasties are still there, I just can't seem to find a
1787 know some nasties are still there, I just can't seem to find a
1782 reproducible test case to track them down; the input history is
1788 reproducible test case to track them down; the input history is
1783 falling out of sync...)
1789 falling out of sync...)
1784
1790
1785 * IPython/iplib.py (handle_shell_escape): fix bug where both
1791 * IPython/iplib.py (handle_shell_escape): fix bug where both
1786 aliases and system accesses where broken for indented code (such
1792 aliases and system accesses where broken for indented code (such
1787 as loops).
1793 as loops).
1788
1794
1789 * IPython/genutils.py (shell): fix small but critical bug for
1795 * IPython/genutils.py (shell): fix small but critical bug for
1790 win32 system access.
1796 win32 system access.
1791
1797
1792 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1798 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1799
1794 * IPython/iplib.py (showtraceback): remove use of the
1800 * IPython/iplib.py (showtraceback): remove use of the
1795 sys.last_{type/value/traceback} structures, which are non
1801 sys.last_{type/value/traceback} structures, which are non
1796 thread-safe.
1802 thread-safe.
1797 (_prefilter): change control flow to ensure that we NEVER
1803 (_prefilter): change control flow to ensure that we NEVER
1798 introspect objects when autocall is off. This will guarantee that
1804 introspect objects when autocall is off. This will guarantee that
1799 having an input line of the form 'x.y', where access to attribute
1805 having an input line of the form 'x.y', where access to attribute
1800 'y' has side effects, doesn't trigger the side effect TWICE. It
1806 'y' has side effects, doesn't trigger the side effect TWICE. It
1801 is important to note that, with autocall on, these side effects
1807 is important to note that, with autocall on, these side effects
1802 can still happen.
1808 can still happen.
1803 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1809 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1804 trio. IPython offers these three kinds of special calls which are
1810 trio. IPython offers these three kinds of special calls which are
1805 not python code, and it's a good thing to have their call method
1811 not python code, and it's a good thing to have their call method
1806 be accessible as pure python functions (not just special syntax at
1812 be accessible as pure python functions (not just special syntax at
1807 the command line). It gives us a better internal implementation
1813 the command line). It gives us a better internal implementation
1808 structure, as well as exposing these for user scripting more
1814 structure, as well as exposing these for user scripting more
1809 cleanly.
1815 cleanly.
1810
1816
1811 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1817 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1812 file. Now that they'll be more likely to be used with the
1818 file. Now that they'll be more likely to be used with the
1813 persistance system (%store), I want to make sure their module path
1819 persistance system (%store), I want to make sure their module path
1814 doesn't change in the future, so that we don't break things for
1820 doesn't change in the future, so that we don't break things for
1815 users' persisted data.
1821 users' persisted data.
1816
1822
1817 * IPython/iplib.py (autoindent_update): move indentation
1823 * IPython/iplib.py (autoindent_update): move indentation
1818 management into the _text_ processing loop, not the keyboard
1824 management into the _text_ processing loop, not the keyboard
1819 interactive one. This is necessary to correctly process non-typed
1825 interactive one. This is necessary to correctly process non-typed
1820 multiline input (such as macros).
1826 multiline input (such as macros).
1821
1827
1822 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1828 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1823 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1829 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1824 which was producing problems in the resulting manual.
1830 which was producing problems in the resulting manual.
1825 (magic_whos): improve reporting of instances (show their class,
1831 (magic_whos): improve reporting of instances (show their class,
1826 instead of simply printing 'instance' which isn't terribly
1832 instead of simply printing 'instance' which isn't terribly
1827 informative).
1833 informative).
1828
1834
1829 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1835 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1830 (minor mods) to support network shares under win32.
1836 (minor mods) to support network shares under win32.
1831
1837
1832 * IPython/winconsole.py (get_console_size): add new winconsole
1838 * IPython/winconsole.py (get_console_size): add new winconsole
1833 module and fixes to page_dumb() to improve its behavior under
1839 module and fixes to page_dumb() to improve its behavior under
1834 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1840 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1835
1841
1836 * IPython/Magic.py (Macro): simplified Macro class to just
1842 * IPython/Magic.py (Macro): simplified Macro class to just
1837 subclass list. We've had only 2.2 compatibility for a very long
1843 subclass list. We've had only 2.2 compatibility for a very long
1838 time, yet I was still avoiding subclassing the builtin types. No
1844 time, yet I was still avoiding subclassing the builtin types. No
1839 more (I'm also starting to use properties, though I won't shift to
1845 more (I'm also starting to use properties, though I won't shift to
1840 2.3-specific features quite yet).
1846 2.3-specific features quite yet).
1841 (magic_store): added Ville's patch for lightweight variable
1847 (magic_store): added Ville's patch for lightweight variable
1842 persistence, after a request on the user list by Matt Wilkie
1848 persistence, after a request on the user list by Matt Wilkie
1843 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1849 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1844 details.
1850 details.
1845
1851
1846 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1852 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1847 changed the default logfile name from 'ipython.log' to
1853 changed the default logfile name from 'ipython.log' to
1848 'ipython_log.py'. These logs are real python files, and now that
1854 'ipython_log.py'. These logs are real python files, and now that
1849 we have much better multiline support, people are more likely to
1855 we have much better multiline support, people are more likely to
1850 want to use them as such. Might as well name them correctly.
1856 want to use them as such. Might as well name them correctly.
1851
1857
1852 * IPython/Magic.py: substantial cleanup. While we can't stop
1858 * IPython/Magic.py: substantial cleanup. While we can't stop
1853 using magics as mixins, due to the existing customizations 'out
1859 using magics as mixins, due to the existing customizations 'out
1854 there' which rely on the mixin naming conventions, at least I
1860 there' which rely on the mixin naming conventions, at least I
1855 cleaned out all cross-class name usage. So once we are OK with
1861 cleaned out all cross-class name usage. So once we are OK with
1856 breaking compatibility, the two systems can be separated.
1862 breaking compatibility, the two systems can be separated.
1857
1863
1858 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1864 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1859 anymore, and the class is a fair bit less hideous as well. New
1865 anymore, and the class is a fair bit less hideous as well. New
1860 features were also introduced: timestamping of input, and logging
1866 features were also introduced: timestamping of input, and logging
1861 of output results. These are user-visible with the -t and -o
1867 of output results. These are user-visible with the -t and -o
1862 options to %logstart. Closes
1868 options to %logstart. Closes
1863 http://www.scipy.net/roundup/ipython/issue11 and a request by
1869 http://www.scipy.net/roundup/ipython/issue11 and a request by
1864 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1870 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1865
1871
1866 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1872 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1867
1873
1868 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1874 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1869 better handle backslashes in paths. See the thread 'More Windows
1875 better handle backslashes in paths. See the thread 'More Windows
1870 questions part 2 - \/ characters revisited' on the iypthon user
1876 questions part 2 - \/ characters revisited' on the iypthon user
1871 list:
1877 list:
1872 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1878 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1873
1879
1874 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1880 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1875
1881
1876 (InteractiveShell.__init__): change threaded shells to not use the
1882 (InteractiveShell.__init__): change threaded shells to not use the
1877 ipython crash handler. This was causing more problems than not,
1883 ipython crash handler. This was causing more problems than not,
1878 as exceptions in the main thread (GUI code, typically) would
1884 as exceptions in the main thread (GUI code, typically) would
1879 always show up as a 'crash', when they really weren't.
1885 always show up as a 'crash', when they really weren't.
1880
1886
1881 The colors and exception mode commands (%colors/%xmode) have been
1887 The colors and exception mode commands (%colors/%xmode) have been
1882 synchronized to also take this into account, so users can get
1888 synchronized to also take this into account, so users can get
1883 verbose exceptions for their threaded code as well. I also added
1889 verbose exceptions for their threaded code as well. I also added
1884 support for activating pdb inside this exception handler as well,
1890 support for activating pdb inside this exception handler as well,
1885 so now GUI authors can use IPython's enhanced pdb at runtime.
1891 so now GUI authors can use IPython's enhanced pdb at runtime.
1886
1892
1887 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1893 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1888 true by default, and add it to the shipped ipythonrc file. Since
1894 true by default, and add it to the shipped ipythonrc file. Since
1889 this asks the user before proceeding, I think it's OK to make it
1895 this asks the user before proceeding, I think it's OK to make it
1890 true by default.
1896 true by default.
1891
1897
1892 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1898 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1893 of the previous special-casing of input in the eval loop. I think
1899 of the previous special-casing of input in the eval loop. I think
1894 this is cleaner, as they really are commands and shouldn't have
1900 this is cleaner, as they really are commands and shouldn't have
1895 a special role in the middle of the core code.
1901 a special role in the middle of the core code.
1896
1902
1897 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1903 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1898
1904
1899 * IPython/iplib.py (edit_syntax_error): added support for
1905 * IPython/iplib.py (edit_syntax_error): added support for
1900 automatically reopening the editor if the file had a syntax error
1906 automatically reopening the editor if the file had a syntax error
1901 in it. Thanks to scottt who provided the patch at:
1907 in it. Thanks to scottt who provided the patch at:
1902 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1908 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1903 version committed).
1909 version committed).
1904
1910
1905 * IPython/iplib.py (handle_normal): add suport for multi-line
1911 * IPython/iplib.py (handle_normal): add suport for multi-line
1906 input with emtpy lines. This fixes
1912 input with emtpy lines. This fixes
1907 http://www.scipy.net/roundup/ipython/issue43 and a similar
1913 http://www.scipy.net/roundup/ipython/issue43 and a similar
1908 discussion on the user list.
1914 discussion on the user list.
1909
1915
1910 WARNING: a behavior change is necessarily introduced to support
1916 WARNING: a behavior change is necessarily introduced to support
1911 blank lines: now a single blank line with whitespace does NOT
1917 blank lines: now a single blank line with whitespace does NOT
1912 break the input loop, which means that when autoindent is on, by
1918 break the input loop, which means that when autoindent is on, by
1913 default hitting return on the next (indented) line does NOT exit.
1919 default hitting return on the next (indented) line does NOT exit.
1914
1920
1915 Instead, to exit a multiline input you can either have:
1921 Instead, to exit a multiline input you can either have:
1916
1922
1917 - TWO whitespace lines (just hit return again), or
1923 - TWO whitespace lines (just hit return again), or
1918 - a single whitespace line of a different length than provided
1924 - a single whitespace line of a different length than provided
1919 by the autoindent (add or remove a space).
1925 by the autoindent (add or remove a space).
1920
1926
1921 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1927 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1922 module to better organize all readline-related functionality.
1928 module to better organize all readline-related functionality.
1923 I've deleted FlexCompleter and put all completion clases here.
1929 I've deleted FlexCompleter and put all completion clases here.
1924
1930
1925 * IPython/iplib.py (raw_input): improve indentation management.
1931 * IPython/iplib.py (raw_input): improve indentation management.
1926 It is now possible to paste indented code with autoindent on, and
1932 It is now possible to paste indented code with autoindent on, and
1927 the code is interpreted correctly (though it still looks bad on
1933 the code is interpreted correctly (though it still looks bad on
1928 screen, due to the line-oriented nature of ipython).
1934 screen, due to the line-oriented nature of ipython).
1929 (MagicCompleter.complete): change behavior so that a TAB key on an
1935 (MagicCompleter.complete): change behavior so that a TAB key on an
1930 otherwise empty line actually inserts a tab, instead of completing
1936 otherwise empty line actually inserts a tab, instead of completing
1931 on the entire global namespace. This makes it easier to use the
1937 on the entire global namespace. This makes it easier to use the
1932 TAB key for indentation. After a request by Hans Meine
1938 TAB key for indentation. After a request by Hans Meine
1933 <hans_meine-AT-gmx.net>
1939 <hans_meine-AT-gmx.net>
1934 (_prefilter): add support so that typing plain 'exit' or 'quit'
1940 (_prefilter): add support so that typing plain 'exit' or 'quit'
1935 does a sensible thing. Originally I tried to deviate as little as
1941 does a sensible thing. Originally I tried to deviate as little as
1936 possible from the default python behavior, but even that one may
1942 possible from the default python behavior, but even that one may
1937 change in this direction (thread on python-dev to that effect).
1943 change in this direction (thread on python-dev to that effect).
1938 Regardless, ipython should do the right thing even if CPython's
1944 Regardless, ipython should do the right thing even if CPython's
1939 '>>>' prompt doesn't.
1945 '>>>' prompt doesn't.
1940 (InteractiveShell): removed subclassing code.InteractiveConsole
1946 (InteractiveShell): removed subclassing code.InteractiveConsole
1941 class. By now we'd overridden just about all of its methods: I've
1947 class. By now we'd overridden just about all of its methods: I've
1942 copied the remaining two over, and now ipython is a standalone
1948 copied the remaining two over, and now ipython is a standalone
1943 class. This will provide a clearer picture for the chainsaw
1949 class. This will provide a clearer picture for the chainsaw
1944 branch refactoring.
1950 branch refactoring.
1945
1951
1946 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1952 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1947
1953
1948 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1954 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1949 failures for objects which break when dir() is called on them.
1955 failures for objects which break when dir() is called on them.
1950
1956
1951 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1957 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1952 distinct local and global namespaces in the completer API. This
1958 distinct local and global namespaces in the completer API. This
1953 change allows us to properly handle completion with distinct
1959 change allows us to properly handle completion with distinct
1954 scopes, including in embedded instances (this had never really
1960 scopes, including in embedded instances (this had never really
1955 worked correctly).
1961 worked correctly).
1956
1962
1957 Note: this introduces a change in the constructor for
1963 Note: this introduces a change in the constructor for
1958 MagicCompleter, as a new global_namespace parameter is now the
1964 MagicCompleter, as a new global_namespace parameter is now the
1959 second argument (the others were bumped one position).
1965 second argument (the others were bumped one position).
1960
1966
1961 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1967 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1962
1968
1963 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1969 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1964 embedded instances (which can be done now thanks to Vivian's
1970 embedded instances (which can be done now thanks to Vivian's
1965 frame-handling fixes for pdb).
1971 frame-handling fixes for pdb).
1966 (InteractiveShell.__init__): Fix namespace handling problem in
1972 (InteractiveShell.__init__): Fix namespace handling problem in
1967 embedded instances. We were overwriting __main__ unconditionally,
1973 embedded instances. We were overwriting __main__ unconditionally,
1968 and this should only be done for 'full' (non-embedded) IPython;
1974 and this should only be done for 'full' (non-embedded) IPython;
1969 embedded instances must respect the caller's __main__. Thanks to
1975 embedded instances must respect the caller's __main__. Thanks to
1970 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1976 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1971
1977
1972 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1978 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1973
1979
1974 * setup.py: added download_url to setup(). This registers the
1980 * setup.py: added download_url to setup(). This registers the
1975 download address at PyPI, which is not only useful to humans
1981 download address at PyPI, which is not only useful to humans
1976 browsing the site, but is also picked up by setuptools (the Eggs
1982 browsing the site, but is also picked up by setuptools (the Eggs
1977 machinery). Thanks to Ville and R. Kern for the info/discussion
1983 machinery). Thanks to Ville and R. Kern for the info/discussion
1978 on this.
1984 on this.
1979
1985
1980 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1986 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1981
1987
1982 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1988 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1983 This brings a lot of nice functionality to the pdb mode, which now
1989 This brings a lot of nice functionality to the pdb mode, which now
1984 has tab-completion, syntax highlighting, and better stack handling
1990 has tab-completion, syntax highlighting, and better stack handling
1985 than before. Many thanks to Vivian De Smedt
1991 than before. Many thanks to Vivian De Smedt
1986 <vivian-AT-vdesmedt.com> for the original patches.
1992 <vivian-AT-vdesmedt.com> for the original patches.
1987
1993
1988 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1994 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1989
1995
1990 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1996 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1991 sequence to consistently accept the banner argument. The
1997 sequence to consistently accept the banner argument. The
1992 inconsistency was tripping SAGE, thanks to Gary Zablackis
1998 inconsistency was tripping SAGE, thanks to Gary Zablackis
1993 <gzabl-AT-yahoo.com> for the report.
1999 <gzabl-AT-yahoo.com> for the report.
1994
2000
1995 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2001 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1996
2002
1997 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2003 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1998 Fix bug where a naked 'alias' call in the ipythonrc file would
2004 Fix bug where a naked 'alias' call in the ipythonrc file would
1999 cause a crash. Bug reported by Jorgen Stenarson.
2005 cause a crash. Bug reported by Jorgen Stenarson.
2000
2006
2001 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2007 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2002
2008
2003 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2009 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2004 startup time.
2010 startup time.
2005
2011
2006 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2012 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2007 instances had introduced a bug with globals in normal code. Now
2013 instances had introduced a bug with globals in normal code. Now
2008 it's working in all cases.
2014 it's working in all cases.
2009
2015
2010 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2016 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2011 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2017 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2012 has been introduced to set the default case sensitivity of the
2018 has been introduced to set the default case sensitivity of the
2013 searches. Users can still select either mode at runtime on a
2019 searches. Users can still select either mode at runtime on a
2014 per-search basis.
2020 per-search basis.
2015
2021
2016 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2022 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2017
2023
2018 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2024 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2019 attributes in wildcard searches for subclasses. Modified version
2025 attributes in wildcard searches for subclasses. Modified version
2020 of a patch by Jorgen.
2026 of a patch by Jorgen.
2021
2027
2022 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2028 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2023
2029
2024 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2030 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2025 embedded instances. I added a user_global_ns attribute to the
2031 embedded instances. I added a user_global_ns attribute to the
2026 InteractiveShell class to handle this.
2032 InteractiveShell class to handle this.
2027
2033
2028 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2034 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2029
2035
2030 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2036 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2031 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2037 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2032 (reported under win32, but may happen also in other platforms).
2038 (reported under win32, but may happen also in other platforms).
2033 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2039 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2034
2040
2035 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2041 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2036
2042
2037 * IPython/Magic.py (magic_psearch): new support for wildcard
2043 * IPython/Magic.py (magic_psearch): new support for wildcard
2038 patterns. Now, typing ?a*b will list all names which begin with a
2044 patterns. Now, typing ?a*b will list all names which begin with a
2039 and end in b, for example. The %psearch magic has full
2045 and end in b, for example. The %psearch magic has full
2040 docstrings. Many thanks to JΓΆrgen Stenarson
2046 docstrings. Many thanks to JΓΆrgen Stenarson
2041 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2047 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2042 implementing this functionality.
2048 implementing this functionality.
2043
2049
2044 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2050 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2045
2051
2046 * Manual: fixed long-standing annoyance of double-dashes (as in
2052 * Manual: fixed long-standing annoyance of double-dashes (as in
2047 --prefix=~, for example) being stripped in the HTML version. This
2053 --prefix=~, for example) being stripped in the HTML version. This
2048 is a latex2html bug, but a workaround was provided. Many thanks
2054 is a latex2html bug, but a workaround was provided. Many thanks
2049 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2055 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2050 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2056 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2051 rolling. This seemingly small issue had tripped a number of users
2057 rolling. This seemingly small issue had tripped a number of users
2052 when first installing, so I'm glad to see it gone.
2058 when first installing, so I'm glad to see it gone.
2053
2059
2054 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2060 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2055
2061
2056 * IPython/Extensions/numeric_formats.py: fix missing import,
2062 * IPython/Extensions/numeric_formats.py: fix missing import,
2057 reported by Stephen Walton.
2063 reported by Stephen Walton.
2058
2064
2059 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2065 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2060
2066
2061 * IPython/demo.py: finish demo module, fully documented now.
2067 * IPython/demo.py: finish demo module, fully documented now.
2062
2068
2063 * IPython/genutils.py (file_read): simple little utility to read a
2069 * IPython/genutils.py (file_read): simple little utility to read a
2064 file and ensure it's closed afterwards.
2070 file and ensure it's closed afterwards.
2065
2071
2066 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2072 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2067
2073
2068 * IPython/demo.py (Demo.__init__): added support for individually
2074 * IPython/demo.py (Demo.__init__): added support for individually
2069 tagging blocks for automatic execution.
2075 tagging blocks for automatic execution.
2070
2076
2071 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2077 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2072 syntax-highlighted python sources, requested by John.
2078 syntax-highlighted python sources, requested by John.
2073
2079
2074 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2080 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2075
2081
2076 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2082 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2077 finishing.
2083 finishing.
2078
2084
2079 * IPython/genutils.py (shlex_split): moved from Magic to here,
2085 * IPython/genutils.py (shlex_split): moved from Magic to here,
2080 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2086 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2081
2087
2082 * IPython/demo.py (Demo.__init__): added support for silent
2088 * IPython/demo.py (Demo.__init__): added support for silent
2083 blocks, improved marks as regexps, docstrings written.
2089 blocks, improved marks as regexps, docstrings written.
2084 (Demo.__init__): better docstring, added support for sys.argv.
2090 (Demo.__init__): better docstring, added support for sys.argv.
2085
2091
2086 * IPython/genutils.py (marquee): little utility used by the demo
2092 * IPython/genutils.py (marquee): little utility used by the demo
2087 code, handy in general.
2093 code, handy in general.
2088
2094
2089 * IPython/demo.py (Demo.__init__): new class for interactive
2095 * IPython/demo.py (Demo.__init__): new class for interactive
2090 demos. Not documented yet, I just wrote it in a hurry for
2096 demos. Not documented yet, I just wrote it in a hurry for
2091 scipy'05. Will docstring later.
2097 scipy'05. Will docstring later.
2092
2098
2093 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2099 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2094
2100
2095 * IPython/Shell.py (sigint_handler): Drastic simplification which
2101 * IPython/Shell.py (sigint_handler): Drastic simplification which
2096 also seems to make Ctrl-C work correctly across threads! This is
2102 also seems to make Ctrl-C work correctly across threads! This is
2097 so simple, that I can't beleive I'd missed it before. Needs more
2103 so simple, that I can't beleive I'd missed it before. Needs more
2098 testing, though.
2104 testing, though.
2099 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2105 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2100 like this before...
2106 like this before...
2101
2107
2102 * IPython/genutils.py (get_home_dir): add protection against
2108 * IPython/genutils.py (get_home_dir): add protection against
2103 non-dirs in win32 registry.
2109 non-dirs in win32 registry.
2104
2110
2105 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2111 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2106 bug where dict was mutated while iterating (pysh crash).
2112 bug where dict was mutated while iterating (pysh crash).
2107
2113
2108 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2114 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2109
2115
2110 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2116 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2111 spurious newlines added by this routine. After a report by
2117 spurious newlines added by this routine. After a report by
2112 F. Mantegazza.
2118 F. Mantegazza.
2113
2119
2114 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2120 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2115
2121
2116 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2122 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2117 calls. These were a leftover from the GTK 1.x days, and can cause
2123 calls. These were a leftover from the GTK 1.x days, and can cause
2118 problems in certain cases (after a report by John Hunter).
2124 problems in certain cases (after a report by John Hunter).
2119
2125
2120 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2126 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2121 os.getcwd() fails at init time. Thanks to patch from David Remahl
2127 os.getcwd() fails at init time. Thanks to patch from David Remahl
2122 <chmod007-AT-mac.com>.
2128 <chmod007-AT-mac.com>.
2123 (InteractiveShell.__init__): prevent certain special magics from
2129 (InteractiveShell.__init__): prevent certain special magics from
2124 being shadowed by aliases. Closes
2130 being shadowed by aliases. Closes
2125 http://www.scipy.net/roundup/ipython/issue41.
2131 http://www.scipy.net/roundup/ipython/issue41.
2126
2132
2127 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2133 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2128
2134
2129 * IPython/iplib.py (InteractiveShell.complete): Added new
2135 * IPython/iplib.py (InteractiveShell.complete): Added new
2130 top-level completion method to expose the completion mechanism
2136 top-level completion method to expose the completion mechanism
2131 beyond readline-based environments.
2137 beyond readline-based environments.
2132
2138
2133 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2139 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2134
2140
2135 * tools/ipsvnc (svnversion): fix svnversion capture.
2141 * tools/ipsvnc (svnversion): fix svnversion capture.
2136
2142
2137 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2143 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2138 attribute to self, which was missing. Before, it was set by a
2144 attribute to self, which was missing. Before, it was set by a
2139 routine which in certain cases wasn't being called, so the
2145 routine which in certain cases wasn't being called, so the
2140 instance could end up missing the attribute. This caused a crash.
2146 instance could end up missing the attribute. This caused a crash.
2141 Closes http://www.scipy.net/roundup/ipython/issue40.
2147 Closes http://www.scipy.net/roundup/ipython/issue40.
2142
2148
2143 2005-08-16 Fernando Perez <fperez@colorado.edu>
2149 2005-08-16 Fernando Perez <fperez@colorado.edu>
2144
2150
2145 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2151 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2146 contains non-string attribute. Closes
2152 contains non-string attribute. Closes
2147 http://www.scipy.net/roundup/ipython/issue38.
2153 http://www.scipy.net/roundup/ipython/issue38.
2148
2154
2149 2005-08-14 Fernando Perez <fperez@colorado.edu>
2155 2005-08-14 Fernando Perez <fperez@colorado.edu>
2150
2156
2151 * tools/ipsvnc: Minor improvements, to add changeset info.
2157 * tools/ipsvnc: Minor improvements, to add changeset info.
2152
2158
2153 2005-08-12 Fernando Perez <fperez@colorado.edu>
2159 2005-08-12 Fernando Perez <fperez@colorado.edu>
2154
2160
2155 * IPython/iplib.py (runsource): remove self.code_to_run_src
2161 * IPython/iplib.py (runsource): remove self.code_to_run_src
2156 attribute. I realized this is nothing more than
2162 attribute. I realized this is nothing more than
2157 '\n'.join(self.buffer), and having the same data in two different
2163 '\n'.join(self.buffer), and having the same data in two different
2158 places is just asking for synchronization bugs. This may impact
2164 places is just asking for synchronization bugs. This may impact
2159 people who have custom exception handlers, so I need to warn
2165 people who have custom exception handlers, so I need to warn
2160 ipython-dev about it (F. Mantegazza may use them).
2166 ipython-dev about it (F. Mantegazza may use them).
2161
2167
2162 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2168 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2163
2169
2164 * IPython/genutils.py: fix 2.2 compatibility (generators)
2170 * IPython/genutils.py: fix 2.2 compatibility (generators)
2165
2171
2166 2005-07-18 Fernando Perez <fperez@colorado.edu>
2172 2005-07-18 Fernando Perez <fperez@colorado.edu>
2167
2173
2168 * IPython/genutils.py (get_home_dir): fix to help users with
2174 * IPython/genutils.py (get_home_dir): fix to help users with
2169 invalid $HOME under win32.
2175 invalid $HOME under win32.
2170
2176
2171 2005-07-17 Fernando Perez <fperez@colorado.edu>
2177 2005-07-17 Fernando Perez <fperez@colorado.edu>
2172
2178
2173 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2179 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2174 some old hacks and clean up a bit other routines; code should be
2180 some old hacks and clean up a bit other routines; code should be
2175 simpler and a bit faster.
2181 simpler and a bit faster.
2176
2182
2177 * IPython/iplib.py (interact): removed some last-resort attempts
2183 * IPython/iplib.py (interact): removed some last-resort attempts
2178 to survive broken stdout/stderr. That code was only making it
2184 to survive broken stdout/stderr. That code was only making it
2179 harder to abstract out the i/o (necessary for gui integration),
2185 harder to abstract out the i/o (necessary for gui integration),
2180 and the crashes it could prevent were extremely rare in practice
2186 and the crashes it could prevent were extremely rare in practice
2181 (besides being fully user-induced in a pretty violent manner).
2187 (besides being fully user-induced in a pretty violent manner).
2182
2188
2183 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2189 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2184 Nothing major yet, but the code is simpler to read; this should
2190 Nothing major yet, but the code is simpler to read; this should
2185 make it easier to do more serious modifications in the future.
2191 make it easier to do more serious modifications in the future.
2186
2192
2187 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2193 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2188 which broke in .15 (thanks to a report by Ville).
2194 which broke in .15 (thanks to a report by Ville).
2189
2195
2190 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2196 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2191 be quite correct, I know next to nothing about unicode). This
2197 be quite correct, I know next to nothing about unicode). This
2192 will allow unicode strings to be used in prompts, amongst other
2198 will allow unicode strings to be used in prompts, amongst other
2193 cases. It also will prevent ipython from crashing when unicode
2199 cases. It also will prevent ipython from crashing when unicode
2194 shows up unexpectedly in many places. If ascii encoding fails, we
2200 shows up unexpectedly in many places. If ascii encoding fails, we
2195 assume utf_8. Currently the encoding is not a user-visible
2201 assume utf_8. Currently the encoding is not a user-visible
2196 setting, though it could be made so if there is demand for it.
2202 setting, though it could be made so if there is demand for it.
2197
2203
2198 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2204 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2199
2205
2200 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2206 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2201
2207
2202 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2208 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2203
2209
2204 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2210 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2205 code can work transparently for 2.2/2.3.
2211 code can work transparently for 2.2/2.3.
2206
2212
2207 2005-07-16 Fernando Perez <fperez@colorado.edu>
2213 2005-07-16 Fernando Perez <fperez@colorado.edu>
2208
2214
2209 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2215 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2210 out of the color scheme table used for coloring exception
2216 out of the color scheme table used for coloring exception
2211 tracebacks. This allows user code to add new schemes at runtime.
2217 tracebacks. This allows user code to add new schemes at runtime.
2212 This is a minimally modified version of the patch at
2218 This is a minimally modified version of the patch at
2213 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2219 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2214 for the contribution.
2220 for the contribution.
2215
2221
2216 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2222 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2217 slightly modified version of the patch in
2223 slightly modified version of the patch in
2218 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2224 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2219 to remove the previous try/except solution (which was costlier).
2225 to remove the previous try/except solution (which was costlier).
2220 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2226 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2221
2227
2222 2005-06-08 Fernando Perez <fperez@colorado.edu>
2228 2005-06-08 Fernando Perez <fperez@colorado.edu>
2223
2229
2224 * IPython/iplib.py (write/write_err): Add methods to abstract all
2230 * IPython/iplib.py (write/write_err): Add methods to abstract all
2225 I/O a bit more.
2231 I/O a bit more.
2226
2232
2227 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2233 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2228 warning, reported by Aric Hagberg, fix by JD Hunter.
2234 warning, reported by Aric Hagberg, fix by JD Hunter.
2229
2235
2230 2005-06-02 *** Released version 0.6.15
2236 2005-06-02 *** Released version 0.6.15
2231
2237
2232 2005-06-01 Fernando Perez <fperez@colorado.edu>
2238 2005-06-01 Fernando Perez <fperez@colorado.edu>
2233
2239
2234 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2240 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2235 tab-completion of filenames within open-quoted strings. Note that
2241 tab-completion of filenames within open-quoted strings. Note that
2236 this requires that in ~/.ipython/ipythonrc, users change the
2242 this requires that in ~/.ipython/ipythonrc, users change the
2237 readline delimiters configuration to read:
2243 readline delimiters configuration to read:
2238
2244
2239 readline_remove_delims -/~
2245 readline_remove_delims -/~
2240
2246
2241
2247
2242 2005-05-31 *** Released version 0.6.14
2248 2005-05-31 *** Released version 0.6.14
2243
2249
2244 2005-05-29 Fernando Perez <fperez@colorado.edu>
2250 2005-05-29 Fernando Perez <fperez@colorado.edu>
2245
2251
2246 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2252 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2247 with files not on the filesystem. Reported by Eliyahu Sandler
2253 with files not on the filesystem. Reported by Eliyahu Sandler
2248 <eli@gondolin.net>
2254 <eli@gondolin.net>
2249
2255
2250 2005-05-22 Fernando Perez <fperez@colorado.edu>
2256 2005-05-22 Fernando Perez <fperez@colorado.edu>
2251
2257
2252 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2258 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2253 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2259 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2254
2260
2255 2005-05-19 Fernando Perez <fperez@colorado.edu>
2261 2005-05-19 Fernando Perez <fperez@colorado.edu>
2256
2262
2257 * IPython/iplib.py (safe_execfile): close a file which could be
2263 * IPython/iplib.py (safe_execfile): close a file which could be
2258 left open (causing problems in win32, which locks open files).
2264 left open (causing problems in win32, which locks open files).
2259 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2265 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2260
2266
2261 2005-05-18 Fernando Perez <fperez@colorado.edu>
2267 2005-05-18 Fernando Perez <fperez@colorado.edu>
2262
2268
2263 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2269 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2264 keyword arguments correctly to safe_execfile().
2270 keyword arguments correctly to safe_execfile().
2265
2271
2266 2005-05-13 Fernando Perez <fperez@colorado.edu>
2272 2005-05-13 Fernando Perez <fperez@colorado.edu>
2267
2273
2268 * ipython.1: Added info about Qt to manpage, and threads warning
2274 * ipython.1: Added info about Qt to manpage, and threads warning
2269 to usage page (invoked with --help).
2275 to usage page (invoked with --help).
2270
2276
2271 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2277 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2272 new matcher (it goes at the end of the priority list) to do
2278 new matcher (it goes at the end of the priority list) to do
2273 tab-completion on named function arguments. Submitted by George
2279 tab-completion on named function arguments. Submitted by George
2274 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2280 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2275 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2281 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2276 for more details.
2282 for more details.
2277
2283
2278 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2284 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2279 SystemExit exceptions in the script being run. Thanks to a report
2285 SystemExit exceptions in the script being run. Thanks to a report
2280 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2286 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2281 producing very annoying behavior when running unit tests.
2287 producing very annoying behavior when running unit tests.
2282
2288
2283 2005-05-12 Fernando Perez <fperez@colorado.edu>
2289 2005-05-12 Fernando Perez <fperez@colorado.edu>
2284
2290
2285 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2291 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2286 which I'd broken (again) due to a changed regexp. In the process,
2292 which I'd broken (again) due to a changed regexp. In the process,
2287 added ';' as an escape to auto-quote the whole line without
2293 added ';' as an escape to auto-quote the whole line without
2288 splitting its arguments. Thanks to a report by Jerry McRae
2294 splitting its arguments. Thanks to a report by Jerry McRae
2289 <qrs0xyc02-AT-sneakemail.com>.
2295 <qrs0xyc02-AT-sneakemail.com>.
2290
2296
2291 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2297 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2292 possible crashes caused by a TokenError. Reported by Ed Schofield
2298 possible crashes caused by a TokenError. Reported by Ed Schofield
2293 <schofield-AT-ftw.at>.
2299 <schofield-AT-ftw.at>.
2294
2300
2295 2005-05-06 Fernando Perez <fperez@colorado.edu>
2301 2005-05-06 Fernando Perez <fperez@colorado.edu>
2296
2302
2297 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2303 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2298
2304
2299 2005-04-29 Fernando Perez <fperez@colorado.edu>
2305 2005-04-29 Fernando Perez <fperez@colorado.edu>
2300
2306
2301 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2307 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2302 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2308 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2303 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2309 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2304 which provides support for Qt interactive usage (similar to the
2310 which provides support for Qt interactive usage (similar to the
2305 existing one for WX and GTK). This had been often requested.
2311 existing one for WX and GTK). This had been often requested.
2306
2312
2307 2005-04-14 *** Released version 0.6.13
2313 2005-04-14 *** Released version 0.6.13
2308
2314
2309 2005-04-08 Fernando Perez <fperez@colorado.edu>
2315 2005-04-08 Fernando Perez <fperez@colorado.edu>
2310
2316
2311 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2317 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2312 from _ofind, which gets called on almost every input line. Now,
2318 from _ofind, which gets called on almost every input line. Now,
2313 we only try to get docstrings if they are actually going to be
2319 we only try to get docstrings if they are actually going to be
2314 used (the overhead of fetching unnecessary docstrings can be
2320 used (the overhead of fetching unnecessary docstrings can be
2315 noticeable for certain objects, such as Pyro proxies).
2321 noticeable for certain objects, such as Pyro proxies).
2316
2322
2317 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2323 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2318 for completers. For some reason I had been passing them the state
2324 for completers. For some reason I had been passing them the state
2319 variable, which completers never actually need, and was in
2325 variable, which completers never actually need, and was in
2320 conflict with the rlcompleter API. Custom completers ONLY need to
2326 conflict with the rlcompleter API. Custom completers ONLY need to
2321 take the text parameter.
2327 take the text parameter.
2322
2328
2323 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2329 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2324 work correctly in pysh. I've also moved all the logic which used
2330 work correctly in pysh. I've also moved all the logic which used
2325 to be in pysh.py here, which will prevent problems with future
2331 to be in pysh.py here, which will prevent problems with future
2326 upgrades. However, this time I must warn users to update their
2332 upgrades. However, this time I must warn users to update their
2327 pysh profile to include the line
2333 pysh profile to include the line
2328
2334
2329 import_all IPython.Extensions.InterpreterExec
2335 import_all IPython.Extensions.InterpreterExec
2330
2336
2331 because otherwise things won't work for them. They MUST also
2337 because otherwise things won't work for them. They MUST also
2332 delete pysh.py and the line
2338 delete pysh.py and the line
2333
2339
2334 execfile pysh.py
2340 execfile pysh.py
2335
2341
2336 from their ipythonrc-pysh.
2342 from their ipythonrc-pysh.
2337
2343
2338 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2344 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2339 robust in the face of objects whose dir() returns non-strings
2345 robust in the face of objects whose dir() returns non-strings
2340 (which it shouldn't, but some broken libs like ITK do). Thanks to
2346 (which it shouldn't, but some broken libs like ITK do). Thanks to
2341 a patch by John Hunter (implemented differently, though). Also
2347 a patch by John Hunter (implemented differently, though). Also
2342 minor improvements by using .extend instead of + on lists.
2348 minor improvements by using .extend instead of + on lists.
2343
2349
2344 * pysh.py:
2350 * pysh.py:
2345
2351
2346 2005-04-06 Fernando Perez <fperez@colorado.edu>
2352 2005-04-06 Fernando Perez <fperez@colorado.edu>
2347
2353
2348 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2354 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2349 by default, so that all users benefit from it. Those who don't
2355 by default, so that all users benefit from it. Those who don't
2350 want it can still turn it off.
2356 want it can still turn it off.
2351
2357
2352 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2358 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2353 config file, I'd forgotten about this, so users were getting it
2359 config file, I'd forgotten about this, so users were getting it
2354 off by default.
2360 off by default.
2355
2361
2356 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2362 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2357 consistency. Now magics can be called in multiline statements,
2363 consistency. Now magics can be called in multiline statements,
2358 and python variables can be expanded in magic calls via $var.
2364 and python variables can be expanded in magic calls via $var.
2359 This makes the magic system behave just like aliases or !system
2365 This makes the magic system behave just like aliases or !system
2360 calls.
2366 calls.
2361
2367
2362 2005-03-28 Fernando Perez <fperez@colorado.edu>
2368 2005-03-28 Fernando Perez <fperez@colorado.edu>
2363
2369
2364 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2370 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2365 expensive string additions for building command. Add support for
2371 expensive string additions for building command. Add support for
2366 trailing ';' when autocall is used.
2372 trailing ';' when autocall is used.
2367
2373
2368 2005-03-26 Fernando Perez <fperez@colorado.edu>
2374 2005-03-26 Fernando Perez <fperez@colorado.edu>
2369
2375
2370 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2376 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2371 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2377 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2372 ipython.el robust against prompts with any number of spaces
2378 ipython.el robust against prompts with any number of spaces
2373 (including 0) after the ':' character.
2379 (including 0) after the ':' character.
2374
2380
2375 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2381 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2376 continuation prompt, which misled users to think the line was
2382 continuation prompt, which misled users to think the line was
2377 already indented. Closes debian Bug#300847, reported to me by
2383 already indented. Closes debian Bug#300847, reported to me by
2378 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2384 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2379
2385
2380 2005-03-23 Fernando Perez <fperez@colorado.edu>
2386 2005-03-23 Fernando Perez <fperez@colorado.edu>
2381
2387
2382 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2388 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2383 properly aligned if they have embedded newlines.
2389 properly aligned if they have embedded newlines.
2384
2390
2385 * IPython/iplib.py (runlines): Add a public method to expose
2391 * IPython/iplib.py (runlines): Add a public method to expose
2386 IPython's code execution machinery, so that users can run strings
2392 IPython's code execution machinery, so that users can run strings
2387 as if they had been typed at the prompt interactively.
2393 as if they had been typed at the prompt interactively.
2388 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2394 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2389 methods which can call the system shell, but with python variable
2395 methods which can call the system shell, but with python variable
2390 expansion. The three such methods are: __IPYTHON__.system,
2396 expansion. The three such methods are: __IPYTHON__.system,
2391 .getoutput and .getoutputerror. These need to be documented in a
2397 .getoutput and .getoutputerror. These need to be documented in a
2392 'public API' section (to be written) of the manual.
2398 'public API' section (to be written) of the manual.
2393
2399
2394 2005-03-20 Fernando Perez <fperez@colorado.edu>
2400 2005-03-20 Fernando Perez <fperez@colorado.edu>
2395
2401
2396 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2402 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2397 for custom exception handling. This is quite powerful, and it
2403 for custom exception handling. This is quite powerful, and it
2398 allows for user-installable exception handlers which can trap
2404 allows for user-installable exception handlers which can trap
2399 custom exceptions at runtime and treat them separately from
2405 custom exceptions at runtime and treat them separately from
2400 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2406 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2401 Mantegazza <mantegazza-AT-ill.fr>.
2407 Mantegazza <mantegazza-AT-ill.fr>.
2402 (InteractiveShell.set_custom_completer): public API function to
2408 (InteractiveShell.set_custom_completer): public API function to
2403 add new completers at runtime.
2409 add new completers at runtime.
2404
2410
2405 2005-03-19 Fernando Perez <fperez@colorado.edu>
2411 2005-03-19 Fernando Perez <fperez@colorado.edu>
2406
2412
2407 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2413 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2408 allow objects which provide their docstrings via non-standard
2414 allow objects which provide their docstrings via non-standard
2409 mechanisms (like Pyro proxies) to still be inspected by ipython's
2415 mechanisms (like Pyro proxies) to still be inspected by ipython's
2410 ? system.
2416 ? system.
2411
2417
2412 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2418 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2413 automatic capture system. I tried quite hard to make it work
2419 automatic capture system. I tried quite hard to make it work
2414 reliably, and simply failed. I tried many combinations with the
2420 reliably, and simply failed. I tried many combinations with the
2415 subprocess module, but eventually nothing worked in all needed
2421 subprocess module, but eventually nothing worked in all needed
2416 cases (not blocking stdin for the child, duplicating stdout
2422 cases (not blocking stdin for the child, duplicating stdout
2417 without blocking, etc). The new %sc/%sx still do capture to these
2423 without blocking, etc). The new %sc/%sx still do capture to these
2418 magical list/string objects which make shell use much more
2424 magical list/string objects which make shell use much more
2419 conveninent, so not all is lost.
2425 conveninent, so not all is lost.
2420
2426
2421 XXX - FIX MANUAL for the change above!
2427 XXX - FIX MANUAL for the change above!
2422
2428
2423 (runsource): I copied code.py's runsource() into ipython to modify
2429 (runsource): I copied code.py's runsource() into ipython to modify
2424 it a bit. Now the code object and source to be executed are
2430 it a bit. Now the code object and source to be executed are
2425 stored in ipython. This makes this info accessible to third-party
2431 stored in ipython. This makes this info accessible to third-party
2426 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2432 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2427 Mantegazza <mantegazza-AT-ill.fr>.
2433 Mantegazza <mantegazza-AT-ill.fr>.
2428
2434
2429 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2435 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2430 history-search via readline (like C-p/C-n). I'd wanted this for a
2436 history-search via readline (like C-p/C-n). I'd wanted this for a
2431 long time, but only recently found out how to do it. For users
2437 long time, but only recently found out how to do it. For users
2432 who already have their ipythonrc files made and want this, just
2438 who already have their ipythonrc files made and want this, just
2433 add:
2439 add:
2434
2440
2435 readline_parse_and_bind "\e[A": history-search-backward
2441 readline_parse_and_bind "\e[A": history-search-backward
2436 readline_parse_and_bind "\e[B": history-search-forward
2442 readline_parse_and_bind "\e[B": history-search-forward
2437
2443
2438 2005-03-18 Fernando Perez <fperez@colorado.edu>
2444 2005-03-18 Fernando Perez <fperez@colorado.edu>
2439
2445
2440 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2446 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2441 LSString and SList classes which allow transparent conversions
2447 LSString and SList classes which allow transparent conversions
2442 between list mode and whitespace-separated string.
2448 between list mode and whitespace-separated string.
2443 (magic_r): Fix recursion problem in %r.
2449 (magic_r): Fix recursion problem in %r.
2444
2450
2445 * IPython/genutils.py (LSString): New class to be used for
2451 * IPython/genutils.py (LSString): New class to be used for
2446 automatic storage of the results of all alias/system calls in _o
2452 automatic storage of the results of all alias/system calls in _o
2447 and _e (stdout/err). These provide a .l/.list attribute which
2453 and _e (stdout/err). These provide a .l/.list attribute which
2448 does automatic splitting on newlines. This means that for most
2454 does automatic splitting on newlines. This means that for most
2449 uses, you'll never need to do capturing of output with %sc/%sx
2455 uses, you'll never need to do capturing of output with %sc/%sx
2450 anymore, since ipython keeps this always done for you. Note that
2456 anymore, since ipython keeps this always done for you. Note that
2451 only the LAST results are stored, the _o/e variables are
2457 only the LAST results are stored, the _o/e variables are
2452 overwritten on each call. If you need to save their contents
2458 overwritten on each call. If you need to save their contents
2453 further, simply bind them to any other name.
2459 further, simply bind them to any other name.
2454
2460
2455 2005-03-17 Fernando Perez <fperez@colorado.edu>
2461 2005-03-17 Fernando Perez <fperez@colorado.edu>
2456
2462
2457 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2463 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2458 prompt namespace handling.
2464 prompt namespace handling.
2459
2465
2460 2005-03-16 Fernando Perez <fperez@colorado.edu>
2466 2005-03-16 Fernando Perez <fperez@colorado.edu>
2461
2467
2462 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2468 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2463 classic prompts to be '>>> ' (final space was missing, and it
2469 classic prompts to be '>>> ' (final space was missing, and it
2464 trips the emacs python mode).
2470 trips the emacs python mode).
2465 (BasePrompt.__str__): Added safe support for dynamic prompt
2471 (BasePrompt.__str__): Added safe support for dynamic prompt
2466 strings. Now you can set your prompt string to be '$x', and the
2472 strings. Now you can set your prompt string to be '$x', and the
2467 value of x will be printed from your interactive namespace. The
2473 value of x will be printed from your interactive namespace. The
2468 interpolation syntax includes the full Itpl support, so
2474 interpolation syntax includes the full Itpl support, so
2469 ${foo()+x+bar()} is a valid prompt string now, and the function
2475 ${foo()+x+bar()} is a valid prompt string now, and the function
2470 calls will be made at runtime.
2476 calls will be made at runtime.
2471
2477
2472 2005-03-15 Fernando Perez <fperez@colorado.edu>
2478 2005-03-15 Fernando Perez <fperez@colorado.edu>
2473
2479
2474 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2480 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2475 avoid name clashes in pylab. %hist still works, it just forwards
2481 avoid name clashes in pylab. %hist still works, it just forwards
2476 the call to %history.
2482 the call to %history.
2477
2483
2478 2005-03-02 *** Released version 0.6.12
2484 2005-03-02 *** Released version 0.6.12
2479
2485
2480 2005-03-02 Fernando Perez <fperez@colorado.edu>
2486 2005-03-02 Fernando Perez <fperez@colorado.edu>
2481
2487
2482 * IPython/iplib.py (handle_magic): log magic calls properly as
2488 * IPython/iplib.py (handle_magic): log magic calls properly as
2483 ipmagic() function calls.
2489 ipmagic() function calls.
2484
2490
2485 * IPython/Magic.py (magic_time): Improved %time to support
2491 * IPython/Magic.py (magic_time): Improved %time to support
2486 statements and provide wall-clock as well as CPU time.
2492 statements and provide wall-clock as well as CPU time.
2487
2493
2488 2005-02-27 Fernando Perez <fperez@colorado.edu>
2494 2005-02-27 Fernando Perez <fperez@colorado.edu>
2489
2495
2490 * IPython/hooks.py: New hooks module, to expose user-modifiable
2496 * IPython/hooks.py: New hooks module, to expose user-modifiable
2491 IPython functionality in a clean manner. For now only the editor
2497 IPython functionality in a clean manner. For now only the editor
2492 hook is actually written, and other thigns which I intend to turn
2498 hook is actually written, and other thigns which I intend to turn
2493 into proper hooks aren't yet there. The display and prefilter
2499 into proper hooks aren't yet there. The display and prefilter
2494 stuff, for example, should be hooks. But at least now the
2500 stuff, for example, should be hooks. But at least now the
2495 framework is in place, and the rest can be moved here with more
2501 framework is in place, and the rest can be moved here with more
2496 time later. IPython had had a .hooks variable for a long time for
2502 time later. IPython had had a .hooks variable for a long time for
2497 this purpose, but I'd never actually used it for anything.
2503 this purpose, but I'd never actually used it for anything.
2498
2504
2499 2005-02-26 Fernando Perez <fperez@colorado.edu>
2505 2005-02-26 Fernando Perez <fperez@colorado.edu>
2500
2506
2501 * IPython/ipmaker.py (make_IPython): make the default ipython
2507 * IPython/ipmaker.py (make_IPython): make the default ipython
2502 directory be called _ipython under win32, to follow more the
2508 directory be called _ipython under win32, to follow more the
2503 naming peculiarities of that platform (where buggy software like
2509 naming peculiarities of that platform (where buggy software like
2504 Visual Sourcesafe breaks with .named directories). Reported by
2510 Visual Sourcesafe breaks with .named directories). Reported by
2505 Ville Vainio.
2511 Ville Vainio.
2506
2512
2507 2005-02-23 Fernando Perez <fperez@colorado.edu>
2513 2005-02-23 Fernando Perez <fperez@colorado.edu>
2508
2514
2509 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2515 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2510 auto_aliases for win32 which were causing problems. Users can
2516 auto_aliases for win32 which were causing problems. Users can
2511 define the ones they personally like.
2517 define the ones they personally like.
2512
2518
2513 2005-02-21 Fernando Perez <fperez@colorado.edu>
2519 2005-02-21 Fernando Perez <fperez@colorado.edu>
2514
2520
2515 * IPython/Magic.py (magic_time): new magic to time execution of
2521 * IPython/Magic.py (magic_time): new magic to time execution of
2516 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2522 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2517
2523
2518 2005-02-19 Fernando Perez <fperez@colorado.edu>
2524 2005-02-19 Fernando Perez <fperez@colorado.edu>
2519
2525
2520 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2526 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2521 into keys (for prompts, for example).
2527 into keys (for prompts, for example).
2522
2528
2523 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2529 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2524 prompts in case users want them. This introduces a small behavior
2530 prompts in case users want them. This introduces a small behavior
2525 change: ipython does not automatically add a space to all prompts
2531 change: ipython does not automatically add a space to all prompts
2526 anymore. To get the old prompts with a space, users should add it
2532 anymore. To get the old prompts with a space, users should add it
2527 manually to their ipythonrc file, so for example prompt_in1 should
2533 manually to their ipythonrc file, so for example prompt_in1 should
2528 now read 'In [\#]: ' instead of 'In [\#]:'.
2534 now read 'In [\#]: ' instead of 'In [\#]:'.
2529 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2535 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2530 file) to control left-padding of secondary prompts.
2536 file) to control left-padding of secondary prompts.
2531
2537
2532 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2538 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2533 the profiler can't be imported. Fix for Debian, which removed
2539 the profiler can't be imported. Fix for Debian, which removed
2534 profile.py because of License issues. I applied a slightly
2540 profile.py because of License issues. I applied a slightly
2535 modified version of the original Debian patch at
2541 modified version of the original Debian patch at
2536 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2542 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2537
2543
2538 2005-02-17 Fernando Perez <fperez@colorado.edu>
2544 2005-02-17 Fernando Perez <fperez@colorado.edu>
2539
2545
2540 * IPython/genutils.py (native_line_ends): Fix bug which would
2546 * IPython/genutils.py (native_line_ends): Fix bug which would
2541 cause improper line-ends under win32 b/c I was not opening files
2547 cause improper line-ends under win32 b/c I was not opening files
2542 in binary mode. Bug report and fix thanks to Ville.
2548 in binary mode. Bug report and fix thanks to Ville.
2543
2549
2544 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2550 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2545 trying to catch spurious foo[1] autocalls. My fix actually broke
2551 trying to catch spurious foo[1] autocalls. My fix actually broke
2546 ',/' autoquote/call with explicit escape (bad regexp).
2552 ',/' autoquote/call with explicit escape (bad regexp).
2547
2553
2548 2005-02-15 *** Released version 0.6.11
2554 2005-02-15 *** Released version 0.6.11
2549
2555
2550 2005-02-14 Fernando Perez <fperez@colorado.edu>
2556 2005-02-14 Fernando Perez <fperez@colorado.edu>
2551
2557
2552 * IPython/background_jobs.py: New background job management
2558 * IPython/background_jobs.py: New background job management
2553 subsystem. This is implemented via a new set of classes, and
2559 subsystem. This is implemented via a new set of classes, and
2554 IPython now provides a builtin 'jobs' object for background job
2560 IPython now provides a builtin 'jobs' object for background job
2555 execution. A convenience %bg magic serves as a lightweight
2561 execution. A convenience %bg magic serves as a lightweight
2556 frontend for starting the more common type of calls. This was
2562 frontend for starting the more common type of calls. This was
2557 inspired by discussions with B. Granger and the BackgroundCommand
2563 inspired by discussions with B. Granger and the BackgroundCommand
2558 class described in the book Python Scripting for Computational
2564 class described in the book Python Scripting for Computational
2559 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2565 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2560 (although ultimately no code from this text was used, as IPython's
2566 (although ultimately no code from this text was used, as IPython's
2561 system is a separate implementation).
2567 system is a separate implementation).
2562
2568
2563 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2569 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2564 to control the completion of single/double underscore names
2570 to control the completion of single/double underscore names
2565 separately. As documented in the example ipytonrc file, the
2571 separately. As documented in the example ipytonrc file, the
2566 readline_omit__names variable can now be set to 2, to omit even
2572 readline_omit__names variable can now be set to 2, to omit even
2567 single underscore names. Thanks to a patch by Brian Wong
2573 single underscore names. Thanks to a patch by Brian Wong
2568 <BrianWong-AT-AirgoNetworks.Com>.
2574 <BrianWong-AT-AirgoNetworks.Com>.
2569 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2575 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2570 be autocalled as foo([1]) if foo were callable. A problem for
2576 be autocalled as foo([1]) if foo were callable. A problem for
2571 things which are both callable and implement __getitem__.
2577 things which are both callable and implement __getitem__.
2572 (init_readline): Fix autoindentation for win32. Thanks to a patch
2578 (init_readline): Fix autoindentation for win32. Thanks to a patch
2573 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2579 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2574
2580
2575 2005-02-12 Fernando Perez <fperez@colorado.edu>
2581 2005-02-12 Fernando Perez <fperez@colorado.edu>
2576
2582
2577 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2583 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2578 which I had written long ago to sort out user error messages which
2584 which I had written long ago to sort out user error messages which
2579 may occur during startup. This seemed like a good idea initially,
2585 may occur during startup. This seemed like a good idea initially,
2580 but it has proven a disaster in retrospect. I don't want to
2586 but it has proven a disaster in retrospect. I don't want to
2581 change much code for now, so my fix is to set the internal 'debug'
2587 change much code for now, so my fix is to set the internal 'debug'
2582 flag to true everywhere, whose only job was precisely to control
2588 flag to true everywhere, whose only job was precisely to control
2583 this subsystem. This closes issue 28 (as well as avoiding all
2589 this subsystem. This closes issue 28 (as well as avoiding all
2584 sorts of strange hangups which occur from time to time).
2590 sorts of strange hangups which occur from time to time).
2585
2591
2586 2005-02-07 Fernando Perez <fperez@colorado.edu>
2592 2005-02-07 Fernando Perez <fperez@colorado.edu>
2587
2593
2588 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2594 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2589 previous call produced a syntax error.
2595 previous call produced a syntax error.
2590
2596
2591 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2597 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2592 classes without constructor.
2598 classes without constructor.
2593
2599
2594 2005-02-06 Fernando Perez <fperez@colorado.edu>
2600 2005-02-06 Fernando Perez <fperez@colorado.edu>
2595
2601
2596 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2602 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2597 completions with the results of each matcher, so we return results
2603 completions with the results of each matcher, so we return results
2598 to the user from all namespaces. This breaks with ipython
2604 to the user from all namespaces. This breaks with ipython
2599 tradition, but I think it's a nicer behavior. Now you get all
2605 tradition, but I think it's a nicer behavior. Now you get all
2600 possible completions listed, from all possible namespaces (python,
2606 possible completions listed, from all possible namespaces (python,
2601 filesystem, magics...) After a request by John Hunter
2607 filesystem, magics...) After a request by John Hunter
2602 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2608 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2603
2609
2604 2005-02-05 Fernando Perez <fperez@colorado.edu>
2610 2005-02-05 Fernando Perez <fperez@colorado.edu>
2605
2611
2606 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2612 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2607 the call had quote characters in it (the quotes were stripped).
2613 the call had quote characters in it (the quotes were stripped).
2608
2614
2609 2005-01-31 Fernando Perez <fperez@colorado.edu>
2615 2005-01-31 Fernando Perez <fperez@colorado.edu>
2610
2616
2611 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2617 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2612 Itpl.itpl() to make the code more robust against psyco
2618 Itpl.itpl() to make the code more robust against psyco
2613 optimizations.
2619 optimizations.
2614
2620
2615 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2621 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2616 of causing an exception. Quicker, cleaner.
2622 of causing an exception. Quicker, cleaner.
2617
2623
2618 2005-01-28 Fernando Perez <fperez@colorado.edu>
2624 2005-01-28 Fernando Perez <fperez@colorado.edu>
2619
2625
2620 * scripts/ipython_win_post_install.py (install): hardcode
2626 * scripts/ipython_win_post_install.py (install): hardcode
2621 sys.prefix+'python.exe' as the executable path. It turns out that
2627 sys.prefix+'python.exe' as the executable path. It turns out that
2622 during the post-installation run, sys.executable resolves to the
2628 during the post-installation run, sys.executable resolves to the
2623 name of the binary installer! I should report this as a distutils
2629 name of the binary installer! I should report this as a distutils
2624 bug, I think. I updated the .10 release with this tiny fix, to
2630 bug, I think. I updated the .10 release with this tiny fix, to
2625 avoid annoying the lists further.
2631 avoid annoying the lists further.
2626
2632
2627 2005-01-27 *** Released version 0.6.10
2633 2005-01-27 *** Released version 0.6.10
2628
2634
2629 2005-01-27 Fernando Perez <fperez@colorado.edu>
2635 2005-01-27 Fernando Perez <fperez@colorado.edu>
2630
2636
2631 * IPython/numutils.py (norm): Added 'inf' as optional name for
2637 * IPython/numutils.py (norm): Added 'inf' as optional name for
2632 L-infinity norm, included references to mathworld.com for vector
2638 L-infinity norm, included references to mathworld.com for vector
2633 norm definitions.
2639 norm definitions.
2634 (amin/amax): added amin/amax for array min/max. Similar to what
2640 (amin/amax): added amin/amax for array min/max. Similar to what
2635 pylab ships with after the recent reorganization of names.
2641 pylab ships with after the recent reorganization of names.
2636 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2642 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2637
2643
2638 * ipython.el: committed Alex's recent fixes and improvements.
2644 * ipython.el: committed Alex's recent fixes and improvements.
2639 Tested with python-mode from CVS, and it looks excellent. Since
2645 Tested with python-mode from CVS, and it looks excellent. Since
2640 python-mode hasn't released anything in a while, I'm temporarily
2646 python-mode hasn't released anything in a while, I'm temporarily
2641 putting a copy of today's CVS (v 4.70) of python-mode in:
2647 putting a copy of today's CVS (v 4.70) of python-mode in:
2642 http://ipython.scipy.org/tmp/python-mode.el
2648 http://ipython.scipy.org/tmp/python-mode.el
2643
2649
2644 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2650 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2645 sys.executable for the executable name, instead of assuming it's
2651 sys.executable for the executable name, instead of assuming it's
2646 called 'python.exe' (the post-installer would have produced broken
2652 called 'python.exe' (the post-installer would have produced broken
2647 setups on systems with a differently named python binary).
2653 setups on systems with a differently named python binary).
2648
2654
2649 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2655 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2650 references to os.linesep, to make the code more
2656 references to os.linesep, to make the code more
2651 platform-independent. This is also part of the win32 coloring
2657 platform-independent. This is also part of the win32 coloring
2652 fixes.
2658 fixes.
2653
2659
2654 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2660 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2655 lines, which actually cause coloring bugs because the length of
2661 lines, which actually cause coloring bugs because the length of
2656 the line is very difficult to correctly compute with embedded
2662 the line is very difficult to correctly compute with embedded
2657 escapes. This was the source of all the coloring problems under
2663 escapes. This was the source of all the coloring problems under
2658 Win32. I think that _finally_, Win32 users have a properly
2664 Win32. I think that _finally_, Win32 users have a properly
2659 working ipython in all respects. This would never have happened
2665 working ipython in all respects. This would never have happened
2660 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2666 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2661
2667
2662 2005-01-26 *** Released version 0.6.9
2668 2005-01-26 *** Released version 0.6.9
2663
2669
2664 2005-01-25 Fernando Perez <fperez@colorado.edu>
2670 2005-01-25 Fernando Perez <fperez@colorado.edu>
2665
2671
2666 * setup.py: finally, we have a true Windows installer, thanks to
2672 * setup.py: finally, we have a true Windows installer, thanks to
2667 the excellent work of Viktor Ransmayr
2673 the excellent work of Viktor Ransmayr
2668 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2674 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2669 Windows users. The setup routine is quite a bit cleaner thanks to
2675 Windows users. The setup routine is quite a bit cleaner thanks to
2670 this, and the post-install script uses the proper functions to
2676 this, and the post-install script uses the proper functions to
2671 allow a clean de-installation using the standard Windows Control
2677 allow a clean de-installation using the standard Windows Control
2672 Panel.
2678 Panel.
2673
2679
2674 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2680 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2675 environment variable under all OSes (including win32) if
2681 environment variable under all OSes (including win32) if
2676 available. This will give consistency to win32 users who have set
2682 available. This will give consistency to win32 users who have set
2677 this variable for any reason. If os.environ['HOME'] fails, the
2683 this variable for any reason. If os.environ['HOME'] fails, the
2678 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2684 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2679
2685
2680 2005-01-24 Fernando Perez <fperez@colorado.edu>
2686 2005-01-24 Fernando Perez <fperez@colorado.edu>
2681
2687
2682 * IPython/numutils.py (empty_like): add empty_like(), similar to
2688 * IPython/numutils.py (empty_like): add empty_like(), similar to
2683 zeros_like() but taking advantage of the new empty() Numeric routine.
2689 zeros_like() but taking advantage of the new empty() Numeric routine.
2684
2690
2685 2005-01-23 *** Released version 0.6.8
2691 2005-01-23 *** Released version 0.6.8
2686
2692
2687 2005-01-22 Fernando Perez <fperez@colorado.edu>
2693 2005-01-22 Fernando Perez <fperez@colorado.edu>
2688
2694
2689 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2695 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2690 automatic show() calls. After discussing things with JDH, it
2696 automatic show() calls. After discussing things with JDH, it
2691 turns out there are too many corner cases where this can go wrong.
2697 turns out there are too many corner cases where this can go wrong.
2692 It's best not to try to be 'too smart', and simply have ipython
2698 It's best not to try to be 'too smart', and simply have ipython
2693 reproduce as much as possible the default behavior of a normal
2699 reproduce as much as possible the default behavior of a normal
2694 python shell.
2700 python shell.
2695
2701
2696 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2702 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2697 line-splitting regexp and _prefilter() to avoid calling getattr()
2703 line-splitting regexp and _prefilter() to avoid calling getattr()
2698 on assignments. This closes
2704 on assignments. This closes
2699 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2705 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2700 readline uses getattr(), so a simple <TAB> keypress is still
2706 readline uses getattr(), so a simple <TAB> keypress is still
2701 enough to trigger getattr() calls on an object.
2707 enough to trigger getattr() calls on an object.
2702
2708
2703 2005-01-21 Fernando Perez <fperez@colorado.edu>
2709 2005-01-21 Fernando Perez <fperez@colorado.edu>
2704
2710
2705 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2711 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2706 docstring under pylab so it doesn't mask the original.
2712 docstring under pylab so it doesn't mask the original.
2707
2713
2708 2005-01-21 *** Released version 0.6.7
2714 2005-01-21 *** Released version 0.6.7
2709
2715
2710 2005-01-21 Fernando Perez <fperez@colorado.edu>
2716 2005-01-21 Fernando Perez <fperez@colorado.edu>
2711
2717
2712 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2718 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2713 signal handling for win32 users in multithreaded mode.
2719 signal handling for win32 users in multithreaded mode.
2714
2720
2715 2005-01-17 Fernando Perez <fperez@colorado.edu>
2721 2005-01-17 Fernando Perez <fperez@colorado.edu>
2716
2722
2717 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2723 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2718 instances with no __init__. After a crash report by Norbert Nemec
2724 instances with no __init__. After a crash report by Norbert Nemec
2719 <Norbert-AT-nemec-online.de>.
2725 <Norbert-AT-nemec-online.de>.
2720
2726
2721 2005-01-14 Fernando Perez <fperez@colorado.edu>
2727 2005-01-14 Fernando Perez <fperez@colorado.edu>
2722
2728
2723 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2729 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2724 names for verbose exceptions, when multiple dotted names and the
2730 names for verbose exceptions, when multiple dotted names and the
2725 'parent' object were present on the same line.
2731 'parent' object were present on the same line.
2726
2732
2727 2005-01-11 Fernando Perez <fperez@colorado.edu>
2733 2005-01-11 Fernando Perez <fperez@colorado.edu>
2728
2734
2729 * IPython/genutils.py (flag_calls): new utility to trap and flag
2735 * IPython/genutils.py (flag_calls): new utility to trap and flag
2730 calls in functions. I need it to clean up matplotlib support.
2736 calls in functions. I need it to clean up matplotlib support.
2731 Also removed some deprecated code in genutils.
2737 Also removed some deprecated code in genutils.
2732
2738
2733 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2739 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2734 that matplotlib scripts called with %run, which don't call show()
2740 that matplotlib scripts called with %run, which don't call show()
2735 themselves, still have their plotting windows open.
2741 themselves, still have their plotting windows open.
2736
2742
2737 2005-01-05 Fernando Perez <fperez@colorado.edu>
2743 2005-01-05 Fernando Perez <fperez@colorado.edu>
2738
2744
2739 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2745 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2740 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2746 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2741
2747
2742 2004-12-19 Fernando Perez <fperez@colorado.edu>
2748 2004-12-19 Fernando Perez <fperez@colorado.edu>
2743
2749
2744 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2750 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2745 parent_runcode, which was an eyesore. The same result can be
2751 parent_runcode, which was an eyesore. The same result can be
2746 obtained with Python's regular superclass mechanisms.
2752 obtained with Python's regular superclass mechanisms.
2747
2753
2748 2004-12-17 Fernando Perez <fperez@colorado.edu>
2754 2004-12-17 Fernando Perez <fperez@colorado.edu>
2749
2755
2750 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2756 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2751 reported by Prabhu.
2757 reported by Prabhu.
2752 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2758 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2753 sys.stderr) instead of explicitly calling sys.stderr. This helps
2759 sys.stderr) instead of explicitly calling sys.stderr. This helps
2754 maintain our I/O abstractions clean, for future GUI embeddings.
2760 maintain our I/O abstractions clean, for future GUI embeddings.
2755
2761
2756 * IPython/genutils.py (info): added new utility for sys.stderr
2762 * IPython/genutils.py (info): added new utility for sys.stderr
2757 unified info message handling (thin wrapper around warn()).
2763 unified info message handling (thin wrapper around warn()).
2758
2764
2759 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2765 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2760 composite (dotted) names on verbose exceptions.
2766 composite (dotted) names on verbose exceptions.
2761 (VerboseTB.nullrepr): harden against another kind of errors which
2767 (VerboseTB.nullrepr): harden against another kind of errors which
2762 Python's inspect module can trigger, and which were crashing
2768 Python's inspect module can trigger, and which were crashing
2763 IPython. Thanks to a report by Marco Lombardi
2769 IPython. Thanks to a report by Marco Lombardi
2764 <mlombard-AT-ma010192.hq.eso.org>.
2770 <mlombard-AT-ma010192.hq.eso.org>.
2765
2771
2766 2004-12-13 *** Released version 0.6.6
2772 2004-12-13 *** Released version 0.6.6
2767
2773
2768 2004-12-12 Fernando Perez <fperez@colorado.edu>
2774 2004-12-12 Fernando Perez <fperez@colorado.edu>
2769
2775
2770 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2776 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2771 generated by pygtk upon initialization if it was built without
2777 generated by pygtk upon initialization if it was built without
2772 threads (for matplotlib users). After a crash reported by
2778 threads (for matplotlib users). After a crash reported by
2773 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2779 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2774
2780
2775 * IPython/ipmaker.py (make_IPython): fix small bug in the
2781 * IPython/ipmaker.py (make_IPython): fix small bug in the
2776 import_some parameter for multiple imports.
2782 import_some parameter for multiple imports.
2777
2783
2778 * IPython/iplib.py (ipmagic): simplified the interface of
2784 * IPython/iplib.py (ipmagic): simplified the interface of
2779 ipmagic() to take a single string argument, just as it would be
2785 ipmagic() to take a single string argument, just as it would be
2780 typed at the IPython cmd line.
2786 typed at the IPython cmd line.
2781 (ipalias): Added new ipalias() with an interface identical to
2787 (ipalias): Added new ipalias() with an interface identical to
2782 ipmagic(). This completes exposing a pure python interface to the
2788 ipmagic(). This completes exposing a pure python interface to the
2783 alias and magic system, which can be used in loops or more complex
2789 alias and magic system, which can be used in loops or more complex
2784 code where IPython's automatic line mangling is not active.
2790 code where IPython's automatic line mangling is not active.
2785
2791
2786 * IPython/genutils.py (timing): changed interface of timing to
2792 * IPython/genutils.py (timing): changed interface of timing to
2787 simply run code once, which is the most common case. timings()
2793 simply run code once, which is the most common case. timings()
2788 remains unchanged, for the cases where you want multiple runs.
2794 remains unchanged, for the cases where you want multiple runs.
2789
2795
2790 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2796 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2791 bug where Python2.2 crashes with exec'ing code which does not end
2797 bug where Python2.2 crashes with exec'ing code which does not end
2792 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2798 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2793 before.
2799 before.
2794
2800
2795 2004-12-10 Fernando Perez <fperez@colorado.edu>
2801 2004-12-10 Fernando Perez <fperez@colorado.edu>
2796
2802
2797 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2803 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2798 -t to -T, to accomodate the new -t flag in %run (the %run and
2804 -t to -T, to accomodate the new -t flag in %run (the %run and
2799 %prun options are kind of intermixed, and it's not easy to change
2805 %prun options are kind of intermixed, and it's not easy to change
2800 this with the limitations of python's getopt).
2806 this with the limitations of python's getopt).
2801
2807
2802 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2808 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2803 the execution of scripts. It's not as fine-tuned as timeit.py,
2809 the execution of scripts. It's not as fine-tuned as timeit.py,
2804 but it works from inside ipython (and under 2.2, which lacks
2810 but it works from inside ipython (and under 2.2, which lacks
2805 timeit.py). Optionally a number of runs > 1 can be given for
2811 timeit.py). Optionally a number of runs > 1 can be given for
2806 timing very short-running code.
2812 timing very short-running code.
2807
2813
2808 * IPython/genutils.py (uniq_stable): new routine which returns a
2814 * IPython/genutils.py (uniq_stable): new routine which returns a
2809 list of unique elements in any iterable, but in stable order of
2815 list of unique elements in any iterable, but in stable order of
2810 appearance. I needed this for the ultraTB fixes, and it's a handy
2816 appearance. I needed this for the ultraTB fixes, and it's a handy
2811 utility.
2817 utility.
2812
2818
2813 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2819 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2814 dotted names in Verbose exceptions. This had been broken since
2820 dotted names in Verbose exceptions. This had been broken since
2815 the very start, now x.y will properly be printed in a Verbose
2821 the very start, now x.y will properly be printed in a Verbose
2816 traceback, instead of x being shown and y appearing always as an
2822 traceback, instead of x being shown and y appearing always as an
2817 'undefined global'. Getting this to work was a bit tricky,
2823 'undefined global'. Getting this to work was a bit tricky,
2818 because by default python tokenizers are stateless. Saved by
2824 because by default python tokenizers are stateless. Saved by
2819 python's ability to easily add a bit of state to an arbitrary
2825 python's ability to easily add a bit of state to an arbitrary
2820 function (without needing to build a full-blown callable object).
2826 function (without needing to build a full-blown callable object).
2821
2827
2822 Also big cleanup of this code, which had horrendous runtime
2828 Also big cleanup of this code, which had horrendous runtime
2823 lookups of zillions of attributes for colorization. Moved all
2829 lookups of zillions of attributes for colorization. Moved all
2824 this code into a few templates, which make it cleaner and quicker.
2830 this code into a few templates, which make it cleaner and quicker.
2825
2831
2826 Printout quality was also improved for Verbose exceptions: one
2832 Printout quality was also improved for Verbose exceptions: one
2827 variable per line, and memory addresses are printed (this can be
2833 variable per line, and memory addresses are printed (this can be
2828 quite handy in nasty debugging situations, which is what Verbose
2834 quite handy in nasty debugging situations, which is what Verbose
2829 is for).
2835 is for).
2830
2836
2831 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2837 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2832 the command line as scripts to be loaded by embedded instances.
2838 the command line as scripts to be loaded by embedded instances.
2833 Doing so has the potential for an infinite recursion if there are
2839 Doing so has the potential for an infinite recursion if there are
2834 exceptions thrown in the process. This fixes a strange crash
2840 exceptions thrown in the process. This fixes a strange crash
2835 reported by Philippe MULLER <muller-AT-irit.fr>.
2841 reported by Philippe MULLER <muller-AT-irit.fr>.
2836
2842
2837 2004-12-09 Fernando Perez <fperez@colorado.edu>
2843 2004-12-09 Fernando Perez <fperez@colorado.edu>
2838
2844
2839 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2845 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2840 to reflect new names in matplotlib, which now expose the
2846 to reflect new names in matplotlib, which now expose the
2841 matlab-compatible interface via a pylab module instead of the
2847 matlab-compatible interface via a pylab module instead of the
2842 'matlab' name. The new code is backwards compatible, so users of
2848 'matlab' name. The new code is backwards compatible, so users of
2843 all matplotlib versions are OK. Patch by J. Hunter.
2849 all matplotlib versions are OK. Patch by J. Hunter.
2844
2850
2845 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2851 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2846 of __init__ docstrings for instances (class docstrings are already
2852 of __init__ docstrings for instances (class docstrings are already
2847 automatically printed). Instances with customized docstrings
2853 automatically printed). Instances with customized docstrings
2848 (indep. of the class) are also recognized and all 3 separate
2854 (indep. of the class) are also recognized and all 3 separate
2849 docstrings are printed (instance, class, constructor). After some
2855 docstrings are printed (instance, class, constructor). After some
2850 comments/suggestions by J. Hunter.
2856 comments/suggestions by J. Hunter.
2851
2857
2852 2004-12-05 Fernando Perez <fperez@colorado.edu>
2858 2004-12-05 Fernando Perez <fperez@colorado.edu>
2853
2859
2854 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2860 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2855 warnings when tab-completion fails and triggers an exception.
2861 warnings when tab-completion fails and triggers an exception.
2856
2862
2857 2004-12-03 Fernando Perez <fperez@colorado.edu>
2863 2004-12-03 Fernando Perez <fperez@colorado.edu>
2858
2864
2859 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2865 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2860 be triggered when using 'run -p'. An incorrect option flag was
2866 be triggered when using 'run -p'. An incorrect option flag was
2861 being set ('d' instead of 'D').
2867 being set ('d' instead of 'D').
2862 (manpage): fix missing escaped \- sign.
2868 (manpage): fix missing escaped \- sign.
2863
2869
2864 2004-11-30 *** Released version 0.6.5
2870 2004-11-30 *** Released version 0.6.5
2865
2871
2866 2004-11-30 Fernando Perez <fperez@colorado.edu>
2872 2004-11-30 Fernando Perez <fperez@colorado.edu>
2867
2873
2868 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2874 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2869 setting with -d option.
2875 setting with -d option.
2870
2876
2871 * setup.py (docfiles): Fix problem where the doc glob I was using
2877 * setup.py (docfiles): Fix problem where the doc glob I was using
2872 was COMPLETELY BROKEN. It was giving the right files by pure
2878 was COMPLETELY BROKEN. It was giving the right files by pure
2873 accident, but failed once I tried to include ipython.el. Note:
2879 accident, but failed once I tried to include ipython.el. Note:
2874 glob() does NOT allow you to do exclusion on multiple endings!
2880 glob() does NOT allow you to do exclusion on multiple endings!
2875
2881
2876 2004-11-29 Fernando Perez <fperez@colorado.edu>
2882 2004-11-29 Fernando Perez <fperez@colorado.edu>
2877
2883
2878 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2884 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2879 the manpage as the source. Better formatting & consistency.
2885 the manpage as the source. Better formatting & consistency.
2880
2886
2881 * IPython/Magic.py (magic_run): Added new -d option, to run
2887 * IPython/Magic.py (magic_run): Added new -d option, to run
2882 scripts under the control of the python pdb debugger. Note that
2888 scripts under the control of the python pdb debugger. Note that
2883 this required changing the %prun option -d to -D, to avoid a clash
2889 this required changing the %prun option -d to -D, to avoid a clash
2884 (since %run must pass options to %prun, and getopt is too dumb to
2890 (since %run must pass options to %prun, and getopt is too dumb to
2885 handle options with string values with embedded spaces). Thanks
2891 handle options with string values with embedded spaces). Thanks
2886 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2892 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2887 (magic_who_ls): added type matching to %who and %whos, so that one
2893 (magic_who_ls): added type matching to %who and %whos, so that one
2888 can filter their output to only include variables of certain
2894 can filter their output to only include variables of certain
2889 types. Another suggestion by Matthew.
2895 types. Another suggestion by Matthew.
2890 (magic_whos): Added memory summaries in kb and Mb for arrays.
2896 (magic_whos): Added memory summaries in kb and Mb for arrays.
2891 (magic_who): Improve formatting (break lines every 9 vars).
2897 (magic_who): Improve formatting (break lines every 9 vars).
2892
2898
2893 2004-11-28 Fernando Perez <fperez@colorado.edu>
2899 2004-11-28 Fernando Perez <fperez@colorado.edu>
2894
2900
2895 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2901 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2896 cache when empty lines were present.
2902 cache when empty lines were present.
2897
2903
2898 2004-11-24 Fernando Perez <fperez@colorado.edu>
2904 2004-11-24 Fernando Perez <fperez@colorado.edu>
2899
2905
2900 * IPython/usage.py (__doc__): document the re-activated threading
2906 * IPython/usage.py (__doc__): document the re-activated threading
2901 options for WX and GTK.
2907 options for WX and GTK.
2902
2908
2903 2004-11-23 Fernando Perez <fperez@colorado.edu>
2909 2004-11-23 Fernando Perez <fperez@colorado.edu>
2904
2910
2905 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2911 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2906 the -wthread and -gthread options, along with a new -tk one to try
2912 the -wthread and -gthread options, along with a new -tk one to try
2907 and coordinate Tk threading with wx/gtk. The tk support is very
2913 and coordinate Tk threading with wx/gtk. The tk support is very
2908 platform dependent, since it seems to require Tcl and Tk to be
2914 platform dependent, since it seems to require Tcl and Tk to be
2909 built with threads (Fedora1/2 appears NOT to have it, but in
2915 built with threads (Fedora1/2 appears NOT to have it, but in
2910 Prabhu's Debian boxes it works OK). But even with some Tk
2916 Prabhu's Debian boxes it works OK). But even with some Tk
2911 limitations, this is a great improvement.
2917 limitations, this is a great improvement.
2912
2918
2913 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2919 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2914 info in user prompts. Patch by Prabhu.
2920 info in user prompts. Patch by Prabhu.
2915
2921
2916 2004-11-18 Fernando Perez <fperez@colorado.edu>
2922 2004-11-18 Fernando Perez <fperez@colorado.edu>
2917
2923
2918 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2924 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2919 EOFErrors and bail, to avoid infinite loops if a non-terminating
2925 EOFErrors and bail, to avoid infinite loops if a non-terminating
2920 file is fed into ipython. Patch submitted in issue 19 by user,
2926 file is fed into ipython. Patch submitted in issue 19 by user,
2921 many thanks.
2927 many thanks.
2922
2928
2923 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2929 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2924 autoquote/parens in continuation prompts, which can cause lots of
2930 autoquote/parens in continuation prompts, which can cause lots of
2925 problems. Closes roundup issue 20.
2931 problems. Closes roundup issue 20.
2926
2932
2927 2004-11-17 Fernando Perez <fperez@colorado.edu>
2933 2004-11-17 Fernando Perez <fperez@colorado.edu>
2928
2934
2929 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2935 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2930 reported as debian bug #280505. I'm not sure my local changelog
2936 reported as debian bug #280505. I'm not sure my local changelog
2931 entry has the proper debian format (Jack?).
2937 entry has the proper debian format (Jack?).
2932
2938
2933 2004-11-08 *** Released version 0.6.4
2939 2004-11-08 *** Released version 0.6.4
2934
2940
2935 2004-11-08 Fernando Perez <fperez@colorado.edu>
2941 2004-11-08 Fernando Perez <fperez@colorado.edu>
2936
2942
2937 * IPython/iplib.py (init_readline): Fix exit message for Windows
2943 * IPython/iplib.py (init_readline): Fix exit message for Windows
2938 when readline is active. Thanks to a report by Eric Jones
2944 when readline is active. Thanks to a report by Eric Jones
2939 <eric-AT-enthought.com>.
2945 <eric-AT-enthought.com>.
2940
2946
2941 2004-11-07 Fernando Perez <fperez@colorado.edu>
2947 2004-11-07 Fernando Perez <fperez@colorado.edu>
2942
2948
2943 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2949 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2944 sometimes seen by win2k/cygwin users.
2950 sometimes seen by win2k/cygwin users.
2945
2951
2946 2004-11-06 Fernando Perez <fperez@colorado.edu>
2952 2004-11-06 Fernando Perez <fperez@colorado.edu>
2947
2953
2948 * IPython/iplib.py (interact): Change the handling of %Exit from
2954 * IPython/iplib.py (interact): Change the handling of %Exit from
2949 trying to propagate a SystemExit to an internal ipython flag.
2955 trying to propagate a SystemExit to an internal ipython flag.
2950 This is less elegant than using Python's exception mechanism, but
2956 This is less elegant than using Python's exception mechanism, but
2951 I can't get that to work reliably with threads, so under -pylab
2957 I can't get that to work reliably with threads, so under -pylab
2952 %Exit was hanging IPython. Cross-thread exception handling is
2958 %Exit was hanging IPython. Cross-thread exception handling is
2953 really a bitch. Thaks to a bug report by Stephen Walton
2959 really a bitch. Thaks to a bug report by Stephen Walton
2954 <stephen.walton-AT-csun.edu>.
2960 <stephen.walton-AT-csun.edu>.
2955
2961
2956 2004-11-04 Fernando Perez <fperez@colorado.edu>
2962 2004-11-04 Fernando Perez <fperez@colorado.edu>
2957
2963
2958 * IPython/iplib.py (raw_input_original): store a pointer to the
2964 * IPython/iplib.py (raw_input_original): store a pointer to the
2959 true raw_input to harden against code which can modify it
2965 true raw_input to harden against code which can modify it
2960 (wx.py.PyShell does this and would otherwise crash ipython).
2966 (wx.py.PyShell does this and would otherwise crash ipython).
2961 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2967 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2962
2968
2963 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2969 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2964 Ctrl-C problem, which does not mess up the input line.
2970 Ctrl-C problem, which does not mess up the input line.
2965
2971
2966 2004-11-03 Fernando Perez <fperez@colorado.edu>
2972 2004-11-03 Fernando Perez <fperez@colorado.edu>
2967
2973
2968 * IPython/Release.py: Changed licensing to BSD, in all files.
2974 * IPython/Release.py: Changed licensing to BSD, in all files.
2969 (name): lowercase name for tarball/RPM release.
2975 (name): lowercase name for tarball/RPM release.
2970
2976
2971 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2977 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2972 use throughout ipython.
2978 use throughout ipython.
2973
2979
2974 * IPython/Magic.py (Magic._ofind): Switch to using the new
2980 * IPython/Magic.py (Magic._ofind): Switch to using the new
2975 OInspect.getdoc() function.
2981 OInspect.getdoc() function.
2976
2982
2977 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2983 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2978 of the line currently being canceled via Ctrl-C. It's extremely
2984 of the line currently being canceled via Ctrl-C. It's extremely
2979 ugly, but I don't know how to do it better (the problem is one of
2985 ugly, but I don't know how to do it better (the problem is one of
2980 handling cross-thread exceptions).
2986 handling cross-thread exceptions).
2981
2987
2982 2004-10-28 Fernando Perez <fperez@colorado.edu>
2988 2004-10-28 Fernando Perez <fperez@colorado.edu>
2983
2989
2984 * IPython/Shell.py (signal_handler): add signal handlers to trap
2990 * IPython/Shell.py (signal_handler): add signal handlers to trap
2985 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2991 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2986 report by Francesc Alted.
2992 report by Francesc Alted.
2987
2993
2988 2004-10-21 Fernando Perez <fperez@colorado.edu>
2994 2004-10-21 Fernando Perez <fperez@colorado.edu>
2989
2995
2990 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2996 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2991 to % for pysh syntax extensions.
2997 to % for pysh syntax extensions.
2992
2998
2993 2004-10-09 Fernando Perez <fperez@colorado.edu>
2999 2004-10-09 Fernando Perez <fperez@colorado.edu>
2994
3000
2995 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3001 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2996 arrays to print a more useful summary, without calling str(arr).
3002 arrays to print a more useful summary, without calling str(arr).
2997 This avoids the problem of extremely lengthy computations which
3003 This avoids the problem of extremely lengthy computations which
2998 occur if arr is large, and appear to the user as a system lockup
3004 occur if arr is large, and appear to the user as a system lockup
2999 with 100% cpu activity. After a suggestion by Kristian Sandberg
3005 with 100% cpu activity. After a suggestion by Kristian Sandberg
3000 <Kristian.Sandberg@colorado.edu>.
3006 <Kristian.Sandberg@colorado.edu>.
3001 (Magic.__init__): fix bug in global magic escapes not being
3007 (Magic.__init__): fix bug in global magic escapes not being
3002 correctly set.
3008 correctly set.
3003
3009
3004 2004-10-08 Fernando Perez <fperez@colorado.edu>
3010 2004-10-08 Fernando Perez <fperez@colorado.edu>
3005
3011
3006 * IPython/Magic.py (__license__): change to absolute imports of
3012 * IPython/Magic.py (__license__): change to absolute imports of
3007 ipython's own internal packages, to start adapting to the absolute
3013 ipython's own internal packages, to start adapting to the absolute
3008 import requirement of PEP-328.
3014 import requirement of PEP-328.
3009
3015
3010 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3016 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3011 files, and standardize author/license marks through the Release
3017 files, and standardize author/license marks through the Release
3012 module instead of having per/file stuff (except for files with
3018 module instead of having per/file stuff (except for files with
3013 particular licenses, like the MIT/PSF-licensed codes).
3019 particular licenses, like the MIT/PSF-licensed codes).
3014
3020
3015 * IPython/Debugger.py: remove dead code for python 2.1
3021 * IPython/Debugger.py: remove dead code for python 2.1
3016
3022
3017 2004-10-04 Fernando Perez <fperez@colorado.edu>
3023 2004-10-04 Fernando Perez <fperez@colorado.edu>
3018
3024
3019 * IPython/iplib.py (ipmagic): New function for accessing magics
3025 * IPython/iplib.py (ipmagic): New function for accessing magics
3020 via a normal python function call.
3026 via a normal python function call.
3021
3027
3022 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3028 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3023 from '@' to '%', to accomodate the new @decorator syntax of python
3029 from '@' to '%', to accomodate the new @decorator syntax of python
3024 2.4.
3030 2.4.
3025
3031
3026 2004-09-29 Fernando Perez <fperez@colorado.edu>
3032 2004-09-29 Fernando Perez <fperez@colorado.edu>
3027
3033
3028 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3034 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3029 matplotlib.use to prevent running scripts which try to switch
3035 matplotlib.use to prevent running scripts which try to switch
3030 interactive backends from within ipython. This will just crash
3036 interactive backends from within ipython. This will just crash
3031 the python interpreter, so we can't allow it (but a detailed error
3037 the python interpreter, so we can't allow it (but a detailed error
3032 is given to the user).
3038 is given to the user).
3033
3039
3034 2004-09-28 Fernando Perez <fperez@colorado.edu>
3040 2004-09-28 Fernando Perez <fperez@colorado.edu>
3035
3041
3036 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3042 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3037 matplotlib-related fixes so that using @run with non-matplotlib
3043 matplotlib-related fixes so that using @run with non-matplotlib
3038 scripts doesn't pop up spurious plot windows. This requires
3044 scripts doesn't pop up spurious plot windows. This requires
3039 matplotlib >= 0.63, where I had to make some changes as well.
3045 matplotlib >= 0.63, where I had to make some changes as well.
3040
3046
3041 * IPython/ipmaker.py (make_IPython): update version requirement to
3047 * IPython/ipmaker.py (make_IPython): update version requirement to
3042 python 2.2.
3048 python 2.2.
3043
3049
3044 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3050 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3045 banner arg for embedded customization.
3051 banner arg for embedded customization.
3046
3052
3047 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3053 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3048 explicit uses of __IP as the IPython's instance name. Now things
3054 explicit uses of __IP as the IPython's instance name. Now things
3049 are properly handled via the shell.name value. The actual code
3055 are properly handled via the shell.name value. The actual code
3050 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3056 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3051 is much better than before. I'll clean things completely when the
3057 is much better than before. I'll clean things completely when the
3052 magic stuff gets a real overhaul.
3058 magic stuff gets a real overhaul.
3053
3059
3054 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3060 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3055 minor changes to debian dir.
3061 minor changes to debian dir.
3056
3062
3057 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3063 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3058 pointer to the shell itself in the interactive namespace even when
3064 pointer to the shell itself in the interactive namespace even when
3059 a user-supplied dict is provided. This is needed for embedding
3065 a user-supplied dict is provided. This is needed for embedding
3060 purposes (found by tests with Michel Sanner).
3066 purposes (found by tests with Michel Sanner).
3061
3067
3062 2004-09-27 Fernando Perez <fperez@colorado.edu>
3068 2004-09-27 Fernando Perez <fperez@colorado.edu>
3063
3069
3064 * IPython/UserConfig/ipythonrc: remove []{} from
3070 * IPython/UserConfig/ipythonrc: remove []{} from
3065 readline_remove_delims, so that things like [modname.<TAB> do
3071 readline_remove_delims, so that things like [modname.<TAB> do
3066 proper completion. This disables [].TAB, but that's a less common
3072 proper completion. This disables [].TAB, but that's a less common
3067 case than module names in list comprehensions, for example.
3073 case than module names in list comprehensions, for example.
3068 Thanks to a report by Andrea Riciputi.
3074 Thanks to a report by Andrea Riciputi.
3069
3075
3070 2004-09-09 Fernando Perez <fperez@colorado.edu>
3076 2004-09-09 Fernando Perez <fperez@colorado.edu>
3071
3077
3072 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3078 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3073 blocking problems in win32 and osx. Fix by John.
3079 blocking problems in win32 and osx. Fix by John.
3074
3080
3075 2004-09-08 Fernando Perez <fperez@colorado.edu>
3081 2004-09-08 Fernando Perez <fperez@colorado.edu>
3076
3082
3077 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3083 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3078 for Win32 and OSX. Fix by John Hunter.
3084 for Win32 and OSX. Fix by John Hunter.
3079
3085
3080 2004-08-30 *** Released version 0.6.3
3086 2004-08-30 *** Released version 0.6.3
3081
3087
3082 2004-08-30 Fernando Perez <fperez@colorado.edu>
3088 2004-08-30 Fernando Perez <fperez@colorado.edu>
3083
3089
3084 * setup.py (isfile): Add manpages to list of dependent files to be
3090 * setup.py (isfile): Add manpages to list of dependent files to be
3085 updated.
3091 updated.
3086
3092
3087 2004-08-27 Fernando Perez <fperez@colorado.edu>
3093 2004-08-27 Fernando Perez <fperez@colorado.edu>
3088
3094
3089 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3095 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3090 for now. They don't really work with standalone WX/GTK code
3096 for now. They don't really work with standalone WX/GTK code
3091 (though matplotlib IS working fine with both of those backends).
3097 (though matplotlib IS working fine with both of those backends).
3092 This will neeed much more testing. I disabled most things with
3098 This will neeed much more testing. I disabled most things with
3093 comments, so turning it back on later should be pretty easy.
3099 comments, so turning it back on later should be pretty easy.
3094
3100
3095 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3101 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3096 autocalling of expressions like r'foo', by modifying the line
3102 autocalling of expressions like r'foo', by modifying the line
3097 split regexp. Closes
3103 split regexp. Closes
3098 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3104 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3099 Riley <ipythonbugs-AT-sabi.net>.
3105 Riley <ipythonbugs-AT-sabi.net>.
3100 (InteractiveShell.mainloop): honor --nobanner with banner
3106 (InteractiveShell.mainloop): honor --nobanner with banner
3101 extensions.
3107 extensions.
3102
3108
3103 * IPython/Shell.py: Significant refactoring of all classes, so
3109 * IPython/Shell.py: Significant refactoring of all classes, so
3104 that we can really support ALL matplotlib backends and threading
3110 that we can really support ALL matplotlib backends and threading
3105 models (John spotted a bug with Tk which required this). Now we
3111 models (John spotted a bug with Tk which required this). Now we
3106 should support single-threaded, WX-threads and GTK-threads, both
3112 should support single-threaded, WX-threads and GTK-threads, both
3107 for generic code and for matplotlib.
3113 for generic code and for matplotlib.
3108
3114
3109 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3115 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3110 -pylab, to simplify things for users. Will also remove the pylab
3116 -pylab, to simplify things for users. Will also remove the pylab
3111 profile, since now all of matplotlib configuration is directly
3117 profile, since now all of matplotlib configuration is directly
3112 handled here. This also reduces startup time.
3118 handled here. This also reduces startup time.
3113
3119
3114 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3120 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3115 shell wasn't being correctly called. Also in IPShellWX.
3121 shell wasn't being correctly called. Also in IPShellWX.
3116
3122
3117 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3123 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3118 fine-tune banner.
3124 fine-tune banner.
3119
3125
3120 * IPython/numutils.py (spike): Deprecate these spike functions,
3126 * IPython/numutils.py (spike): Deprecate these spike functions,
3121 delete (long deprecated) gnuplot_exec handler.
3127 delete (long deprecated) gnuplot_exec handler.
3122
3128
3123 2004-08-26 Fernando Perez <fperez@colorado.edu>
3129 2004-08-26 Fernando Perez <fperez@colorado.edu>
3124
3130
3125 * ipython.1: Update for threading options, plus some others which
3131 * ipython.1: Update for threading options, plus some others which
3126 were missing.
3132 were missing.
3127
3133
3128 * IPython/ipmaker.py (__call__): Added -wthread option for
3134 * IPython/ipmaker.py (__call__): Added -wthread option for
3129 wxpython thread handling. Make sure threading options are only
3135 wxpython thread handling. Make sure threading options are only
3130 valid at the command line.
3136 valid at the command line.
3131
3137
3132 * scripts/ipython: moved shell selection into a factory function
3138 * scripts/ipython: moved shell selection into a factory function
3133 in Shell.py, to keep the starter script to a minimum.
3139 in Shell.py, to keep the starter script to a minimum.
3134
3140
3135 2004-08-25 Fernando Perez <fperez@colorado.edu>
3141 2004-08-25 Fernando Perez <fperez@colorado.edu>
3136
3142
3137 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3143 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3138 John. Along with some recent changes he made to matplotlib, the
3144 John. Along with some recent changes he made to matplotlib, the
3139 next versions of both systems should work very well together.
3145 next versions of both systems should work very well together.
3140
3146
3141 2004-08-24 Fernando Perez <fperez@colorado.edu>
3147 2004-08-24 Fernando Perez <fperez@colorado.edu>
3142
3148
3143 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3149 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3144 tried to switch the profiling to using hotshot, but I'm getting
3150 tried to switch the profiling to using hotshot, but I'm getting
3145 strange errors from prof.runctx() there. I may be misreading the
3151 strange errors from prof.runctx() there. I may be misreading the
3146 docs, but it looks weird. For now the profiling code will
3152 docs, but it looks weird. For now the profiling code will
3147 continue to use the standard profiler.
3153 continue to use the standard profiler.
3148
3154
3149 2004-08-23 Fernando Perez <fperez@colorado.edu>
3155 2004-08-23 Fernando Perez <fperez@colorado.edu>
3150
3156
3151 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3157 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3152 threaded shell, by John Hunter. It's not quite ready yet, but
3158 threaded shell, by John Hunter. It's not quite ready yet, but
3153 close.
3159 close.
3154
3160
3155 2004-08-22 Fernando Perez <fperez@colorado.edu>
3161 2004-08-22 Fernando Perez <fperez@colorado.edu>
3156
3162
3157 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3163 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3158 in Magic and ultraTB.
3164 in Magic and ultraTB.
3159
3165
3160 * ipython.1: document threading options in manpage.
3166 * ipython.1: document threading options in manpage.
3161
3167
3162 * scripts/ipython: Changed name of -thread option to -gthread,
3168 * scripts/ipython: Changed name of -thread option to -gthread,
3163 since this is GTK specific. I want to leave the door open for a
3169 since this is GTK specific. I want to leave the door open for a
3164 -wthread option for WX, which will most likely be necessary. This
3170 -wthread option for WX, which will most likely be necessary. This
3165 change affects usage and ipmaker as well.
3171 change affects usage and ipmaker as well.
3166
3172
3167 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3173 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3168 handle the matplotlib shell issues. Code by John Hunter
3174 handle the matplotlib shell issues. Code by John Hunter
3169 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3175 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3170 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3176 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3171 broken (and disabled for end users) for now, but it puts the
3177 broken (and disabled for end users) for now, but it puts the
3172 infrastructure in place.
3178 infrastructure in place.
3173
3179
3174 2004-08-21 Fernando Perez <fperez@colorado.edu>
3180 2004-08-21 Fernando Perez <fperez@colorado.edu>
3175
3181
3176 * ipythonrc-pylab: Add matplotlib support.
3182 * ipythonrc-pylab: Add matplotlib support.
3177
3183
3178 * matplotlib_config.py: new files for matplotlib support, part of
3184 * matplotlib_config.py: new files for matplotlib support, part of
3179 the pylab profile.
3185 the pylab profile.
3180
3186
3181 * IPython/usage.py (__doc__): documented the threading options.
3187 * IPython/usage.py (__doc__): documented the threading options.
3182
3188
3183 2004-08-20 Fernando Perez <fperez@colorado.edu>
3189 2004-08-20 Fernando Perez <fperez@colorado.edu>
3184
3190
3185 * ipython: Modified the main calling routine to handle the -thread
3191 * ipython: Modified the main calling routine to handle the -thread
3186 and -mpthread options. This needs to be done as a top-level hack,
3192 and -mpthread options. This needs to be done as a top-level hack,
3187 because it determines which class to instantiate for IPython
3193 because it determines which class to instantiate for IPython
3188 itself.
3194 itself.
3189
3195
3190 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3196 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3191 classes to support multithreaded GTK operation without blocking,
3197 classes to support multithreaded GTK operation without blocking,
3192 and matplotlib with all backends. This is a lot of still very
3198 and matplotlib with all backends. This is a lot of still very
3193 experimental code, and threads are tricky. So it may still have a
3199 experimental code, and threads are tricky. So it may still have a
3194 few rough edges... This code owes a lot to
3200 few rough edges... This code owes a lot to
3195 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3201 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3196 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3202 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3197 to John Hunter for all the matplotlib work.
3203 to John Hunter for all the matplotlib work.
3198
3204
3199 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3205 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3200 options for gtk thread and matplotlib support.
3206 options for gtk thread and matplotlib support.
3201
3207
3202 2004-08-16 Fernando Perez <fperez@colorado.edu>
3208 2004-08-16 Fernando Perez <fperez@colorado.edu>
3203
3209
3204 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3210 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3205 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3211 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3206 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3212 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3207
3213
3208 2004-08-11 Fernando Perez <fperez@colorado.edu>
3214 2004-08-11 Fernando Perez <fperez@colorado.edu>
3209
3215
3210 * setup.py (isfile): Fix build so documentation gets updated for
3216 * setup.py (isfile): Fix build so documentation gets updated for
3211 rpms (it was only done for .tgz builds).
3217 rpms (it was only done for .tgz builds).
3212
3218
3213 2004-08-10 Fernando Perez <fperez@colorado.edu>
3219 2004-08-10 Fernando Perez <fperez@colorado.edu>
3214
3220
3215 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3221 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3216
3222
3217 * iplib.py : Silence syntax error exceptions in tab-completion.
3223 * iplib.py : Silence syntax error exceptions in tab-completion.
3218
3224
3219 2004-08-05 Fernando Perez <fperez@colorado.edu>
3225 2004-08-05 Fernando Perez <fperez@colorado.edu>
3220
3226
3221 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3227 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3222 'color off' mark for continuation prompts. This was causing long
3228 'color off' mark for continuation prompts. This was causing long
3223 continuation lines to mis-wrap.
3229 continuation lines to mis-wrap.
3224
3230
3225 2004-08-01 Fernando Perez <fperez@colorado.edu>
3231 2004-08-01 Fernando Perez <fperez@colorado.edu>
3226
3232
3227 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3233 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3228 for building ipython to be a parameter. All this is necessary
3234 for building ipython to be a parameter. All this is necessary
3229 right now to have a multithreaded version, but this insane
3235 right now to have a multithreaded version, but this insane
3230 non-design will be cleaned up soon. For now, it's a hack that
3236 non-design will be cleaned up soon. For now, it's a hack that
3231 works.
3237 works.
3232
3238
3233 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3239 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3234 args in various places. No bugs so far, but it's a dangerous
3240 args in various places. No bugs so far, but it's a dangerous
3235 practice.
3241 practice.
3236
3242
3237 2004-07-31 Fernando Perez <fperez@colorado.edu>
3243 2004-07-31 Fernando Perez <fperez@colorado.edu>
3238
3244
3239 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3245 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3240 fix completion of files with dots in their names under most
3246 fix completion of files with dots in their names under most
3241 profiles (pysh was OK because the completion order is different).
3247 profiles (pysh was OK because the completion order is different).
3242
3248
3243 2004-07-27 Fernando Perez <fperez@colorado.edu>
3249 2004-07-27 Fernando Perez <fperez@colorado.edu>
3244
3250
3245 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3251 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3246 keywords manually, b/c the one in keyword.py was removed in python
3252 keywords manually, b/c the one in keyword.py was removed in python
3247 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3253 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3248 This is NOT a bug under python 2.3 and earlier.
3254 This is NOT a bug under python 2.3 and earlier.
3249
3255
3250 2004-07-26 Fernando Perez <fperez@colorado.edu>
3256 2004-07-26 Fernando Perez <fperez@colorado.edu>
3251
3257
3252 * IPython/ultraTB.py (VerboseTB.text): Add another
3258 * IPython/ultraTB.py (VerboseTB.text): Add another
3253 linecache.checkcache() call to try to prevent inspect.py from
3259 linecache.checkcache() call to try to prevent inspect.py from
3254 crashing under python 2.3. I think this fixes
3260 crashing under python 2.3. I think this fixes
3255 http://www.scipy.net/roundup/ipython/issue17.
3261 http://www.scipy.net/roundup/ipython/issue17.
3256
3262
3257 2004-07-26 *** Released version 0.6.2
3263 2004-07-26 *** Released version 0.6.2
3258
3264
3259 2004-07-26 Fernando Perez <fperez@colorado.edu>
3265 2004-07-26 Fernando Perez <fperez@colorado.edu>
3260
3266
3261 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3267 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3262 fail for any number.
3268 fail for any number.
3263 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3269 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3264 empty bookmarks.
3270 empty bookmarks.
3265
3271
3266 2004-07-26 *** Released version 0.6.1
3272 2004-07-26 *** Released version 0.6.1
3267
3273
3268 2004-07-26 Fernando Perez <fperez@colorado.edu>
3274 2004-07-26 Fernando Perez <fperez@colorado.edu>
3269
3275
3270 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3276 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3271
3277
3272 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3278 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3273 escaping '()[]{}' in filenames.
3279 escaping '()[]{}' in filenames.
3274
3280
3275 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3281 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3276 Python 2.2 users who lack a proper shlex.split.
3282 Python 2.2 users who lack a proper shlex.split.
3277
3283
3278 2004-07-19 Fernando Perez <fperez@colorado.edu>
3284 2004-07-19 Fernando Perez <fperez@colorado.edu>
3279
3285
3280 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3286 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3281 for reading readline's init file. I follow the normal chain:
3287 for reading readline's init file. I follow the normal chain:
3282 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3288 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3283 report by Mike Heeter. This closes
3289 report by Mike Heeter. This closes
3284 http://www.scipy.net/roundup/ipython/issue16.
3290 http://www.scipy.net/roundup/ipython/issue16.
3285
3291
3286 2004-07-18 Fernando Perez <fperez@colorado.edu>
3292 2004-07-18 Fernando Perez <fperez@colorado.edu>
3287
3293
3288 * IPython/iplib.py (__init__): Add better handling of '\' under
3294 * IPython/iplib.py (__init__): Add better handling of '\' under
3289 Win32 for filenames. After a patch by Ville.
3295 Win32 for filenames. After a patch by Ville.
3290
3296
3291 2004-07-17 Fernando Perez <fperez@colorado.edu>
3297 2004-07-17 Fernando Perez <fperez@colorado.edu>
3292
3298
3293 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3299 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3294 autocalling would be triggered for 'foo is bar' if foo is
3300 autocalling would be triggered for 'foo is bar' if foo is
3295 callable. I also cleaned up the autocall detection code to use a
3301 callable. I also cleaned up the autocall detection code to use a
3296 regexp, which is faster. Bug reported by Alexander Schmolck.
3302 regexp, which is faster. Bug reported by Alexander Schmolck.
3297
3303
3298 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3304 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3299 '?' in them would confuse the help system. Reported by Alex
3305 '?' in them would confuse the help system. Reported by Alex
3300 Schmolck.
3306 Schmolck.
3301
3307
3302 2004-07-16 Fernando Perez <fperez@colorado.edu>
3308 2004-07-16 Fernando Perez <fperez@colorado.edu>
3303
3309
3304 * IPython/GnuplotInteractive.py (__all__): added plot2.
3310 * IPython/GnuplotInteractive.py (__all__): added plot2.
3305
3311
3306 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3312 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3307 plotting dictionaries, lists or tuples of 1d arrays.
3313 plotting dictionaries, lists or tuples of 1d arrays.
3308
3314
3309 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3315 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3310 optimizations.
3316 optimizations.
3311
3317
3312 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3318 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3313 the information which was there from Janko's original IPP code:
3319 the information which was there from Janko's original IPP code:
3314
3320
3315 03.05.99 20:53 porto.ifm.uni-kiel.de
3321 03.05.99 20:53 porto.ifm.uni-kiel.de
3316 --Started changelog.
3322 --Started changelog.
3317 --make clear do what it say it does
3323 --make clear do what it say it does
3318 --added pretty output of lines from inputcache
3324 --added pretty output of lines from inputcache
3319 --Made Logger a mixin class, simplifies handling of switches
3325 --Made Logger a mixin class, simplifies handling of switches
3320 --Added own completer class. .string<TAB> expands to last history
3326 --Added own completer class. .string<TAB> expands to last history
3321 line which starts with string. The new expansion is also present
3327 line which starts with string. The new expansion is also present
3322 with Ctrl-r from the readline library. But this shows, who this
3328 with Ctrl-r from the readline library. But this shows, who this
3323 can be done for other cases.
3329 can be done for other cases.
3324 --Added convention that all shell functions should accept a
3330 --Added convention that all shell functions should accept a
3325 parameter_string This opens the door for different behaviour for
3331 parameter_string This opens the door for different behaviour for
3326 each function. @cd is a good example of this.
3332 each function. @cd is a good example of this.
3327
3333
3328 04.05.99 12:12 porto.ifm.uni-kiel.de
3334 04.05.99 12:12 porto.ifm.uni-kiel.de
3329 --added logfile rotation
3335 --added logfile rotation
3330 --added new mainloop method which freezes first the namespace
3336 --added new mainloop method which freezes first the namespace
3331
3337
3332 07.05.99 21:24 porto.ifm.uni-kiel.de
3338 07.05.99 21:24 porto.ifm.uni-kiel.de
3333 --added the docreader classes. Now there is a help system.
3339 --added the docreader classes. Now there is a help system.
3334 -This is only a first try. Currently it's not easy to put new
3340 -This is only a first try. Currently it's not easy to put new
3335 stuff in the indices. But this is the way to go. Info would be
3341 stuff in the indices. But this is the way to go. Info would be
3336 better, but HTML is every where and not everybody has an info
3342 better, but HTML is every where and not everybody has an info
3337 system installed and it's not so easy to change html-docs to info.
3343 system installed and it's not so easy to change html-docs to info.
3338 --added global logfile option
3344 --added global logfile option
3339 --there is now a hook for object inspection method pinfo needs to
3345 --there is now a hook for object inspection method pinfo needs to
3340 be provided for this. Can be reached by two '??'.
3346 be provided for this. Can be reached by two '??'.
3341
3347
3342 08.05.99 20:51 porto.ifm.uni-kiel.de
3348 08.05.99 20:51 porto.ifm.uni-kiel.de
3343 --added a README
3349 --added a README
3344 --bug in rc file. Something has changed so functions in the rc
3350 --bug in rc file. Something has changed so functions in the rc
3345 file need to reference the shell and not self. Not clear if it's a
3351 file need to reference the shell and not self. Not clear if it's a
3346 bug or feature.
3352 bug or feature.
3347 --changed rc file for new behavior
3353 --changed rc file for new behavior
3348
3354
3349 2004-07-15 Fernando Perez <fperez@colorado.edu>
3355 2004-07-15 Fernando Perez <fperez@colorado.edu>
3350
3356
3351 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3357 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3352 cache was falling out of sync in bizarre manners when multi-line
3358 cache was falling out of sync in bizarre manners when multi-line
3353 input was present. Minor optimizations and cleanup.
3359 input was present. Minor optimizations and cleanup.
3354
3360
3355 (Logger): Remove old Changelog info for cleanup. This is the
3361 (Logger): Remove old Changelog info for cleanup. This is the
3356 information which was there from Janko's original code:
3362 information which was there from Janko's original code:
3357
3363
3358 Changes to Logger: - made the default log filename a parameter
3364 Changes to Logger: - made the default log filename a parameter
3359
3365
3360 - put a check for lines beginning with !@? in log(). Needed
3366 - put a check for lines beginning with !@? in log(). Needed
3361 (even if the handlers properly log their lines) for mid-session
3367 (even if the handlers properly log their lines) for mid-session
3362 logging activation to work properly. Without this, lines logged
3368 logging activation to work properly. Without this, lines logged
3363 in mid session, which get read from the cache, would end up
3369 in mid session, which get read from the cache, would end up
3364 'bare' (with !@? in the open) in the log. Now they are caught
3370 'bare' (with !@? in the open) in the log. Now they are caught
3365 and prepended with a #.
3371 and prepended with a #.
3366
3372
3367 * IPython/iplib.py (InteractiveShell.init_readline): added check
3373 * IPython/iplib.py (InteractiveShell.init_readline): added check
3368 in case MagicCompleter fails to be defined, so we don't crash.
3374 in case MagicCompleter fails to be defined, so we don't crash.
3369
3375
3370 2004-07-13 Fernando Perez <fperez@colorado.edu>
3376 2004-07-13 Fernando Perez <fperez@colorado.edu>
3371
3377
3372 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3378 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3373 of EPS if the requested filename ends in '.eps'.
3379 of EPS if the requested filename ends in '.eps'.
3374
3380
3375 2004-07-04 Fernando Perez <fperez@colorado.edu>
3381 2004-07-04 Fernando Perez <fperez@colorado.edu>
3376
3382
3377 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3383 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3378 escaping of quotes when calling the shell.
3384 escaping of quotes when calling the shell.
3379
3385
3380 2004-07-02 Fernando Perez <fperez@colorado.edu>
3386 2004-07-02 Fernando Perez <fperez@colorado.edu>
3381
3387
3382 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3388 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3383 gettext not working because we were clobbering '_'. Fixes
3389 gettext not working because we were clobbering '_'. Fixes
3384 http://www.scipy.net/roundup/ipython/issue6.
3390 http://www.scipy.net/roundup/ipython/issue6.
3385
3391
3386 2004-07-01 Fernando Perez <fperez@colorado.edu>
3392 2004-07-01 Fernando Perez <fperez@colorado.edu>
3387
3393
3388 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3394 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3389 into @cd. Patch by Ville.
3395 into @cd. Patch by Ville.
3390
3396
3391 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3397 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3392 new function to store things after ipmaker runs. Patch by Ville.
3398 new function to store things after ipmaker runs. Patch by Ville.
3393 Eventually this will go away once ipmaker is removed and the class
3399 Eventually this will go away once ipmaker is removed and the class
3394 gets cleaned up, but for now it's ok. Key functionality here is
3400 gets cleaned up, but for now it's ok. Key functionality here is
3395 the addition of the persistent storage mechanism, a dict for
3401 the addition of the persistent storage mechanism, a dict for
3396 keeping data across sessions (for now just bookmarks, but more can
3402 keeping data across sessions (for now just bookmarks, but more can
3397 be implemented later).
3403 be implemented later).
3398
3404
3399 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3405 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3400 persistent across sections. Patch by Ville, I modified it
3406 persistent across sections. Patch by Ville, I modified it
3401 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3407 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3402 added a '-l' option to list all bookmarks.
3408 added a '-l' option to list all bookmarks.
3403
3409
3404 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3410 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3405 center for cleanup. Registered with atexit.register(). I moved
3411 center for cleanup. Registered with atexit.register(). I moved
3406 here the old exit_cleanup(). After a patch by Ville.
3412 here the old exit_cleanup(). After a patch by Ville.
3407
3413
3408 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3414 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3409 characters in the hacked shlex_split for python 2.2.
3415 characters in the hacked shlex_split for python 2.2.
3410
3416
3411 * IPython/iplib.py (file_matches): more fixes to filenames with
3417 * IPython/iplib.py (file_matches): more fixes to filenames with
3412 whitespace in them. It's not perfect, but limitations in python's
3418 whitespace in them. It's not perfect, but limitations in python's
3413 readline make it impossible to go further.
3419 readline make it impossible to go further.
3414
3420
3415 2004-06-29 Fernando Perez <fperez@colorado.edu>
3421 2004-06-29 Fernando Perez <fperez@colorado.edu>
3416
3422
3417 * IPython/iplib.py (file_matches): escape whitespace correctly in
3423 * IPython/iplib.py (file_matches): escape whitespace correctly in
3418 filename completions. Bug reported by Ville.
3424 filename completions. Bug reported by Ville.
3419
3425
3420 2004-06-28 Fernando Perez <fperez@colorado.edu>
3426 2004-06-28 Fernando Perez <fperez@colorado.edu>
3421
3427
3422 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3428 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3423 the history file will be called 'history-PROFNAME' (or just
3429 the history file will be called 'history-PROFNAME' (or just
3424 'history' if no profile is loaded). I was getting annoyed at
3430 'history' if no profile is loaded). I was getting annoyed at
3425 getting my Numerical work history clobbered by pysh sessions.
3431 getting my Numerical work history clobbered by pysh sessions.
3426
3432
3427 * IPython/iplib.py (InteractiveShell.__init__): Internal
3433 * IPython/iplib.py (InteractiveShell.__init__): Internal
3428 getoutputerror() function so that we can honor the system_verbose
3434 getoutputerror() function so that we can honor the system_verbose
3429 flag for _all_ system calls. I also added escaping of #
3435 flag for _all_ system calls. I also added escaping of #
3430 characters here to avoid confusing Itpl.
3436 characters here to avoid confusing Itpl.
3431
3437
3432 * IPython/Magic.py (shlex_split): removed call to shell in
3438 * IPython/Magic.py (shlex_split): removed call to shell in
3433 parse_options and replaced it with shlex.split(). The annoying
3439 parse_options and replaced it with shlex.split(). The annoying
3434 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3440 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3435 to backport it from 2.3, with several frail hacks (the shlex
3441 to backport it from 2.3, with several frail hacks (the shlex
3436 module is rather limited in 2.2). Thanks to a suggestion by Ville
3442 module is rather limited in 2.2). Thanks to a suggestion by Ville
3437 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3443 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3438 problem.
3444 problem.
3439
3445
3440 (Magic.magic_system_verbose): new toggle to print the actual
3446 (Magic.magic_system_verbose): new toggle to print the actual
3441 system calls made by ipython. Mainly for debugging purposes.
3447 system calls made by ipython. Mainly for debugging purposes.
3442
3448
3443 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3449 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3444 doesn't support persistence. Reported (and fix suggested) by
3450 doesn't support persistence. Reported (and fix suggested) by
3445 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3451 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3446
3452
3447 2004-06-26 Fernando Perez <fperez@colorado.edu>
3453 2004-06-26 Fernando Perez <fperez@colorado.edu>
3448
3454
3449 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3455 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3450 continue prompts.
3456 continue prompts.
3451
3457
3452 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3458 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3453 function (basically a big docstring) and a few more things here to
3459 function (basically a big docstring) and a few more things here to
3454 speedup startup. pysh.py is now very lightweight. We want because
3460 speedup startup. pysh.py is now very lightweight. We want because
3455 it gets execfile'd, while InterpreterExec gets imported, so
3461 it gets execfile'd, while InterpreterExec gets imported, so
3456 byte-compilation saves time.
3462 byte-compilation saves time.
3457
3463
3458 2004-06-25 Fernando Perez <fperez@colorado.edu>
3464 2004-06-25 Fernando Perez <fperez@colorado.edu>
3459
3465
3460 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3466 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3461 -NUM', which was recently broken.
3467 -NUM', which was recently broken.
3462
3468
3463 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3469 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3464 in multi-line input (but not !!, which doesn't make sense there).
3470 in multi-line input (but not !!, which doesn't make sense there).
3465
3471
3466 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3472 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3467 It's just too useful, and people can turn it off in the less
3473 It's just too useful, and people can turn it off in the less
3468 common cases where it's a problem.
3474 common cases where it's a problem.
3469
3475
3470 2004-06-24 Fernando Perez <fperez@colorado.edu>
3476 2004-06-24 Fernando Perez <fperez@colorado.edu>
3471
3477
3472 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3478 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3473 special syntaxes (like alias calling) is now allied in multi-line
3479 special syntaxes (like alias calling) is now allied in multi-line
3474 input. This is still _very_ experimental, but it's necessary for
3480 input. This is still _very_ experimental, but it's necessary for
3475 efficient shell usage combining python looping syntax with system
3481 efficient shell usage combining python looping syntax with system
3476 calls. For now it's restricted to aliases, I don't think it
3482 calls. For now it's restricted to aliases, I don't think it
3477 really even makes sense to have this for magics.
3483 really even makes sense to have this for magics.
3478
3484
3479 2004-06-23 Fernando Perez <fperez@colorado.edu>
3485 2004-06-23 Fernando Perez <fperez@colorado.edu>
3480
3486
3481 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3487 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3482 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3488 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3483
3489
3484 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3490 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3485 extensions under Windows (after code sent by Gary Bishop). The
3491 extensions under Windows (after code sent by Gary Bishop). The
3486 extensions considered 'executable' are stored in IPython's rc
3492 extensions considered 'executable' are stored in IPython's rc
3487 structure as win_exec_ext.
3493 structure as win_exec_ext.
3488
3494
3489 * IPython/genutils.py (shell): new function, like system() but
3495 * IPython/genutils.py (shell): new function, like system() but
3490 without return value. Very useful for interactive shell work.
3496 without return value. Very useful for interactive shell work.
3491
3497
3492 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3498 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3493 delete aliases.
3499 delete aliases.
3494
3500
3495 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3501 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3496 sure that the alias table doesn't contain python keywords.
3502 sure that the alias table doesn't contain python keywords.
3497
3503
3498 2004-06-21 Fernando Perez <fperez@colorado.edu>
3504 2004-06-21 Fernando Perez <fperez@colorado.edu>
3499
3505
3500 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3506 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3501 non-existent items are found in $PATH. Reported by Thorsten.
3507 non-existent items are found in $PATH. Reported by Thorsten.
3502
3508
3503 2004-06-20 Fernando Perez <fperez@colorado.edu>
3509 2004-06-20 Fernando Perez <fperez@colorado.edu>
3504
3510
3505 * IPython/iplib.py (complete): modified the completer so that the
3511 * IPython/iplib.py (complete): modified the completer so that the
3506 order of priorities can be easily changed at runtime.
3512 order of priorities can be easily changed at runtime.
3507
3513
3508 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3514 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3509 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3515 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3510
3516
3511 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3517 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3512 expand Python variables prepended with $ in all system calls. The
3518 expand Python variables prepended with $ in all system calls. The
3513 same was done to InteractiveShell.handle_shell_escape. Now all
3519 same was done to InteractiveShell.handle_shell_escape. Now all
3514 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3520 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3515 expansion of python variables and expressions according to the
3521 expansion of python variables and expressions according to the
3516 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3522 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3517
3523
3518 Though PEP-215 has been rejected, a similar (but simpler) one
3524 Though PEP-215 has been rejected, a similar (but simpler) one
3519 seems like it will go into Python 2.4, PEP-292 -
3525 seems like it will go into Python 2.4, PEP-292 -
3520 http://www.python.org/peps/pep-0292.html.
3526 http://www.python.org/peps/pep-0292.html.
3521
3527
3522 I'll keep the full syntax of PEP-215, since IPython has since the
3528 I'll keep the full syntax of PEP-215, since IPython has since the
3523 start used Ka-Ping Yee's reference implementation discussed there
3529 start used Ka-Ping Yee's reference implementation discussed there
3524 (Itpl), and I actually like the powerful semantics it offers.
3530 (Itpl), and I actually like the powerful semantics it offers.
3525
3531
3526 In order to access normal shell variables, the $ has to be escaped
3532 In order to access normal shell variables, the $ has to be escaped
3527 via an extra $. For example:
3533 via an extra $. For example:
3528
3534
3529 In [7]: PATH='a python variable'
3535 In [7]: PATH='a python variable'
3530
3536
3531 In [8]: !echo $PATH
3537 In [8]: !echo $PATH
3532 a python variable
3538 a python variable
3533
3539
3534 In [9]: !echo $$PATH
3540 In [9]: !echo $$PATH
3535 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3541 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3536
3542
3537 (Magic.parse_options): escape $ so the shell doesn't evaluate
3543 (Magic.parse_options): escape $ so the shell doesn't evaluate
3538 things prematurely.
3544 things prematurely.
3539
3545
3540 * IPython/iplib.py (InteractiveShell.call_alias): added the
3546 * IPython/iplib.py (InteractiveShell.call_alias): added the
3541 ability for aliases to expand python variables via $.
3547 ability for aliases to expand python variables via $.
3542
3548
3543 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3549 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3544 system, now there's a @rehash/@rehashx pair of magics. These work
3550 system, now there's a @rehash/@rehashx pair of magics. These work
3545 like the csh rehash command, and can be invoked at any time. They
3551 like the csh rehash command, and can be invoked at any time. They
3546 build a table of aliases to everything in the user's $PATH
3552 build a table of aliases to everything in the user's $PATH
3547 (@rehash uses everything, @rehashx is slower but only adds
3553 (@rehash uses everything, @rehashx is slower but only adds
3548 executable files). With this, the pysh.py-based shell profile can
3554 executable files). With this, the pysh.py-based shell profile can
3549 now simply call rehash upon startup, and full access to all
3555 now simply call rehash upon startup, and full access to all
3550 programs in the user's path is obtained.
3556 programs in the user's path is obtained.
3551
3557
3552 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3558 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3553 functionality is now fully in place. I removed the old dynamic
3559 functionality is now fully in place. I removed the old dynamic
3554 code generation based approach, in favor of a much lighter one
3560 code generation based approach, in favor of a much lighter one
3555 based on a simple dict. The advantage is that this allows me to
3561 based on a simple dict. The advantage is that this allows me to
3556 now have thousands of aliases with negligible cost (unthinkable
3562 now have thousands of aliases with negligible cost (unthinkable
3557 with the old system).
3563 with the old system).
3558
3564
3559 2004-06-19 Fernando Perez <fperez@colorado.edu>
3565 2004-06-19 Fernando Perez <fperez@colorado.edu>
3560
3566
3561 * IPython/iplib.py (__init__): extended MagicCompleter class to
3567 * IPython/iplib.py (__init__): extended MagicCompleter class to
3562 also complete (last in priority) on user aliases.
3568 also complete (last in priority) on user aliases.
3563
3569
3564 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3570 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3565 call to eval.
3571 call to eval.
3566 (ItplNS.__init__): Added a new class which functions like Itpl,
3572 (ItplNS.__init__): Added a new class which functions like Itpl,
3567 but allows configuring the namespace for the evaluation to occur
3573 but allows configuring the namespace for the evaluation to occur
3568 in.
3574 in.
3569
3575
3570 2004-06-18 Fernando Perez <fperez@colorado.edu>
3576 2004-06-18 Fernando Perez <fperez@colorado.edu>
3571
3577
3572 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3578 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3573 better message when 'exit' or 'quit' are typed (a common newbie
3579 better message when 'exit' or 'quit' are typed (a common newbie
3574 confusion).
3580 confusion).
3575
3581
3576 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3582 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3577 check for Windows users.
3583 check for Windows users.
3578
3584
3579 * IPython/iplib.py (InteractiveShell.user_setup): removed
3585 * IPython/iplib.py (InteractiveShell.user_setup): removed
3580 disabling of colors for Windows. I'll test at runtime and issue a
3586 disabling of colors for Windows. I'll test at runtime and issue a
3581 warning if Gary's readline isn't found, as to nudge users to
3587 warning if Gary's readline isn't found, as to nudge users to
3582 download it.
3588 download it.
3583
3589
3584 2004-06-16 Fernando Perez <fperez@colorado.edu>
3590 2004-06-16 Fernando Perez <fperez@colorado.edu>
3585
3591
3586 * IPython/genutils.py (Stream.__init__): changed to print errors
3592 * IPython/genutils.py (Stream.__init__): changed to print errors
3587 to sys.stderr. I had a circular dependency here. Now it's
3593 to sys.stderr. I had a circular dependency here. Now it's
3588 possible to run ipython as IDLE's shell (consider this pre-alpha,
3594 possible to run ipython as IDLE's shell (consider this pre-alpha,
3589 since true stdout things end up in the starting terminal instead
3595 since true stdout things end up in the starting terminal instead
3590 of IDLE's out).
3596 of IDLE's out).
3591
3597
3592 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3598 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3593 users who haven't # updated their prompt_in2 definitions. Remove
3599 users who haven't # updated their prompt_in2 definitions. Remove
3594 eventually.
3600 eventually.
3595 (multiple_replace): added credit to original ASPN recipe.
3601 (multiple_replace): added credit to original ASPN recipe.
3596
3602
3597 2004-06-15 Fernando Perez <fperez@colorado.edu>
3603 2004-06-15 Fernando Perez <fperez@colorado.edu>
3598
3604
3599 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3605 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3600 list of auto-defined aliases.
3606 list of auto-defined aliases.
3601
3607
3602 2004-06-13 Fernando Perez <fperez@colorado.edu>
3608 2004-06-13 Fernando Perez <fperez@colorado.edu>
3603
3609
3604 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3610 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3605 install was really requested (so setup.py can be used for other
3611 install was really requested (so setup.py can be used for other
3606 things under Windows).
3612 things under Windows).
3607
3613
3608 2004-06-10 Fernando Perez <fperez@colorado.edu>
3614 2004-06-10 Fernando Perez <fperez@colorado.edu>
3609
3615
3610 * IPython/Logger.py (Logger.create_log): Manually remove any old
3616 * IPython/Logger.py (Logger.create_log): Manually remove any old
3611 backup, since os.remove may fail under Windows. Fixes bug
3617 backup, since os.remove may fail under Windows. Fixes bug
3612 reported by Thorsten.
3618 reported by Thorsten.
3613
3619
3614 2004-06-09 Fernando Perez <fperez@colorado.edu>
3620 2004-06-09 Fernando Perez <fperez@colorado.edu>
3615
3621
3616 * examples/example-embed.py: fixed all references to %n (replaced
3622 * examples/example-embed.py: fixed all references to %n (replaced
3617 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3623 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3618 for all examples and the manual as well.
3624 for all examples and the manual as well.
3619
3625
3620 2004-06-08 Fernando Perez <fperez@colorado.edu>
3626 2004-06-08 Fernando Perez <fperez@colorado.edu>
3621
3627
3622 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3628 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3623 alignment and color management. All 3 prompt subsystems now
3629 alignment and color management. All 3 prompt subsystems now
3624 inherit from BasePrompt.
3630 inherit from BasePrompt.
3625
3631
3626 * tools/release: updates for windows installer build and tag rpms
3632 * tools/release: updates for windows installer build and tag rpms
3627 with python version (since paths are fixed).
3633 with python version (since paths are fixed).
3628
3634
3629 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3635 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3630 which will become eventually obsolete. Also fixed the default
3636 which will become eventually obsolete. Also fixed the default
3631 prompt_in2 to use \D, so at least new users start with the correct
3637 prompt_in2 to use \D, so at least new users start with the correct
3632 defaults.
3638 defaults.
3633 WARNING: Users with existing ipythonrc files will need to apply
3639 WARNING: Users with existing ipythonrc files will need to apply
3634 this fix manually!
3640 this fix manually!
3635
3641
3636 * setup.py: make windows installer (.exe). This is finally the
3642 * setup.py: make windows installer (.exe). This is finally the
3637 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3643 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3638 which I hadn't included because it required Python 2.3 (or recent
3644 which I hadn't included because it required Python 2.3 (or recent
3639 distutils).
3645 distutils).
3640
3646
3641 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3647 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3642 usage of new '\D' escape.
3648 usage of new '\D' escape.
3643
3649
3644 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3650 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3645 lacks os.getuid())
3651 lacks os.getuid())
3646 (CachedOutput.set_colors): Added the ability to turn coloring
3652 (CachedOutput.set_colors): Added the ability to turn coloring
3647 on/off with @colors even for manually defined prompt colors. It
3653 on/off with @colors even for manually defined prompt colors. It
3648 uses a nasty global, but it works safely and via the generic color
3654 uses a nasty global, but it works safely and via the generic color
3649 handling mechanism.
3655 handling mechanism.
3650 (Prompt2.__init__): Introduced new escape '\D' for continuation
3656 (Prompt2.__init__): Introduced new escape '\D' for continuation
3651 prompts. It represents the counter ('\#') as dots.
3657 prompts. It represents the counter ('\#') as dots.
3652 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3658 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3653 need to update their ipythonrc files and replace '%n' with '\D' in
3659 need to update their ipythonrc files and replace '%n' with '\D' in
3654 their prompt_in2 settings everywhere. Sorry, but there's
3660 their prompt_in2 settings everywhere. Sorry, but there's
3655 otherwise no clean way to get all prompts to properly align. The
3661 otherwise no clean way to get all prompts to properly align. The
3656 ipythonrc shipped with IPython has been updated.
3662 ipythonrc shipped with IPython has been updated.
3657
3663
3658 2004-06-07 Fernando Perez <fperez@colorado.edu>
3664 2004-06-07 Fernando Perez <fperez@colorado.edu>
3659
3665
3660 * setup.py (isfile): Pass local_icons option to latex2html, so the
3666 * setup.py (isfile): Pass local_icons option to latex2html, so the
3661 resulting HTML file is self-contained. Thanks to
3667 resulting HTML file is self-contained. Thanks to
3662 dryice-AT-liu.com.cn for the tip.
3668 dryice-AT-liu.com.cn for the tip.
3663
3669
3664 * pysh.py: I created a new profile 'shell', which implements a
3670 * pysh.py: I created a new profile 'shell', which implements a
3665 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3671 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3666 system shell, nor will it become one anytime soon. It's mainly
3672 system shell, nor will it become one anytime soon. It's mainly
3667 meant to illustrate the use of the new flexible bash-like prompts.
3673 meant to illustrate the use of the new flexible bash-like prompts.
3668 I guess it could be used by hardy souls for true shell management,
3674 I guess it could be used by hardy souls for true shell management,
3669 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3675 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3670 profile. This uses the InterpreterExec extension provided by
3676 profile. This uses the InterpreterExec extension provided by
3671 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3677 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3672
3678
3673 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3679 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3674 auto-align itself with the length of the previous input prompt
3680 auto-align itself with the length of the previous input prompt
3675 (taking into account the invisible color escapes).
3681 (taking into account the invisible color escapes).
3676 (CachedOutput.__init__): Large restructuring of this class. Now
3682 (CachedOutput.__init__): Large restructuring of this class. Now
3677 all three prompts (primary1, primary2, output) are proper objects,
3683 all three prompts (primary1, primary2, output) are proper objects,
3678 managed by the 'parent' CachedOutput class. The code is still a
3684 managed by the 'parent' CachedOutput class. The code is still a
3679 bit hackish (all prompts share state via a pointer to the cache),
3685 bit hackish (all prompts share state via a pointer to the cache),
3680 but it's overall far cleaner than before.
3686 but it's overall far cleaner than before.
3681
3687
3682 * IPython/genutils.py (getoutputerror): modified to add verbose,
3688 * IPython/genutils.py (getoutputerror): modified to add verbose,
3683 debug and header options. This makes the interface of all getout*
3689 debug and header options. This makes the interface of all getout*
3684 functions uniform.
3690 functions uniform.
3685 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3691 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3686
3692
3687 * IPython/Magic.py (Magic.default_option): added a function to
3693 * IPython/Magic.py (Magic.default_option): added a function to
3688 allow registering default options for any magic command. This
3694 allow registering default options for any magic command. This
3689 makes it easy to have profiles which customize the magics globally
3695 makes it easy to have profiles which customize the magics globally
3690 for a certain use. The values set through this function are
3696 for a certain use. The values set through this function are
3691 picked up by the parse_options() method, which all magics should
3697 picked up by the parse_options() method, which all magics should
3692 use to parse their options.
3698 use to parse their options.
3693
3699
3694 * IPython/genutils.py (warn): modified the warnings framework to
3700 * IPython/genutils.py (warn): modified the warnings framework to
3695 use the Term I/O class. I'm trying to slowly unify all of
3701 use the Term I/O class. I'm trying to slowly unify all of
3696 IPython's I/O operations to pass through Term.
3702 IPython's I/O operations to pass through Term.
3697
3703
3698 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3704 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3699 the secondary prompt to correctly match the length of the primary
3705 the secondary prompt to correctly match the length of the primary
3700 one for any prompt. Now multi-line code will properly line up
3706 one for any prompt. Now multi-line code will properly line up
3701 even for path dependent prompts, such as the new ones available
3707 even for path dependent prompts, such as the new ones available
3702 via the prompt_specials.
3708 via the prompt_specials.
3703
3709
3704 2004-06-06 Fernando Perez <fperez@colorado.edu>
3710 2004-06-06 Fernando Perez <fperez@colorado.edu>
3705
3711
3706 * IPython/Prompts.py (prompt_specials): Added the ability to have
3712 * IPython/Prompts.py (prompt_specials): Added the ability to have
3707 bash-like special sequences in the prompts, which get
3713 bash-like special sequences in the prompts, which get
3708 automatically expanded. Things like hostname, current working
3714 automatically expanded. Things like hostname, current working
3709 directory and username are implemented already, but it's easy to
3715 directory and username are implemented already, but it's easy to
3710 add more in the future. Thanks to a patch by W.J. van der Laan
3716 add more in the future. Thanks to a patch by W.J. van der Laan
3711 <gnufnork-AT-hetdigitalegat.nl>
3717 <gnufnork-AT-hetdigitalegat.nl>
3712 (prompt_specials): Added color support for prompt strings, so
3718 (prompt_specials): Added color support for prompt strings, so
3713 users can define arbitrary color setups for their prompts.
3719 users can define arbitrary color setups for their prompts.
3714
3720
3715 2004-06-05 Fernando Perez <fperez@colorado.edu>
3721 2004-06-05 Fernando Perez <fperez@colorado.edu>
3716
3722
3717 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3723 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3718 code to load Gary Bishop's readline and configure it
3724 code to load Gary Bishop's readline and configure it
3719 automatically. Thanks to Gary for help on this.
3725 automatically. Thanks to Gary for help on this.
3720
3726
3721 2004-06-01 Fernando Perez <fperez@colorado.edu>
3727 2004-06-01 Fernando Perez <fperez@colorado.edu>
3722
3728
3723 * IPython/Logger.py (Logger.create_log): fix bug for logging
3729 * IPython/Logger.py (Logger.create_log): fix bug for logging
3724 with no filename (previous fix was incomplete).
3730 with no filename (previous fix was incomplete).
3725
3731
3726 2004-05-25 Fernando Perez <fperez@colorado.edu>
3732 2004-05-25 Fernando Perez <fperez@colorado.edu>
3727
3733
3728 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3734 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3729 parens would get passed to the shell.
3735 parens would get passed to the shell.
3730
3736
3731 2004-05-20 Fernando Perez <fperez@colorado.edu>
3737 2004-05-20 Fernando Perez <fperez@colorado.edu>
3732
3738
3733 * IPython/Magic.py (Magic.magic_prun): changed default profile
3739 * IPython/Magic.py (Magic.magic_prun): changed default profile
3734 sort order to 'time' (the more common profiling need).
3740 sort order to 'time' (the more common profiling need).
3735
3741
3736 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3742 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3737 so that source code shown is guaranteed in sync with the file on
3743 so that source code shown is guaranteed in sync with the file on
3738 disk (also changed in psource). Similar fix to the one for
3744 disk (also changed in psource). Similar fix to the one for
3739 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3745 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3740 <yann.ledu-AT-noos.fr>.
3746 <yann.ledu-AT-noos.fr>.
3741
3747
3742 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3748 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3743 with a single option would not be correctly parsed. Closes
3749 with a single option would not be correctly parsed. Closes
3744 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3750 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3745 introduced in 0.6.0 (on 2004-05-06).
3751 introduced in 0.6.0 (on 2004-05-06).
3746
3752
3747 2004-05-13 *** Released version 0.6.0
3753 2004-05-13 *** Released version 0.6.0
3748
3754
3749 2004-05-13 Fernando Perez <fperez@colorado.edu>
3755 2004-05-13 Fernando Perez <fperez@colorado.edu>
3750
3756
3751 * debian/: Added debian/ directory to CVS, so that debian support
3757 * debian/: Added debian/ directory to CVS, so that debian support
3752 is publicly accessible. The debian package is maintained by Jack
3758 is publicly accessible. The debian package is maintained by Jack
3753 Moffit <jack-AT-xiph.org>.
3759 Moffit <jack-AT-xiph.org>.
3754
3760
3755 * Documentation: included the notes about an ipython-based system
3761 * Documentation: included the notes about an ipython-based system
3756 shell (the hypothetical 'pysh') into the new_design.pdf document,
3762 shell (the hypothetical 'pysh') into the new_design.pdf document,
3757 so that these ideas get distributed to users along with the
3763 so that these ideas get distributed to users along with the
3758 official documentation.
3764 official documentation.
3759
3765
3760 2004-05-10 Fernando Perez <fperez@colorado.edu>
3766 2004-05-10 Fernando Perez <fperez@colorado.edu>
3761
3767
3762 * IPython/Logger.py (Logger.create_log): fix recently introduced
3768 * IPython/Logger.py (Logger.create_log): fix recently introduced
3763 bug (misindented line) where logstart would fail when not given an
3769 bug (misindented line) where logstart would fail when not given an
3764 explicit filename.
3770 explicit filename.
3765
3771
3766 2004-05-09 Fernando Perez <fperez@colorado.edu>
3772 2004-05-09 Fernando Perez <fperez@colorado.edu>
3767
3773
3768 * IPython/Magic.py (Magic.parse_options): skip system call when
3774 * IPython/Magic.py (Magic.parse_options): skip system call when
3769 there are no options to look for. Faster, cleaner for the common
3775 there are no options to look for. Faster, cleaner for the common
3770 case.
3776 case.
3771
3777
3772 * Documentation: many updates to the manual: describing Windows
3778 * Documentation: many updates to the manual: describing Windows
3773 support better, Gnuplot updates, credits, misc small stuff. Also
3779 support better, Gnuplot updates, credits, misc small stuff. Also
3774 updated the new_design doc a bit.
3780 updated the new_design doc a bit.
3775
3781
3776 2004-05-06 *** Released version 0.6.0.rc1
3782 2004-05-06 *** Released version 0.6.0.rc1
3777
3783
3778 2004-05-06 Fernando Perez <fperez@colorado.edu>
3784 2004-05-06 Fernando Perez <fperez@colorado.edu>
3779
3785
3780 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3786 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3781 operations to use the vastly more efficient list/''.join() method.
3787 operations to use the vastly more efficient list/''.join() method.
3782 (FormattedTB.text): Fix
3788 (FormattedTB.text): Fix
3783 http://www.scipy.net/roundup/ipython/issue12 - exception source
3789 http://www.scipy.net/roundup/ipython/issue12 - exception source
3784 extract not updated after reload. Thanks to Mike Salib
3790 extract not updated after reload. Thanks to Mike Salib
3785 <msalib-AT-mit.edu> for pinning the source of the problem.
3791 <msalib-AT-mit.edu> for pinning the source of the problem.
3786 Fortunately, the solution works inside ipython and doesn't require
3792 Fortunately, the solution works inside ipython and doesn't require
3787 any changes to python proper.
3793 any changes to python proper.
3788
3794
3789 * IPython/Magic.py (Magic.parse_options): Improved to process the
3795 * IPython/Magic.py (Magic.parse_options): Improved to process the
3790 argument list as a true shell would (by actually using the
3796 argument list as a true shell would (by actually using the
3791 underlying system shell). This way, all @magics automatically get
3797 underlying system shell). This way, all @magics automatically get
3792 shell expansion for variables. Thanks to a comment by Alex
3798 shell expansion for variables. Thanks to a comment by Alex
3793 Schmolck.
3799 Schmolck.
3794
3800
3795 2004-04-04 Fernando Perez <fperez@colorado.edu>
3801 2004-04-04 Fernando Perez <fperez@colorado.edu>
3796
3802
3797 * IPython/iplib.py (InteractiveShell.interact): Added a special
3803 * IPython/iplib.py (InteractiveShell.interact): Added a special
3798 trap for a debugger quit exception, which is basically impossible
3804 trap for a debugger quit exception, which is basically impossible
3799 to handle by normal mechanisms, given what pdb does to the stack.
3805 to handle by normal mechanisms, given what pdb does to the stack.
3800 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3806 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3801
3807
3802 2004-04-03 Fernando Perez <fperez@colorado.edu>
3808 2004-04-03 Fernando Perez <fperez@colorado.edu>
3803
3809
3804 * IPython/genutils.py (Term): Standardized the names of the Term
3810 * IPython/genutils.py (Term): Standardized the names of the Term
3805 class streams to cin/cout/cerr, following C++ naming conventions
3811 class streams to cin/cout/cerr, following C++ naming conventions
3806 (I can't use in/out/err because 'in' is not a valid attribute
3812 (I can't use in/out/err because 'in' is not a valid attribute
3807 name).
3813 name).
3808
3814
3809 * IPython/iplib.py (InteractiveShell.interact): don't increment
3815 * IPython/iplib.py (InteractiveShell.interact): don't increment
3810 the prompt if there's no user input. By Daniel 'Dang' Griffith
3816 the prompt if there's no user input. By Daniel 'Dang' Griffith
3811 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3817 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3812 Francois Pinard.
3818 Francois Pinard.
3813
3819
3814 2004-04-02 Fernando Perez <fperez@colorado.edu>
3820 2004-04-02 Fernando Perez <fperez@colorado.edu>
3815
3821
3816 * IPython/genutils.py (Stream.__init__): Modified to survive at
3822 * IPython/genutils.py (Stream.__init__): Modified to survive at
3817 least importing in contexts where stdin/out/err aren't true file
3823 least importing in contexts where stdin/out/err aren't true file
3818 objects, such as PyCrust (they lack fileno() and mode). However,
3824 objects, such as PyCrust (they lack fileno() and mode). However,
3819 the recovery facilities which rely on these things existing will
3825 the recovery facilities which rely on these things existing will
3820 not work.
3826 not work.
3821
3827
3822 2004-04-01 Fernando Perez <fperez@colorado.edu>
3828 2004-04-01 Fernando Perez <fperez@colorado.edu>
3823
3829
3824 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3830 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3825 use the new getoutputerror() function, so it properly
3831 use the new getoutputerror() function, so it properly
3826 distinguishes stdout/err.
3832 distinguishes stdout/err.
3827
3833
3828 * IPython/genutils.py (getoutputerror): added a function to
3834 * IPython/genutils.py (getoutputerror): added a function to
3829 capture separately the standard output and error of a command.
3835 capture separately the standard output and error of a command.
3830 After a comment from dang on the mailing lists. This code is
3836 After a comment from dang on the mailing lists. This code is
3831 basically a modified version of commands.getstatusoutput(), from
3837 basically a modified version of commands.getstatusoutput(), from
3832 the standard library.
3838 the standard library.
3833
3839
3834 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3840 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3835 '!!' as a special syntax (shorthand) to access @sx.
3841 '!!' as a special syntax (shorthand) to access @sx.
3836
3842
3837 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3843 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3838 command and return its output as a list split on '\n'.
3844 command and return its output as a list split on '\n'.
3839
3845
3840 2004-03-31 Fernando Perez <fperez@colorado.edu>
3846 2004-03-31 Fernando Perez <fperez@colorado.edu>
3841
3847
3842 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3848 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3843 method to dictionaries used as FakeModule instances if they lack
3849 method to dictionaries used as FakeModule instances if they lack
3844 it. At least pydoc in python2.3 breaks for runtime-defined
3850 it. At least pydoc in python2.3 breaks for runtime-defined
3845 functions without this hack. At some point I need to _really_
3851 functions without this hack. At some point I need to _really_
3846 understand what FakeModule is doing, because it's a gross hack.
3852 understand what FakeModule is doing, because it's a gross hack.
3847 But it solves Arnd's problem for now...
3853 But it solves Arnd's problem for now...
3848
3854
3849 2004-02-27 Fernando Perez <fperez@colorado.edu>
3855 2004-02-27 Fernando Perez <fperez@colorado.edu>
3850
3856
3851 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3857 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3852 mode would behave erratically. Also increased the number of
3858 mode would behave erratically. Also increased the number of
3853 possible logs in rotate mod to 999. Thanks to Rod Holland
3859 possible logs in rotate mod to 999. Thanks to Rod Holland
3854 <rhh@StructureLABS.com> for the report and fixes.
3860 <rhh@StructureLABS.com> for the report and fixes.
3855
3861
3856 2004-02-26 Fernando Perez <fperez@colorado.edu>
3862 2004-02-26 Fernando Perez <fperez@colorado.edu>
3857
3863
3858 * IPython/genutils.py (page): Check that the curses module really
3864 * IPython/genutils.py (page): Check that the curses module really
3859 has the initscr attribute before trying to use it. For some
3865 has the initscr attribute before trying to use it. For some
3860 reason, the Solaris curses module is missing this. I think this
3866 reason, the Solaris curses module is missing this. I think this
3861 should be considered a Solaris python bug, but I'm not sure.
3867 should be considered a Solaris python bug, but I'm not sure.
3862
3868
3863 2004-01-17 Fernando Perez <fperez@colorado.edu>
3869 2004-01-17 Fernando Perez <fperez@colorado.edu>
3864
3870
3865 * IPython/genutils.py (Stream.__init__): Changes to try to make
3871 * IPython/genutils.py (Stream.__init__): Changes to try to make
3866 ipython robust against stdin/out/err being closed by the user.
3872 ipython robust against stdin/out/err being closed by the user.
3867 This is 'user error' (and blocks a normal python session, at least
3873 This is 'user error' (and blocks a normal python session, at least
3868 the stdout case). However, Ipython should be able to survive such
3874 the stdout case). However, Ipython should be able to survive such
3869 instances of abuse as gracefully as possible. To simplify the
3875 instances of abuse as gracefully as possible. To simplify the
3870 coding and maintain compatibility with Gary Bishop's Term
3876 coding and maintain compatibility with Gary Bishop's Term
3871 contributions, I've made use of classmethods for this. I think
3877 contributions, I've made use of classmethods for this. I think
3872 this introduces a dependency on python 2.2.
3878 this introduces a dependency on python 2.2.
3873
3879
3874 2004-01-13 Fernando Perez <fperez@colorado.edu>
3880 2004-01-13 Fernando Perez <fperez@colorado.edu>
3875
3881
3876 * IPython/numutils.py (exp_safe): simplified the code a bit and
3882 * IPython/numutils.py (exp_safe): simplified the code a bit and
3877 removed the need for importing the kinds module altogether.
3883 removed the need for importing the kinds module altogether.
3878
3884
3879 2004-01-06 Fernando Perez <fperez@colorado.edu>
3885 2004-01-06 Fernando Perez <fperez@colorado.edu>
3880
3886
3881 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3887 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3882 a magic function instead, after some community feedback. No
3888 a magic function instead, after some community feedback. No
3883 special syntax will exist for it, but its name is deliberately
3889 special syntax will exist for it, but its name is deliberately
3884 very short.
3890 very short.
3885
3891
3886 2003-12-20 Fernando Perez <fperez@colorado.edu>
3892 2003-12-20 Fernando Perez <fperez@colorado.edu>
3887
3893
3888 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3894 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3889 new functionality, to automagically assign the result of a shell
3895 new functionality, to automagically assign the result of a shell
3890 command to a variable. I'll solicit some community feedback on
3896 command to a variable. I'll solicit some community feedback on
3891 this before making it permanent.
3897 this before making it permanent.
3892
3898
3893 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3899 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3894 requested about callables for which inspect couldn't obtain a
3900 requested about callables for which inspect couldn't obtain a
3895 proper argspec. Thanks to a crash report sent by Etienne
3901 proper argspec. Thanks to a crash report sent by Etienne
3896 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3902 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3897
3903
3898 2003-12-09 Fernando Perez <fperez@colorado.edu>
3904 2003-12-09 Fernando Perez <fperez@colorado.edu>
3899
3905
3900 * IPython/genutils.py (page): patch for the pager to work across
3906 * IPython/genutils.py (page): patch for the pager to work across
3901 various versions of Windows. By Gary Bishop.
3907 various versions of Windows. By Gary Bishop.
3902
3908
3903 2003-12-04 Fernando Perez <fperez@colorado.edu>
3909 2003-12-04 Fernando Perez <fperez@colorado.edu>
3904
3910
3905 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3911 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3906 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3912 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3907 While I tested this and it looks ok, there may still be corner
3913 While I tested this and it looks ok, there may still be corner
3908 cases I've missed.
3914 cases I've missed.
3909
3915
3910 2003-12-01 Fernando Perez <fperez@colorado.edu>
3916 2003-12-01 Fernando Perez <fperez@colorado.edu>
3911
3917
3912 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3918 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3913 where a line like 'p,q=1,2' would fail because the automagic
3919 where a line like 'p,q=1,2' would fail because the automagic
3914 system would be triggered for @p.
3920 system would be triggered for @p.
3915
3921
3916 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3922 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3917 cleanups, code unmodified.
3923 cleanups, code unmodified.
3918
3924
3919 * IPython/genutils.py (Term): added a class for IPython to handle
3925 * IPython/genutils.py (Term): added a class for IPython to handle
3920 output. In most cases it will just be a proxy for stdout/err, but
3926 output. In most cases it will just be a proxy for stdout/err, but
3921 having this allows modifications to be made for some platforms,
3927 having this allows modifications to be made for some platforms,
3922 such as handling color escapes under Windows. All of this code
3928 such as handling color escapes under Windows. All of this code
3923 was contributed by Gary Bishop, with minor modifications by me.
3929 was contributed by Gary Bishop, with minor modifications by me.
3924 The actual changes affect many files.
3930 The actual changes affect many files.
3925
3931
3926 2003-11-30 Fernando Perez <fperez@colorado.edu>
3932 2003-11-30 Fernando Perez <fperez@colorado.edu>
3927
3933
3928 * IPython/iplib.py (file_matches): new completion code, courtesy
3934 * IPython/iplib.py (file_matches): new completion code, courtesy
3929 of Jeff Collins. This enables filename completion again under
3935 of Jeff Collins. This enables filename completion again under
3930 python 2.3, which disabled it at the C level.
3936 python 2.3, which disabled it at the C level.
3931
3937
3932 2003-11-11 Fernando Perez <fperez@colorado.edu>
3938 2003-11-11 Fernando Perez <fperez@colorado.edu>
3933
3939
3934 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3940 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3935 for Numeric.array(map(...)), but often convenient.
3941 for Numeric.array(map(...)), but often convenient.
3936
3942
3937 2003-11-05 Fernando Perez <fperez@colorado.edu>
3943 2003-11-05 Fernando Perez <fperez@colorado.edu>
3938
3944
3939 * IPython/numutils.py (frange): Changed a call from int() to
3945 * IPython/numutils.py (frange): Changed a call from int() to
3940 int(round()) to prevent a problem reported with arange() in the
3946 int(round()) to prevent a problem reported with arange() in the
3941 numpy list.
3947 numpy list.
3942
3948
3943 2003-10-06 Fernando Perez <fperez@colorado.edu>
3949 2003-10-06 Fernando Perez <fperez@colorado.edu>
3944
3950
3945 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3951 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3946 prevent crashes if sys lacks an argv attribute (it happens with
3952 prevent crashes if sys lacks an argv attribute (it happens with
3947 embedded interpreters which build a bare-bones sys module).
3953 embedded interpreters which build a bare-bones sys module).
3948 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3954 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3949
3955
3950 2003-09-24 Fernando Perez <fperez@colorado.edu>
3956 2003-09-24 Fernando Perez <fperez@colorado.edu>
3951
3957
3952 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3958 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3953 to protect against poorly written user objects where __getattr__
3959 to protect against poorly written user objects where __getattr__
3954 raises exceptions other than AttributeError. Thanks to a bug
3960 raises exceptions other than AttributeError. Thanks to a bug
3955 report by Oliver Sander <osander-AT-gmx.de>.
3961 report by Oliver Sander <osander-AT-gmx.de>.
3956
3962
3957 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3963 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3958 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3964 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3959
3965
3960 2003-09-09 Fernando Perez <fperez@colorado.edu>
3966 2003-09-09 Fernando Perez <fperez@colorado.edu>
3961
3967
3962 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3968 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3963 unpacking a list whith a callable as first element would
3969 unpacking a list whith a callable as first element would
3964 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3970 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3965 Collins.
3971 Collins.
3966
3972
3967 2003-08-25 *** Released version 0.5.0
3973 2003-08-25 *** Released version 0.5.0
3968
3974
3969 2003-08-22 Fernando Perez <fperez@colorado.edu>
3975 2003-08-22 Fernando Perez <fperez@colorado.edu>
3970
3976
3971 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3977 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3972 improperly defined user exceptions. Thanks to feedback from Mark
3978 improperly defined user exceptions. Thanks to feedback from Mark
3973 Russell <mrussell-AT-verio.net>.
3979 Russell <mrussell-AT-verio.net>.
3974
3980
3975 2003-08-20 Fernando Perez <fperez@colorado.edu>
3981 2003-08-20 Fernando Perez <fperez@colorado.edu>
3976
3982
3977 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3983 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3978 printing so that it would print multi-line string forms starting
3984 printing so that it would print multi-line string forms starting
3979 with a new line. This way the formatting is better respected for
3985 with a new line. This way the formatting is better respected for
3980 objects which work hard to make nice string forms.
3986 objects which work hard to make nice string forms.
3981
3987
3982 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3988 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3983 autocall would overtake data access for objects with both
3989 autocall would overtake data access for objects with both
3984 __getitem__ and __call__.
3990 __getitem__ and __call__.
3985
3991
3986 2003-08-19 *** Released version 0.5.0-rc1
3992 2003-08-19 *** Released version 0.5.0-rc1
3987
3993
3988 2003-08-19 Fernando Perez <fperez@colorado.edu>
3994 2003-08-19 Fernando Perez <fperez@colorado.edu>
3989
3995
3990 * IPython/deep_reload.py (load_tail): single tiny change here
3996 * IPython/deep_reload.py (load_tail): single tiny change here
3991 seems to fix the long-standing bug of dreload() failing to work
3997 seems to fix the long-standing bug of dreload() failing to work
3992 for dotted names. But this module is pretty tricky, so I may have
3998 for dotted names. But this module is pretty tricky, so I may have
3993 missed some subtlety. Needs more testing!.
3999 missed some subtlety. Needs more testing!.
3994
4000
3995 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4001 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3996 exceptions which have badly implemented __str__ methods.
4002 exceptions which have badly implemented __str__ methods.
3997 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4003 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3998 which I've been getting reports about from Python 2.3 users. I
4004 which I've been getting reports about from Python 2.3 users. I
3999 wish I had a simple test case to reproduce the problem, so I could
4005 wish I had a simple test case to reproduce the problem, so I could
4000 either write a cleaner workaround or file a bug report if
4006 either write a cleaner workaround or file a bug report if
4001 necessary.
4007 necessary.
4002
4008
4003 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4009 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4004 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4010 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4005 a bug report by Tjabo Kloppenburg.
4011 a bug report by Tjabo Kloppenburg.
4006
4012
4007 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4013 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4008 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4014 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4009 seems rather unstable. Thanks to a bug report by Tjabo
4015 seems rather unstable. Thanks to a bug report by Tjabo
4010 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4016 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4011
4017
4012 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4018 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4013 this out soon because of the critical fixes in the inner loop for
4019 this out soon because of the critical fixes in the inner loop for
4014 generators.
4020 generators.
4015
4021
4016 * IPython/Magic.py (Magic.getargspec): removed. This (and
4022 * IPython/Magic.py (Magic.getargspec): removed. This (and
4017 _get_def) have been obsoleted by OInspect for a long time, I
4023 _get_def) have been obsoleted by OInspect for a long time, I
4018 hadn't noticed that they were dead code.
4024 hadn't noticed that they were dead code.
4019 (Magic._ofind): restored _ofind functionality for a few literals
4025 (Magic._ofind): restored _ofind functionality for a few literals
4020 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4026 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4021 for things like "hello".capitalize?, since that would require a
4027 for things like "hello".capitalize?, since that would require a
4022 potentially dangerous eval() again.
4028 potentially dangerous eval() again.
4023
4029
4024 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4030 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4025 logic a bit more to clean up the escapes handling and minimize the
4031 logic a bit more to clean up the escapes handling and minimize the
4026 use of _ofind to only necessary cases. The interactive 'feel' of
4032 use of _ofind to only necessary cases. The interactive 'feel' of
4027 IPython should have improved quite a bit with the changes in
4033 IPython should have improved quite a bit with the changes in
4028 _prefilter and _ofind (besides being far safer than before).
4034 _prefilter and _ofind (besides being far safer than before).
4029
4035
4030 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4036 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4031 obscure, never reported). Edit would fail to find the object to
4037 obscure, never reported). Edit would fail to find the object to
4032 edit under some circumstances.
4038 edit under some circumstances.
4033 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4039 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4034 which were causing double-calling of generators. Those eval calls
4040 which were causing double-calling of generators. Those eval calls
4035 were _very_ dangerous, since code with side effects could be
4041 were _very_ dangerous, since code with side effects could be
4036 triggered. As they say, 'eval is evil'... These were the
4042 triggered. As they say, 'eval is evil'... These were the
4037 nastiest evals in IPython. Besides, _ofind is now far simpler,
4043 nastiest evals in IPython. Besides, _ofind is now far simpler,
4038 and it should also be quite a bit faster. Its use of inspect is
4044 and it should also be quite a bit faster. Its use of inspect is
4039 also safer, so perhaps some of the inspect-related crashes I've
4045 also safer, so perhaps some of the inspect-related crashes I've
4040 seen lately with Python 2.3 might be taken care of. That will
4046 seen lately with Python 2.3 might be taken care of. That will
4041 need more testing.
4047 need more testing.
4042
4048
4043 2003-08-17 Fernando Perez <fperez@colorado.edu>
4049 2003-08-17 Fernando Perez <fperez@colorado.edu>
4044
4050
4045 * IPython/iplib.py (InteractiveShell._prefilter): significant
4051 * IPython/iplib.py (InteractiveShell._prefilter): significant
4046 simplifications to the logic for handling user escapes. Faster
4052 simplifications to the logic for handling user escapes. Faster
4047 and simpler code.
4053 and simpler code.
4048
4054
4049 2003-08-14 Fernando Perez <fperez@colorado.edu>
4055 2003-08-14 Fernando Perez <fperez@colorado.edu>
4050
4056
4051 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4057 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4052 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4058 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4053 but it should be quite a bit faster. And the recursive version
4059 but it should be quite a bit faster. And the recursive version
4054 generated O(log N) intermediate storage for all rank>1 arrays,
4060 generated O(log N) intermediate storage for all rank>1 arrays,
4055 even if they were contiguous.
4061 even if they were contiguous.
4056 (l1norm): Added this function.
4062 (l1norm): Added this function.
4057 (norm): Added this function for arbitrary norms (including
4063 (norm): Added this function for arbitrary norms (including
4058 l-infinity). l1 and l2 are still special cases for convenience
4064 l-infinity). l1 and l2 are still special cases for convenience
4059 and speed.
4065 and speed.
4060
4066
4061 2003-08-03 Fernando Perez <fperez@colorado.edu>
4067 2003-08-03 Fernando Perez <fperez@colorado.edu>
4062
4068
4063 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4069 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4064 exceptions, which now raise PendingDeprecationWarnings in Python
4070 exceptions, which now raise PendingDeprecationWarnings in Python
4065 2.3. There were some in Magic and some in Gnuplot2.
4071 2.3. There were some in Magic and some in Gnuplot2.
4066
4072
4067 2003-06-30 Fernando Perez <fperez@colorado.edu>
4073 2003-06-30 Fernando Perez <fperez@colorado.edu>
4068
4074
4069 * IPython/genutils.py (page): modified to call curses only for
4075 * IPython/genutils.py (page): modified to call curses only for
4070 terminals where TERM=='xterm'. After problems under many other
4076 terminals where TERM=='xterm'. After problems under many other
4071 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4077 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4072
4078
4073 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4079 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4074 would be triggered when readline was absent. This was just an old
4080 would be triggered when readline was absent. This was just an old
4075 debugging statement I'd forgotten to take out.
4081 debugging statement I'd forgotten to take out.
4076
4082
4077 2003-06-20 Fernando Perez <fperez@colorado.edu>
4083 2003-06-20 Fernando Perez <fperez@colorado.edu>
4078
4084
4079 * IPython/genutils.py (clock): modified to return only user time
4085 * IPython/genutils.py (clock): modified to return only user time
4080 (not counting system time), after a discussion on scipy. While
4086 (not counting system time), after a discussion on scipy. While
4081 system time may be a useful quantity occasionally, it may much
4087 system time may be a useful quantity occasionally, it may much
4082 more easily be skewed by occasional swapping or other similar
4088 more easily be skewed by occasional swapping or other similar
4083 activity.
4089 activity.
4084
4090
4085 2003-06-05 Fernando Perez <fperez@colorado.edu>
4091 2003-06-05 Fernando Perez <fperez@colorado.edu>
4086
4092
4087 * IPython/numutils.py (identity): new function, for building
4093 * IPython/numutils.py (identity): new function, for building
4088 arbitrary rank Kronecker deltas (mostly backwards compatible with
4094 arbitrary rank Kronecker deltas (mostly backwards compatible with
4089 Numeric.identity)
4095 Numeric.identity)
4090
4096
4091 2003-06-03 Fernando Perez <fperez@colorado.edu>
4097 2003-06-03 Fernando Perez <fperez@colorado.edu>
4092
4098
4093 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4099 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4094 arguments passed to magics with spaces, to allow trailing '\' to
4100 arguments passed to magics with spaces, to allow trailing '\' to
4095 work normally (mainly for Windows users).
4101 work normally (mainly for Windows users).
4096
4102
4097 2003-05-29 Fernando Perez <fperez@colorado.edu>
4103 2003-05-29 Fernando Perez <fperez@colorado.edu>
4098
4104
4099 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4105 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4100 instead of pydoc.help. This fixes a bizarre behavior where
4106 instead of pydoc.help. This fixes a bizarre behavior where
4101 printing '%s' % locals() would trigger the help system. Now
4107 printing '%s' % locals() would trigger the help system. Now
4102 ipython behaves like normal python does.
4108 ipython behaves like normal python does.
4103
4109
4104 Note that if one does 'from pydoc import help', the bizarre
4110 Note that if one does 'from pydoc import help', the bizarre
4105 behavior returns, but this will also happen in normal python, so
4111 behavior returns, but this will also happen in normal python, so
4106 it's not an ipython bug anymore (it has to do with how pydoc.help
4112 it's not an ipython bug anymore (it has to do with how pydoc.help
4107 is implemented).
4113 is implemented).
4108
4114
4109 2003-05-22 Fernando Perez <fperez@colorado.edu>
4115 2003-05-22 Fernando Perez <fperez@colorado.edu>
4110
4116
4111 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4117 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4112 return [] instead of None when nothing matches, also match to end
4118 return [] instead of None when nothing matches, also match to end
4113 of line. Patch by Gary Bishop.
4119 of line. Patch by Gary Bishop.
4114
4120
4115 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4121 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4116 protection as before, for files passed on the command line. This
4122 protection as before, for files passed on the command line. This
4117 prevents the CrashHandler from kicking in if user files call into
4123 prevents the CrashHandler from kicking in if user files call into
4118 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4124 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4119 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4125 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4120
4126
4121 2003-05-20 *** Released version 0.4.0
4127 2003-05-20 *** Released version 0.4.0
4122
4128
4123 2003-05-20 Fernando Perez <fperez@colorado.edu>
4129 2003-05-20 Fernando Perez <fperez@colorado.edu>
4124
4130
4125 * setup.py: added support for manpages. It's a bit hackish b/c of
4131 * setup.py: added support for manpages. It's a bit hackish b/c of
4126 a bug in the way the bdist_rpm distutils target handles gzipped
4132 a bug in the way the bdist_rpm distutils target handles gzipped
4127 manpages, but it works. After a patch by Jack.
4133 manpages, but it works. After a patch by Jack.
4128
4134
4129 2003-05-19 Fernando Perez <fperez@colorado.edu>
4135 2003-05-19 Fernando Perez <fperez@colorado.edu>
4130
4136
4131 * IPython/numutils.py: added a mockup of the kinds module, since
4137 * IPython/numutils.py: added a mockup of the kinds module, since
4132 it was recently removed from Numeric. This way, numutils will
4138 it was recently removed from Numeric. This way, numutils will
4133 work for all users even if they are missing kinds.
4139 work for all users even if they are missing kinds.
4134
4140
4135 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4141 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4136 failure, which can occur with SWIG-wrapped extensions. After a
4142 failure, which can occur with SWIG-wrapped extensions. After a
4137 crash report from Prabhu.
4143 crash report from Prabhu.
4138
4144
4139 2003-05-16 Fernando Perez <fperez@colorado.edu>
4145 2003-05-16 Fernando Perez <fperez@colorado.edu>
4140
4146
4141 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4147 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4142 protect ipython from user code which may call directly
4148 protect ipython from user code which may call directly
4143 sys.excepthook (this looks like an ipython crash to the user, even
4149 sys.excepthook (this looks like an ipython crash to the user, even
4144 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4150 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4145 This is especially important to help users of WxWindows, but may
4151 This is especially important to help users of WxWindows, but may
4146 also be useful in other cases.
4152 also be useful in other cases.
4147
4153
4148 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4154 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4149 an optional tb_offset to be specified, and to preserve exception
4155 an optional tb_offset to be specified, and to preserve exception
4150 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4156 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4151
4157
4152 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4158 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4153
4159
4154 2003-05-15 Fernando Perez <fperez@colorado.edu>
4160 2003-05-15 Fernando Perez <fperez@colorado.edu>
4155
4161
4156 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4162 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4157 installing for a new user under Windows.
4163 installing for a new user under Windows.
4158
4164
4159 2003-05-12 Fernando Perez <fperez@colorado.edu>
4165 2003-05-12 Fernando Perez <fperez@colorado.edu>
4160
4166
4161 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4167 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4162 handler for Emacs comint-based lines. Currently it doesn't do
4168 handler for Emacs comint-based lines. Currently it doesn't do
4163 much (but importantly, it doesn't update the history cache). In
4169 much (but importantly, it doesn't update the history cache). In
4164 the future it may be expanded if Alex needs more functionality
4170 the future it may be expanded if Alex needs more functionality
4165 there.
4171 there.
4166
4172
4167 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4173 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4168 info to crash reports.
4174 info to crash reports.
4169
4175
4170 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4176 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4171 just like Python's -c. Also fixed crash with invalid -color
4177 just like Python's -c. Also fixed crash with invalid -color
4172 option value at startup. Thanks to Will French
4178 option value at startup. Thanks to Will French
4173 <wfrench-AT-bestweb.net> for the bug report.
4179 <wfrench-AT-bestweb.net> for the bug report.
4174
4180
4175 2003-05-09 Fernando Perez <fperez@colorado.edu>
4181 2003-05-09 Fernando Perez <fperez@colorado.edu>
4176
4182
4177 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4183 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4178 to EvalDict (it's a mapping, after all) and simplified its code
4184 to EvalDict (it's a mapping, after all) and simplified its code
4179 quite a bit, after a nice discussion on c.l.py where Gustavo
4185 quite a bit, after a nice discussion on c.l.py where Gustavo
4180 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4186 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4181
4187
4182 2003-04-30 Fernando Perez <fperez@colorado.edu>
4188 2003-04-30 Fernando Perez <fperez@colorado.edu>
4183
4189
4184 * IPython/genutils.py (timings_out): modified it to reduce its
4190 * IPython/genutils.py (timings_out): modified it to reduce its
4185 overhead in the common reps==1 case.
4191 overhead in the common reps==1 case.
4186
4192
4187 2003-04-29 Fernando Perez <fperez@colorado.edu>
4193 2003-04-29 Fernando Perez <fperez@colorado.edu>
4188
4194
4189 * IPython/genutils.py (timings_out): Modified to use the resource
4195 * IPython/genutils.py (timings_out): Modified to use the resource
4190 module, which avoids the wraparound problems of time.clock().
4196 module, which avoids the wraparound problems of time.clock().
4191
4197
4192 2003-04-17 *** Released version 0.2.15pre4
4198 2003-04-17 *** Released version 0.2.15pre4
4193
4199
4194 2003-04-17 Fernando Perez <fperez@colorado.edu>
4200 2003-04-17 Fernando Perez <fperez@colorado.edu>
4195
4201
4196 * setup.py (scriptfiles): Split windows-specific stuff over to a
4202 * setup.py (scriptfiles): Split windows-specific stuff over to a
4197 separate file, in an attempt to have a Windows GUI installer.
4203 separate file, in an attempt to have a Windows GUI installer.
4198 That didn't work, but part of the groundwork is done.
4204 That didn't work, but part of the groundwork is done.
4199
4205
4200 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4206 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4201 indent/unindent with 4 spaces. Particularly useful in combination
4207 indent/unindent with 4 spaces. Particularly useful in combination
4202 with the new auto-indent option.
4208 with the new auto-indent option.
4203
4209
4204 2003-04-16 Fernando Perez <fperez@colorado.edu>
4210 2003-04-16 Fernando Perez <fperez@colorado.edu>
4205
4211
4206 * IPython/Magic.py: various replacements of self.rc for
4212 * IPython/Magic.py: various replacements of self.rc for
4207 self.shell.rc. A lot more remains to be done to fully disentangle
4213 self.shell.rc. A lot more remains to be done to fully disentangle
4208 this class from the main Shell class.
4214 this class from the main Shell class.
4209
4215
4210 * IPython/GnuplotRuntime.py: added checks for mouse support so
4216 * IPython/GnuplotRuntime.py: added checks for mouse support so
4211 that we don't try to enable it if the current gnuplot doesn't
4217 that we don't try to enable it if the current gnuplot doesn't
4212 really support it. Also added checks so that we don't try to
4218 really support it. Also added checks so that we don't try to
4213 enable persist under Windows (where Gnuplot doesn't recognize the
4219 enable persist under Windows (where Gnuplot doesn't recognize the
4214 option).
4220 option).
4215
4221
4216 * IPython/iplib.py (InteractiveShell.interact): Added optional
4222 * IPython/iplib.py (InteractiveShell.interact): Added optional
4217 auto-indenting code, after a patch by King C. Shu
4223 auto-indenting code, after a patch by King C. Shu
4218 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4224 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4219 get along well with pasting indented code. If I ever figure out
4225 get along well with pasting indented code. If I ever figure out
4220 how to make that part go well, it will become on by default.
4226 how to make that part go well, it will become on by default.
4221
4227
4222 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4228 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4223 crash ipython if there was an unmatched '%' in the user's prompt
4229 crash ipython if there was an unmatched '%' in the user's prompt
4224 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4230 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4225
4231
4226 * IPython/iplib.py (InteractiveShell.interact): removed the
4232 * IPython/iplib.py (InteractiveShell.interact): removed the
4227 ability to ask the user whether he wants to crash or not at the
4233 ability to ask the user whether he wants to crash or not at the
4228 'last line' exception handler. Calling functions at that point
4234 'last line' exception handler. Calling functions at that point
4229 changes the stack, and the error reports would have incorrect
4235 changes the stack, and the error reports would have incorrect
4230 tracebacks.
4236 tracebacks.
4231
4237
4232 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4238 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4233 pass through a peger a pretty-printed form of any object. After a
4239 pass through a peger a pretty-printed form of any object. After a
4234 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4240 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4235
4241
4236 2003-04-14 Fernando Perez <fperez@colorado.edu>
4242 2003-04-14 Fernando Perez <fperez@colorado.edu>
4237
4243
4238 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4244 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4239 all files in ~ would be modified at first install (instead of
4245 all files in ~ would be modified at first install (instead of
4240 ~/.ipython). This could be potentially disastrous, as the
4246 ~/.ipython). This could be potentially disastrous, as the
4241 modification (make line-endings native) could damage binary files.
4247 modification (make line-endings native) could damage binary files.
4242
4248
4243 2003-04-10 Fernando Perez <fperez@colorado.edu>
4249 2003-04-10 Fernando Perez <fperez@colorado.edu>
4244
4250
4245 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4251 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4246 handle only lines which are invalid python. This now means that
4252 handle only lines which are invalid python. This now means that
4247 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4253 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4248 for the bug report.
4254 for the bug report.
4249
4255
4250 2003-04-01 Fernando Perez <fperez@colorado.edu>
4256 2003-04-01 Fernando Perez <fperez@colorado.edu>
4251
4257
4252 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4258 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4253 where failing to set sys.last_traceback would crash pdb.pm().
4259 where failing to set sys.last_traceback would crash pdb.pm().
4254 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4260 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4255 report.
4261 report.
4256
4262
4257 2003-03-25 Fernando Perez <fperez@colorado.edu>
4263 2003-03-25 Fernando Perez <fperez@colorado.edu>
4258
4264
4259 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4265 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4260 before printing it (it had a lot of spurious blank lines at the
4266 before printing it (it had a lot of spurious blank lines at the
4261 end).
4267 end).
4262
4268
4263 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4269 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4264 output would be sent 21 times! Obviously people don't use this
4270 output would be sent 21 times! Obviously people don't use this
4265 too often, or I would have heard about it.
4271 too often, or I would have heard about it.
4266
4272
4267 2003-03-24 Fernando Perez <fperez@colorado.edu>
4273 2003-03-24 Fernando Perez <fperez@colorado.edu>
4268
4274
4269 * setup.py (scriptfiles): renamed the data_files parameter from
4275 * setup.py (scriptfiles): renamed the data_files parameter from
4270 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4276 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4271 for the patch.
4277 for the patch.
4272
4278
4273 2003-03-20 Fernando Perez <fperez@colorado.edu>
4279 2003-03-20 Fernando Perez <fperez@colorado.edu>
4274
4280
4275 * IPython/genutils.py (error): added error() and fatal()
4281 * IPython/genutils.py (error): added error() and fatal()
4276 functions.
4282 functions.
4277
4283
4278 2003-03-18 *** Released version 0.2.15pre3
4284 2003-03-18 *** Released version 0.2.15pre3
4279
4285
4280 2003-03-18 Fernando Perez <fperez@colorado.edu>
4286 2003-03-18 Fernando Perez <fperez@colorado.edu>
4281
4287
4282 * setupext/install_data_ext.py
4288 * setupext/install_data_ext.py
4283 (install_data_ext.initialize_options): Class contributed by Jack
4289 (install_data_ext.initialize_options): Class contributed by Jack
4284 Moffit for fixing the old distutils hack. He is sending this to
4290 Moffit for fixing the old distutils hack. He is sending this to
4285 the distutils folks so in the future we may not need it as a
4291 the distutils folks so in the future we may not need it as a
4286 private fix.
4292 private fix.
4287
4293
4288 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4294 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4289 changes for Debian packaging. See his patch for full details.
4295 changes for Debian packaging. See his patch for full details.
4290 The old distutils hack of making the ipythonrc* files carry a
4296 The old distutils hack of making the ipythonrc* files carry a
4291 bogus .py extension is gone, at last. Examples were moved to a
4297 bogus .py extension is gone, at last. Examples were moved to a
4292 separate subdir under doc/, and the separate executable scripts
4298 separate subdir under doc/, and the separate executable scripts
4293 now live in their own directory. Overall a great cleanup. The
4299 now live in their own directory. Overall a great cleanup. The
4294 manual was updated to use the new files, and setup.py has been
4300 manual was updated to use the new files, and setup.py has been
4295 fixed for this setup.
4301 fixed for this setup.
4296
4302
4297 * IPython/PyColorize.py (Parser.usage): made non-executable and
4303 * IPython/PyColorize.py (Parser.usage): made non-executable and
4298 created a pycolor wrapper around it to be included as a script.
4304 created a pycolor wrapper around it to be included as a script.
4299
4305
4300 2003-03-12 *** Released version 0.2.15pre2
4306 2003-03-12 *** Released version 0.2.15pre2
4301
4307
4302 2003-03-12 Fernando Perez <fperez@colorado.edu>
4308 2003-03-12 Fernando Perez <fperez@colorado.edu>
4303
4309
4304 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4310 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4305 long-standing problem with garbage characters in some terminals.
4311 long-standing problem with garbage characters in some terminals.
4306 The issue was really that the \001 and \002 escapes must _only_ be
4312 The issue was really that the \001 and \002 escapes must _only_ be
4307 passed to input prompts (which call readline), but _never_ to
4313 passed to input prompts (which call readline), but _never_ to
4308 normal text to be printed on screen. I changed ColorANSI to have
4314 normal text to be printed on screen. I changed ColorANSI to have
4309 two classes: TermColors and InputTermColors, each with the
4315 two classes: TermColors and InputTermColors, each with the
4310 appropriate escapes for input prompts or normal text. The code in
4316 appropriate escapes for input prompts or normal text. The code in
4311 Prompts.py got slightly more complicated, but this very old and
4317 Prompts.py got slightly more complicated, but this very old and
4312 annoying bug is finally fixed.
4318 annoying bug is finally fixed.
4313
4319
4314 All the credit for nailing down the real origin of this problem
4320 All the credit for nailing down the real origin of this problem
4315 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4321 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4316 *Many* thanks to him for spending quite a bit of effort on this.
4322 *Many* thanks to him for spending quite a bit of effort on this.
4317
4323
4318 2003-03-05 *** Released version 0.2.15pre1
4324 2003-03-05 *** Released version 0.2.15pre1
4319
4325
4320 2003-03-03 Fernando Perez <fperez@colorado.edu>
4326 2003-03-03 Fernando Perez <fperez@colorado.edu>
4321
4327
4322 * IPython/FakeModule.py: Moved the former _FakeModule to a
4328 * IPython/FakeModule.py: Moved the former _FakeModule to a
4323 separate file, because it's also needed by Magic (to fix a similar
4329 separate file, because it's also needed by Magic (to fix a similar
4324 pickle-related issue in @run).
4330 pickle-related issue in @run).
4325
4331
4326 2003-03-02 Fernando Perez <fperez@colorado.edu>
4332 2003-03-02 Fernando Perez <fperez@colorado.edu>
4327
4333
4328 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4334 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4329 the autocall option at runtime.
4335 the autocall option at runtime.
4330 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4336 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4331 across Magic.py to start separating Magic from InteractiveShell.
4337 across Magic.py to start separating Magic from InteractiveShell.
4332 (Magic._ofind): Fixed to return proper namespace for dotted
4338 (Magic._ofind): Fixed to return proper namespace for dotted
4333 names. Before, a dotted name would always return 'not currently
4339 names. Before, a dotted name would always return 'not currently
4334 defined', because it would find the 'parent'. s.x would be found,
4340 defined', because it would find the 'parent'. s.x would be found,
4335 but since 'x' isn't defined by itself, it would get confused.
4341 but since 'x' isn't defined by itself, it would get confused.
4336 (Magic.magic_run): Fixed pickling problems reported by Ralf
4342 (Magic.magic_run): Fixed pickling problems reported by Ralf
4337 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4343 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4338 that I'd used when Mike Heeter reported similar issues at the
4344 that I'd used when Mike Heeter reported similar issues at the
4339 top-level, but now for @run. It boils down to injecting the
4345 top-level, but now for @run. It boils down to injecting the
4340 namespace where code is being executed with something that looks
4346 namespace where code is being executed with something that looks
4341 enough like a module to fool pickle.dump(). Since a pickle stores
4347 enough like a module to fool pickle.dump(). Since a pickle stores
4342 a named reference to the importing module, we need this for
4348 a named reference to the importing module, we need this for
4343 pickles to save something sensible.
4349 pickles to save something sensible.
4344
4350
4345 * IPython/ipmaker.py (make_IPython): added an autocall option.
4351 * IPython/ipmaker.py (make_IPython): added an autocall option.
4346
4352
4347 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4353 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4348 the auto-eval code. Now autocalling is an option, and the code is
4354 the auto-eval code. Now autocalling is an option, and the code is
4349 also vastly safer. There is no more eval() involved at all.
4355 also vastly safer. There is no more eval() involved at all.
4350
4356
4351 2003-03-01 Fernando Perez <fperez@colorado.edu>
4357 2003-03-01 Fernando Perez <fperez@colorado.edu>
4352
4358
4353 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4359 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4354 dict with named keys instead of a tuple.
4360 dict with named keys instead of a tuple.
4355
4361
4356 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4362 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4357
4363
4358 * setup.py (make_shortcut): Fixed message about directories
4364 * setup.py (make_shortcut): Fixed message about directories
4359 created during Windows installation (the directories were ok, just
4365 created during Windows installation (the directories were ok, just
4360 the printed message was misleading). Thanks to Chris Liechti
4366 the printed message was misleading). Thanks to Chris Liechti
4361 <cliechti-AT-gmx.net> for the heads up.
4367 <cliechti-AT-gmx.net> for the heads up.
4362
4368
4363 2003-02-21 Fernando Perez <fperez@colorado.edu>
4369 2003-02-21 Fernando Perez <fperez@colorado.edu>
4364
4370
4365 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4371 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4366 of ValueError exception when checking for auto-execution. This
4372 of ValueError exception when checking for auto-execution. This
4367 one is raised by things like Numeric arrays arr.flat when the
4373 one is raised by things like Numeric arrays arr.flat when the
4368 array is non-contiguous.
4374 array is non-contiguous.
4369
4375
4370 2003-01-31 Fernando Perez <fperez@colorado.edu>
4376 2003-01-31 Fernando Perez <fperez@colorado.edu>
4371
4377
4372 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4378 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4373 not return any value at all (even though the command would get
4379 not return any value at all (even though the command would get
4374 executed).
4380 executed).
4375 (xsys): Flush stdout right after printing the command to ensure
4381 (xsys): Flush stdout right after printing the command to ensure
4376 proper ordering of commands and command output in the total
4382 proper ordering of commands and command output in the total
4377 output.
4383 output.
4378 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4384 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4379 system/getoutput as defaults. The old ones are kept for
4385 system/getoutput as defaults. The old ones are kept for
4380 compatibility reasons, so no code which uses this library needs
4386 compatibility reasons, so no code which uses this library needs
4381 changing.
4387 changing.
4382
4388
4383 2003-01-27 *** Released version 0.2.14
4389 2003-01-27 *** Released version 0.2.14
4384
4390
4385 2003-01-25 Fernando Perez <fperez@colorado.edu>
4391 2003-01-25 Fernando Perez <fperez@colorado.edu>
4386
4392
4387 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4393 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4388 functions defined in previous edit sessions could not be re-edited
4394 functions defined in previous edit sessions could not be re-edited
4389 (because the temp files were immediately removed). Now temp files
4395 (because the temp files were immediately removed). Now temp files
4390 are removed only at IPython's exit.
4396 are removed only at IPython's exit.
4391 (Magic.magic_run): Improved @run to perform shell-like expansions
4397 (Magic.magic_run): Improved @run to perform shell-like expansions
4392 on its arguments (~users and $VARS). With this, @run becomes more
4398 on its arguments (~users and $VARS). With this, @run becomes more
4393 like a normal command-line.
4399 like a normal command-line.
4394
4400
4395 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4401 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4396 bugs related to embedding and cleaned up that code. A fairly
4402 bugs related to embedding and cleaned up that code. A fairly
4397 important one was the impossibility to access the global namespace
4403 important one was the impossibility to access the global namespace
4398 through the embedded IPython (only local variables were visible).
4404 through the embedded IPython (only local variables were visible).
4399
4405
4400 2003-01-14 Fernando Perez <fperez@colorado.edu>
4406 2003-01-14 Fernando Perez <fperez@colorado.edu>
4401
4407
4402 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4408 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4403 auto-calling to be a bit more conservative. Now it doesn't get
4409 auto-calling to be a bit more conservative. Now it doesn't get
4404 triggered if any of '!=()<>' are in the rest of the input line, to
4410 triggered if any of '!=()<>' are in the rest of the input line, to
4405 allow comparing callables. Thanks to Alex for the heads up.
4411 allow comparing callables. Thanks to Alex for the heads up.
4406
4412
4407 2003-01-07 Fernando Perez <fperez@colorado.edu>
4413 2003-01-07 Fernando Perez <fperez@colorado.edu>
4408
4414
4409 * IPython/genutils.py (page): fixed estimation of the number of
4415 * IPython/genutils.py (page): fixed estimation of the number of
4410 lines in a string to be paged to simply count newlines. This
4416 lines in a string to be paged to simply count newlines. This
4411 prevents over-guessing due to embedded escape sequences. A better
4417 prevents over-guessing due to embedded escape sequences. A better
4412 long-term solution would involve stripping out the control chars
4418 long-term solution would involve stripping out the control chars
4413 for the count, but it's potentially so expensive I just don't
4419 for the count, but it's potentially so expensive I just don't
4414 think it's worth doing.
4420 think it's worth doing.
4415
4421
4416 2002-12-19 *** Released version 0.2.14pre50
4422 2002-12-19 *** Released version 0.2.14pre50
4417
4423
4418 2002-12-19 Fernando Perez <fperez@colorado.edu>
4424 2002-12-19 Fernando Perez <fperez@colorado.edu>
4419
4425
4420 * tools/release (version): Changed release scripts to inform
4426 * tools/release (version): Changed release scripts to inform
4421 Andrea and build a NEWS file with a list of recent changes.
4427 Andrea and build a NEWS file with a list of recent changes.
4422
4428
4423 * IPython/ColorANSI.py (__all__): changed terminal detection
4429 * IPython/ColorANSI.py (__all__): changed terminal detection
4424 code. Seems to work better for xterms without breaking
4430 code. Seems to work better for xterms without breaking
4425 konsole. Will need more testing to determine if WinXP and Mac OSX
4431 konsole. Will need more testing to determine if WinXP and Mac OSX
4426 also work ok.
4432 also work ok.
4427
4433
4428 2002-12-18 *** Released version 0.2.14pre49
4434 2002-12-18 *** Released version 0.2.14pre49
4429
4435
4430 2002-12-18 Fernando Perez <fperez@colorado.edu>
4436 2002-12-18 Fernando Perez <fperez@colorado.edu>
4431
4437
4432 * Docs: added new info about Mac OSX, from Andrea.
4438 * Docs: added new info about Mac OSX, from Andrea.
4433
4439
4434 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4440 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4435 allow direct plotting of python strings whose format is the same
4441 allow direct plotting of python strings whose format is the same
4436 of gnuplot data files.
4442 of gnuplot data files.
4437
4443
4438 2002-12-16 Fernando Perez <fperez@colorado.edu>
4444 2002-12-16 Fernando Perez <fperez@colorado.edu>
4439
4445
4440 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4446 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4441 value of exit question to be acknowledged.
4447 value of exit question to be acknowledged.
4442
4448
4443 2002-12-03 Fernando Perez <fperez@colorado.edu>
4449 2002-12-03 Fernando Perez <fperez@colorado.edu>
4444
4450
4445 * IPython/ipmaker.py: removed generators, which had been added
4451 * IPython/ipmaker.py: removed generators, which had been added
4446 by mistake in an earlier debugging run. This was causing trouble
4452 by mistake in an earlier debugging run. This was causing trouble
4447 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4453 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4448 for pointing this out.
4454 for pointing this out.
4449
4455
4450 2002-11-17 Fernando Perez <fperez@colorado.edu>
4456 2002-11-17 Fernando Perez <fperez@colorado.edu>
4451
4457
4452 * Manual: updated the Gnuplot section.
4458 * Manual: updated the Gnuplot section.
4453
4459
4454 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4460 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4455 a much better split of what goes in Runtime and what goes in
4461 a much better split of what goes in Runtime and what goes in
4456 Interactive.
4462 Interactive.
4457
4463
4458 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4464 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4459 being imported from iplib.
4465 being imported from iplib.
4460
4466
4461 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4467 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4462 for command-passing. Now the global Gnuplot instance is called
4468 for command-passing. Now the global Gnuplot instance is called
4463 'gp' instead of 'g', which was really a far too fragile and
4469 'gp' instead of 'g', which was really a far too fragile and
4464 common name.
4470 common name.
4465
4471
4466 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4472 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4467 bounding boxes generated by Gnuplot for square plots.
4473 bounding boxes generated by Gnuplot for square plots.
4468
4474
4469 * IPython/genutils.py (popkey): new function added. I should
4475 * IPython/genutils.py (popkey): new function added. I should
4470 suggest this on c.l.py as a dict method, it seems useful.
4476 suggest this on c.l.py as a dict method, it seems useful.
4471
4477
4472 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4478 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4473 to transparently handle PostScript generation. MUCH better than
4479 to transparently handle PostScript generation. MUCH better than
4474 the previous plot_eps/replot_eps (which I removed now). The code
4480 the previous plot_eps/replot_eps (which I removed now). The code
4475 is also fairly clean and well documented now (including
4481 is also fairly clean and well documented now (including
4476 docstrings).
4482 docstrings).
4477
4483
4478 2002-11-13 Fernando Perez <fperez@colorado.edu>
4484 2002-11-13 Fernando Perez <fperez@colorado.edu>
4479
4485
4480 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4486 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4481 (inconsistent with options).
4487 (inconsistent with options).
4482
4488
4483 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4489 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4484 manually disabled, I don't know why. Fixed it.
4490 manually disabled, I don't know why. Fixed it.
4485 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4491 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4486 eps output.
4492 eps output.
4487
4493
4488 2002-11-12 Fernando Perez <fperez@colorado.edu>
4494 2002-11-12 Fernando Perez <fperez@colorado.edu>
4489
4495
4490 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4496 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4491 don't propagate up to caller. Fixes crash reported by François
4497 don't propagate up to caller. Fixes crash reported by François
4492 Pinard.
4498 Pinard.
4493
4499
4494 2002-11-09 Fernando Perez <fperez@colorado.edu>
4500 2002-11-09 Fernando Perez <fperez@colorado.edu>
4495
4501
4496 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4502 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4497 history file for new users.
4503 history file for new users.
4498 (make_IPython): fixed bug where initial install would leave the
4504 (make_IPython): fixed bug where initial install would leave the
4499 user running in the .ipython dir.
4505 user running in the .ipython dir.
4500 (make_IPython): fixed bug where config dir .ipython would be
4506 (make_IPython): fixed bug where config dir .ipython would be
4501 created regardless of the given -ipythondir option. Thanks to Cory
4507 created regardless of the given -ipythondir option. Thanks to Cory
4502 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4508 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4503
4509
4504 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4510 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4505 type confirmations. Will need to use it in all of IPython's code
4511 type confirmations. Will need to use it in all of IPython's code
4506 consistently.
4512 consistently.
4507
4513
4508 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4514 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4509 context to print 31 lines instead of the default 5. This will make
4515 context to print 31 lines instead of the default 5. This will make
4510 the crash reports extremely detailed in case the problem is in
4516 the crash reports extremely detailed in case the problem is in
4511 libraries I don't have access to.
4517 libraries I don't have access to.
4512
4518
4513 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4519 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4514 line of defense' code to still crash, but giving users fair
4520 line of defense' code to still crash, but giving users fair
4515 warning. I don't want internal errors to go unreported: if there's
4521 warning. I don't want internal errors to go unreported: if there's
4516 an internal problem, IPython should crash and generate a full
4522 an internal problem, IPython should crash and generate a full
4517 report.
4523 report.
4518
4524
4519 2002-11-08 Fernando Perez <fperez@colorado.edu>
4525 2002-11-08 Fernando Perez <fperez@colorado.edu>
4520
4526
4521 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4527 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4522 otherwise uncaught exceptions which can appear if people set
4528 otherwise uncaught exceptions which can appear if people set
4523 sys.stdout to something badly broken. Thanks to a crash report
4529 sys.stdout to something badly broken. Thanks to a crash report
4524 from henni-AT-mail.brainbot.com.
4530 from henni-AT-mail.brainbot.com.
4525
4531
4526 2002-11-04 Fernando Perez <fperez@colorado.edu>
4532 2002-11-04 Fernando Perez <fperez@colorado.edu>
4527
4533
4528 * IPython/iplib.py (InteractiveShell.interact): added
4534 * IPython/iplib.py (InteractiveShell.interact): added
4529 __IPYTHON__active to the builtins. It's a flag which goes on when
4535 __IPYTHON__active to the builtins. It's a flag which goes on when
4530 the interaction starts and goes off again when it stops. This
4536 the interaction starts and goes off again when it stops. This
4531 allows embedding code to detect being inside IPython. Before this
4537 allows embedding code to detect being inside IPython. Before this
4532 was done via __IPYTHON__, but that only shows that an IPython
4538 was done via __IPYTHON__, but that only shows that an IPython
4533 instance has been created.
4539 instance has been created.
4534
4540
4535 * IPython/Magic.py (Magic.magic_env): I realized that in a
4541 * IPython/Magic.py (Magic.magic_env): I realized that in a
4536 UserDict, instance.data holds the data as a normal dict. So I
4542 UserDict, instance.data holds the data as a normal dict. So I
4537 modified @env to return os.environ.data instead of rebuilding a
4543 modified @env to return os.environ.data instead of rebuilding a
4538 dict by hand.
4544 dict by hand.
4539
4545
4540 2002-11-02 Fernando Perez <fperez@colorado.edu>
4546 2002-11-02 Fernando Perez <fperez@colorado.edu>
4541
4547
4542 * IPython/genutils.py (warn): changed so that level 1 prints no
4548 * IPython/genutils.py (warn): changed so that level 1 prints no
4543 header. Level 2 is now the default (with 'WARNING' header, as
4549 header. Level 2 is now the default (with 'WARNING' header, as
4544 before). I think I tracked all places where changes were needed in
4550 before). I think I tracked all places where changes were needed in
4545 IPython, but outside code using the old level numbering may have
4551 IPython, but outside code using the old level numbering may have
4546 broken.
4552 broken.
4547
4553
4548 * IPython/iplib.py (InteractiveShell.runcode): added this to
4554 * IPython/iplib.py (InteractiveShell.runcode): added this to
4549 handle the tracebacks in SystemExit traps correctly. The previous
4555 handle the tracebacks in SystemExit traps correctly. The previous
4550 code (through interact) was printing more of the stack than
4556 code (through interact) was printing more of the stack than
4551 necessary, showing IPython internal code to the user.
4557 necessary, showing IPython internal code to the user.
4552
4558
4553 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4559 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4554 default. Now that the default at the confirmation prompt is yes,
4560 default. Now that the default at the confirmation prompt is yes,
4555 it's not so intrusive. François' argument that ipython sessions
4561 it's not so intrusive. François' argument that ipython sessions
4556 tend to be complex enough not to lose them from an accidental C-d,
4562 tend to be complex enough not to lose them from an accidental C-d,
4557 is a valid one.
4563 is a valid one.
4558
4564
4559 * IPython/iplib.py (InteractiveShell.interact): added a
4565 * IPython/iplib.py (InteractiveShell.interact): added a
4560 showtraceback() call to the SystemExit trap, and modified the exit
4566 showtraceback() call to the SystemExit trap, and modified the exit
4561 confirmation to have yes as the default.
4567 confirmation to have yes as the default.
4562
4568
4563 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4569 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4564 this file. It's been gone from the code for a long time, this was
4570 this file. It's been gone from the code for a long time, this was
4565 simply leftover junk.
4571 simply leftover junk.
4566
4572
4567 2002-11-01 Fernando Perez <fperez@colorado.edu>
4573 2002-11-01 Fernando Perez <fperez@colorado.edu>
4568
4574
4569 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4575 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4570 added. If set, IPython now traps EOF and asks for
4576 added. If set, IPython now traps EOF and asks for
4571 confirmation. After a request by François Pinard.
4577 confirmation. After a request by François Pinard.
4572
4578
4573 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4579 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4574 of @abort, and with a new (better) mechanism for handling the
4580 of @abort, and with a new (better) mechanism for handling the
4575 exceptions.
4581 exceptions.
4576
4582
4577 2002-10-27 Fernando Perez <fperez@colorado.edu>
4583 2002-10-27 Fernando Perez <fperez@colorado.edu>
4578
4584
4579 * IPython/usage.py (__doc__): updated the --help information and
4585 * IPython/usage.py (__doc__): updated the --help information and
4580 the ipythonrc file to indicate that -log generates
4586 the ipythonrc file to indicate that -log generates
4581 ./ipython.log. Also fixed the corresponding info in @logstart.
4587 ./ipython.log. Also fixed the corresponding info in @logstart.
4582 This and several other fixes in the manuals thanks to reports by
4588 This and several other fixes in the manuals thanks to reports by
4583 François Pinard <pinard-AT-iro.umontreal.ca>.
4589 François Pinard <pinard-AT-iro.umontreal.ca>.
4584
4590
4585 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4591 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4586 refer to @logstart (instead of @log, which doesn't exist).
4592 refer to @logstart (instead of @log, which doesn't exist).
4587
4593
4588 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4594 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4589 AttributeError crash. Thanks to Christopher Armstrong
4595 AttributeError crash. Thanks to Christopher Armstrong
4590 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4596 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4591 introduced recently (in 0.2.14pre37) with the fix to the eval
4597 introduced recently (in 0.2.14pre37) with the fix to the eval
4592 problem mentioned below.
4598 problem mentioned below.
4593
4599
4594 2002-10-17 Fernando Perez <fperez@colorado.edu>
4600 2002-10-17 Fernando Perez <fperez@colorado.edu>
4595
4601
4596 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4602 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4597 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4603 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4598
4604
4599 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4605 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4600 this function to fix a problem reported by Alex Schmolck. He saw
4606 this function to fix a problem reported by Alex Schmolck. He saw
4601 it with list comprehensions and generators, which were getting
4607 it with list comprehensions and generators, which were getting
4602 called twice. The real problem was an 'eval' call in testing for
4608 called twice. The real problem was an 'eval' call in testing for
4603 automagic which was evaluating the input line silently.
4609 automagic which was evaluating the input line silently.
4604
4610
4605 This is a potentially very nasty bug, if the input has side
4611 This is a potentially very nasty bug, if the input has side
4606 effects which must not be repeated. The code is much cleaner now,
4612 effects which must not be repeated. The code is much cleaner now,
4607 without any blanket 'except' left and with a regexp test for
4613 without any blanket 'except' left and with a regexp test for
4608 actual function names.
4614 actual function names.
4609
4615
4610 But an eval remains, which I'm not fully comfortable with. I just
4616 But an eval remains, which I'm not fully comfortable with. I just
4611 don't know how to find out if an expression could be a callable in
4617 don't know how to find out if an expression could be a callable in
4612 the user's namespace without doing an eval on the string. However
4618 the user's namespace without doing an eval on the string. However
4613 that string is now much more strictly checked so that no code
4619 that string is now much more strictly checked so that no code
4614 slips by, so the eval should only happen for things that can
4620 slips by, so the eval should only happen for things that can
4615 really be only function/method names.
4621 really be only function/method names.
4616
4622
4617 2002-10-15 Fernando Perez <fperez@colorado.edu>
4623 2002-10-15 Fernando Perez <fperez@colorado.edu>
4618
4624
4619 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4625 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4620 OSX information to main manual, removed README_Mac_OSX file from
4626 OSX information to main manual, removed README_Mac_OSX file from
4621 distribution. Also updated credits for recent additions.
4627 distribution. Also updated credits for recent additions.
4622
4628
4623 2002-10-10 Fernando Perez <fperez@colorado.edu>
4629 2002-10-10 Fernando Perez <fperez@colorado.edu>
4624
4630
4625 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4631 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4626 terminal-related issues. Many thanks to Andrea Riciputi
4632 terminal-related issues. Many thanks to Andrea Riciputi
4627 <andrea.riciputi-AT-libero.it> for writing it.
4633 <andrea.riciputi-AT-libero.it> for writing it.
4628
4634
4629 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4635 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4630 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4636 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4631
4637
4632 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4638 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4633 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4639 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4634 <syver-en-AT-online.no> who both submitted patches for this problem.
4640 <syver-en-AT-online.no> who both submitted patches for this problem.
4635
4641
4636 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4642 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4637 global embedding to make sure that things don't overwrite user
4643 global embedding to make sure that things don't overwrite user
4638 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4644 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4639
4645
4640 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4646 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4641 compatibility. Thanks to Hayden Callow
4647 compatibility. Thanks to Hayden Callow
4642 <h.callow-AT-elec.canterbury.ac.nz>
4648 <h.callow-AT-elec.canterbury.ac.nz>
4643
4649
4644 2002-10-04 Fernando Perez <fperez@colorado.edu>
4650 2002-10-04 Fernando Perez <fperez@colorado.edu>
4645
4651
4646 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4652 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4647 Gnuplot.File objects.
4653 Gnuplot.File objects.
4648
4654
4649 2002-07-23 Fernando Perez <fperez@colorado.edu>
4655 2002-07-23 Fernando Perez <fperez@colorado.edu>
4650
4656
4651 * IPython/genutils.py (timing): Added timings() and timing() for
4657 * IPython/genutils.py (timing): Added timings() and timing() for
4652 quick access to the most commonly needed data, the execution
4658 quick access to the most commonly needed data, the execution
4653 times. Old timing() renamed to timings_out().
4659 times. Old timing() renamed to timings_out().
4654
4660
4655 2002-07-18 Fernando Perez <fperez@colorado.edu>
4661 2002-07-18 Fernando Perez <fperez@colorado.edu>
4656
4662
4657 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4663 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4658 bug with nested instances disrupting the parent's tab completion.
4664 bug with nested instances disrupting the parent's tab completion.
4659
4665
4660 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4666 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4661 all_completions code to begin the emacs integration.
4667 all_completions code to begin the emacs integration.
4662
4668
4663 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4669 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4664 argument to allow titling individual arrays when plotting.
4670 argument to allow titling individual arrays when plotting.
4665
4671
4666 2002-07-15 Fernando Perez <fperez@colorado.edu>
4672 2002-07-15 Fernando Perez <fperez@colorado.edu>
4667
4673
4668 * setup.py (make_shortcut): changed to retrieve the value of
4674 * setup.py (make_shortcut): changed to retrieve the value of
4669 'Program Files' directory from the registry (this value changes in
4675 'Program Files' directory from the registry (this value changes in
4670 non-english versions of Windows). Thanks to Thomas Fanslau
4676 non-english versions of Windows). Thanks to Thomas Fanslau
4671 <tfanslau-AT-gmx.de> for the report.
4677 <tfanslau-AT-gmx.de> for the report.
4672
4678
4673 2002-07-10 Fernando Perez <fperez@colorado.edu>
4679 2002-07-10 Fernando Perez <fperez@colorado.edu>
4674
4680
4675 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4681 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4676 a bug in pdb, which crashes if a line with only whitespace is
4682 a bug in pdb, which crashes if a line with only whitespace is
4677 entered. Bug report submitted to sourceforge.
4683 entered. Bug report submitted to sourceforge.
4678
4684
4679 2002-07-09 Fernando Perez <fperez@colorado.edu>
4685 2002-07-09 Fernando Perez <fperez@colorado.edu>
4680
4686
4681 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4687 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4682 reporting exceptions (it's a bug in inspect.py, I just set a
4688 reporting exceptions (it's a bug in inspect.py, I just set a
4683 workaround).
4689 workaround).
4684
4690
4685 2002-07-08 Fernando Perez <fperez@colorado.edu>
4691 2002-07-08 Fernando Perez <fperez@colorado.edu>
4686
4692
4687 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4693 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4688 __IPYTHON__ in __builtins__ to show up in user_ns.
4694 __IPYTHON__ in __builtins__ to show up in user_ns.
4689
4695
4690 2002-07-03 Fernando Perez <fperez@colorado.edu>
4696 2002-07-03 Fernando Perez <fperez@colorado.edu>
4691
4697
4692 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4698 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4693 name from @gp_set_instance to @gp_set_default.
4699 name from @gp_set_instance to @gp_set_default.
4694
4700
4695 * IPython/ipmaker.py (make_IPython): default editor value set to
4701 * IPython/ipmaker.py (make_IPython): default editor value set to
4696 '0' (a string), to match the rc file. Otherwise will crash when
4702 '0' (a string), to match the rc file. Otherwise will crash when
4697 .strip() is called on it.
4703 .strip() is called on it.
4698
4704
4699
4705
4700 2002-06-28 Fernando Perez <fperez@colorado.edu>
4706 2002-06-28 Fernando Perez <fperez@colorado.edu>
4701
4707
4702 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4708 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4703 of files in current directory when a file is executed via
4709 of files in current directory when a file is executed via
4704 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4710 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4705
4711
4706 * setup.py (manfiles): fix for rpm builds, submitted by RA
4712 * setup.py (manfiles): fix for rpm builds, submitted by RA
4707 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4713 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4708
4714
4709 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4715 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4710 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4716 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4711 string!). A. Schmolck caught this one.
4717 string!). A. Schmolck caught this one.
4712
4718
4713 2002-06-27 Fernando Perez <fperez@colorado.edu>
4719 2002-06-27 Fernando Perez <fperez@colorado.edu>
4714
4720
4715 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4721 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4716 defined files at the cmd line. __name__ wasn't being set to
4722 defined files at the cmd line. __name__ wasn't being set to
4717 __main__.
4723 __main__.
4718
4724
4719 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4725 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4720 regular lists and tuples besides Numeric arrays.
4726 regular lists and tuples besides Numeric arrays.
4721
4727
4722 * IPython/Prompts.py (CachedOutput.__call__): Added output
4728 * IPython/Prompts.py (CachedOutput.__call__): Added output
4723 supression for input ending with ';'. Similar to Mathematica and
4729 supression for input ending with ';'. Similar to Mathematica and
4724 Matlab. The _* vars and Out[] list are still updated, just like
4730 Matlab. The _* vars and Out[] list are still updated, just like
4725 Mathematica behaves.
4731 Mathematica behaves.
4726
4732
4727 2002-06-25 Fernando Perez <fperez@colorado.edu>
4733 2002-06-25 Fernando Perez <fperez@colorado.edu>
4728
4734
4729 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4735 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4730 .ini extensions for profiels under Windows.
4736 .ini extensions for profiels under Windows.
4731
4737
4732 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4738 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4733 string form. Fix contributed by Alexander Schmolck
4739 string form. Fix contributed by Alexander Schmolck
4734 <a.schmolck-AT-gmx.net>
4740 <a.schmolck-AT-gmx.net>
4735
4741
4736 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4742 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4737 pre-configured Gnuplot instance.
4743 pre-configured Gnuplot instance.
4738
4744
4739 2002-06-21 Fernando Perez <fperez@colorado.edu>
4745 2002-06-21 Fernando Perez <fperez@colorado.edu>
4740
4746
4741 * IPython/numutils.py (exp_safe): new function, works around the
4747 * IPython/numutils.py (exp_safe): new function, works around the
4742 underflow problems in Numeric.
4748 underflow problems in Numeric.
4743 (log2): New fn. Safe log in base 2: returns exact integer answer
4749 (log2): New fn. Safe log in base 2: returns exact integer answer
4744 for exact integer powers of 2.
4750 for exact integer powers of 2.
4745
4751
4746 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4752 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4747 properly.
4753 properly.
4748
4754
4749 2002-06-20 Fernando Perez <fperez@colorado.edu>
4755 2002-06-20 Fernando Perez <fperez@colorado.edu>
4750
4756
4751 * IPython/genutils.py (timing): new function like
4757 * IPython/genutils.py (timing): new function like
4752 Mathematica's. Similar to time_test, but returns more info.
4758 Mathematica's. Similar to time_test, but returns more info.
4753
4759
4754 2002-06-18 Fernando Perez <fperez@colorado.edu>
4760 2002-06-18 Fernando Perez <fperez@colorado.edu>
4755
4761
4756 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4762 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4757 according to Mike Heeter's suggestions.
4763 according to Mike Heeter's suggestions.
4758
4764
4759 2002-06-16 Fernando Perez <fperez@colorado.edu>
4765 2002-06-16 Fernando Perez <fperez@colorado.edu>
4760
4766
4761 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4767 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4762 system. GnuplotMagic is gone as a user-directory option. New files
4768 system. GnuplotMagic is gone as a user-directory option. New files
4763 make it easier to use all the gnuplot stuff both from external
4769 make it easier to use all the gnuplot stuff both from external
4764 programs as well as from IPython. Had to rewrite part of
4770 programs as well as from IPython. Had to rewrite part of
4765 hardcopy() b/c of a strange bug: often the ps files simply don't
4771 hardcopy() b/c of a strange bug: often the ps files simply don't
4766 get created, and require a repeat of the command (often several
4772 get created, and require a repeat of the command (often several
4767 times).
4773 times).
4768
4774
4769 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4775 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4770 resolve output channel at call time, so that if sys.stderr has
4776 resolve output channel at call time, so that if sys.stderr has
4771 been redirected by user this gets honored.
4777 been redirected by user this gets honored.
4772
4778
4773 2002-06-13 Fernando Perez <fperez@colorado.edu>
4779 2002-06-13 Fernando Perez <fperez@colorado.edu>
4774
4780
4775 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4781 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4776 IPShell. Kept a copy with the old names to avoid breaking people's
4782 IPShell. Kept a copy with the old names to avoid breaking people's
4777 embedded code.
4783 embedded code.
4778
4784
4779 * IPython/ipython: simplified it to the bare minimum after
4785 * IPython/ipython: simplified it to the bare minimum after
4780 Holger's suggestions. Added info about how to use it in
4786 Holger's suggestions. Added info about how to use it in
4781 PYTHONSTARTUP.
4787 PYTHONSTARTUP.
4782
4788
4783 * IPython/Shell.py (IPythonShell): changed the options passing
4789 * IPython/Shell.py (IPythonShell): changed the options passing
4784 from a string with funky %s replacements to a straight list. Maybe
4790 from a string with funky %s replacements to a straight list. Maybe
4785 a bit more typing, but it follows sys.argv conventions, so there's
4791 a bit more typing, but it follows sys.argv conventions, so there's
4786 less special-casing to remember.
4792 less special-casing to remember.
4787
4793
4788 2002-06-12 Fernando Perez <fperez@colorado.edu>
4794 2002-06-12 Fernando Perez <fperez@colorado.edu>
4789
4795
4790 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4796 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4791 command. Thanks to a suggestion by Mike Heeter.
4797 command. Thanks to a suggestion by Mike Heeter.
4792 (Magic.magic_pfile): added behavior to look at filenames if given
4798 (Magic.magic_pfile): added behavior to look at filenames if given
4793 arg is not a defined object.
4799 arg is not a defined object.
4794 (Magic.magic_save): New @save function to save code snippets. Also
4800 (Magic.magic_save): New @save function to save code snippets. Also
4795 a Mike Heeter idea.
4801 a Mike Heeter idea.
4796
4802
4797 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4803 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4798 plot() and replot(). Much more convenient now, especially for
4804 plot() and replot(). Much more convenient now, especially for
4799 interactive use.
4805 interactive use.
4800
4806
4801 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4807 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4802 filenames.
4808 filenames.
4803
4809
4804 2002-06-02 Fernando Perez <fperez@colorado.edu>
4810 2002-06-02 Fernando Perez <fperez@colorado.edu>
4805
4811
4806 * IPython/Struct.py (Struct.__init__): modified to admit
4812 * IPython/Struct.py (Struct.__init__): modified to admit
4807 initialization via another struct.
4813 initialization via another struct.
4808
4814
4809 * IPython/genutils.py (SystemExec.__init__): New stateful
4815 * IPython/genutils.py (SystemExec.__init__): New stateful
4810 interface to xsys and bq. Useful for writing system scripts.
4816 interface to xsys and bq. Useful for writing system scripts.
4811
4817
4812 2002-05-30 Fernando Perez <fperez@colorado.edu>
4818 2002-05-30 Fernando Perez <fperez@colorado.edu>
4813
4819
4814 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4820 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4815 documents. This will make the user download smaller (it's getting
4821 documents. This will make the user download smaller (it's getting
4816 too big).
4822 too big).
4817
4823
4818 2002-05-29 Fernando Perez <fperez@colorado.edu>
4824 2002-05-29 Fernando Perez <fperez@colorado.edu>
4819
4825
4820 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4826 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4821 fix problems with shelve and pickle. Seems to work, but I don't
4827 fix problems with shelve and pickle. Seems to work, but I don't
4822 know if corner cases break it. Thanks to Mike Heeter
4828 know if corner cases break it. Thanks to Mike Heeter
4823 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4829 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4824
4830
4825 2002-05-24 Fernando Perez <fperez@colorado.edu>
4831 2002-05-24 Fernando Perez <fperez@colorado.edu>
4826
4832
4827 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4833 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4828 macros having broken.
4834 macros having broken.
4829
4835
4830 2002-05-21 Fernando Perez <fperez@colorado.edu>
4836 2002-05-21 Fernando Perez <fperez@colorado.edu>
4831
4837
4832 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4838 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4833 introduced logging bug: all history before logging started was
4839 introduced logging bug: all history before logging started was
4834 being written one character per line! This came from the redesign
4840 being written one character per line! This came from the redesign
4835 of the input history as a special list which slices to strings,
4841 of the input history as a special list which slices to strings,
4836 not to lists.
4842 not to lists.
4837
4843
4838 2002-05-20 Fernando Perez <fperez@colorado.edu>
4844 2002-05-20 Fernando Perez <fperez@colorado.edu>
4839
4845
4840 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4846 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4841 be an attribute of all classes in this module. The design of these
4847 be an attribute of all classes in this module. The design of these
4842 classes needs some serious overhauling.
4848 classes needs some serious overhauling.
4843
4849
4844 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4850 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4845 which was ignoring '_' in option names.
4851 which was ignoring '_' in option names.
4846
4852
4847 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4853 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4848 'Verbose_novars' to 'Context' and made it the new default. It's a
4854 'Verbose_novars' to 'Context' and made it the new default. It's a
4849 bit more readable and also safer than verbose.
4855 bit more readable and also safer than verbose.
4850
4856
4851 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4857 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4852 triple-quoted strings.
4858 triple-quoted strings.
4853
4859
4854 * IPython/OInspect.py (__all__): new module exposing the object
4860 * IPython/OInspect.py (__all__): new module exposing the object
4855 introspection facilities. Now the corresponding magics are dummy
4861 introspection facilities. Now the corresponding magics are dummy
4856 wrappers around this. Having this module will make it much easier
4862 wrappers around this. Having this module will make it much easier
4857 to put these functions into our modified pdb.
4863 to put these functions into our modified pdb.
4858 This new object inspector system uses the new colorizing module,
4864 This new object inspector system uses the new colorizing module,
4859 so source code and other things are nicely syntax highlighted.
4865 so source code and other things are nicely syntax highlighted.
4860
4866
4861 2002-05-18 Fernando Perez <fperez@colorado.edu>
4867 2002-05-18 Fernando Perez <fperez@colorado.edu>
4862
4868
4863 * IPython/ColorANSI.py: Split the coloring tools into a separate
4869 * IPython/ColorANSI.py: Split the coloring tools into a separate
4864 module so I can use them in other code easier (they were part of
4870 module so I can use them in other code easier (they were part of
4865 ultraTB).
4871 ultraTB).
4866
4872
4867 2002-05-17 Fernando Perez <fperez@colorado.edu>
4873 2002-05-17 Fernando Perez <fperez@colorado.edu>
4868
4874
4869 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4875 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4870 fixed it to set the global 'g' also to the called instance, as
4876 fixed it to set the global 'g' also to the called instance, as
4871 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4877 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4872 user's 'g' variables).
4878 user's 'g' variables).
4873
4879
4874 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4880 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4875 global variables (aliases to _ih,_oh) so that users which expect
4881 global variables (aliases to _ih,_oh) so that users which expect
4876 In[5] or Out[7] to work aren't unpleasantly surprised.
4882 In[5] or Out[7] to work aren't unpleasantly surprised.
4877 (InputList.__getslice__): new class to allow executing slices of
4883 (InputList.__getslice__): new class to allow executing slices of
4878 input history directly. Very simple class, complements the use of
4884 input history directly. Very simple class, complements the use of
4879 macros.
4885 macros.
4880
4886
4881 2002-05-16 Fernando Perez <fperez@colorado.edu>
4887 2002-05-16 Fernando Perez <fperez@colorado.edu>
4882
4888
4883 * setup.py (docdirbase): make doc directory be just doc/IPython
4889 * setup.py (docdirbase): make doc directory be just doc/IPython
4884 without version numbers, it will reduce clutter for users.
4890 without version numbers, it will reduce clutter for users.
4885
4891
4886 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4892 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4887 execfile call to prevent possible memory leak. See for details:
4893 execfile call to prevent possible memory leak. See for details:
4888 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4894 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4889
4895
4890 2002-05-15 Fernando Perez <fperez@colorado.edu>
4896 2002-05-15 Fernando Perez <fperez@colorado.edu>
4891
4897
4892 * IPython/Magic.py (Magic.magic_psource): made the object
4898 * IPython/Magic.py (Magic.magic_psource): made the object
4893 introspection names be more standard: pdoc, pdef, pfile and
4899 introspection names be more standard: pdoc, pdef, pfile and
4894 psource. They all print/page their output, and it makes
4900 psource. They all print/page their output, and it makes
4895 remembering them easier. Kept old names for compatibility as
4901 remembering them easier. Kept old names for compatibility as
4896 aliases.
4902 aliases.
4897
4903
4898 2002-05-14 Fernando Perez <fperez@colorado.edu>
4904 2002-05-14 Fernando Perez <fperez@colorado.edu>
4899
4905
4900 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4906 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4901 what the mouse problem was. The trick is to use gnuplot with temp
4907 what the mouse problem was. The trick is to use gnuplot with temp
4902 files and NOT with pipes (for data communication), because having
4908 files and NOT with pipes (for data communication), because having
4903 both pipes and the mouse on is bad news.
4909 both pipes and the mouse on is bad news.
4904
4910
4905 2002-05-13 Fernando Perez <fperez@colorado.edu>
4911 2002-05-13 Fernando Perez <fperez@colorado.edu>
4906
4912
4907 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4913 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4908 bug. Information would be reported about builtins even when
4914 bug. Information would be reported about builtins even when
4909 user-defined functions overrode them.
4915 user-defined functions overrode them.
4910
4916
4911 2002-05-11 Fernando Perez <fperez@colorado.edu>
4917 2002-05-11 Fernando Perez <fperez@colorado.edu>
4912
4918
4913 * IPython/__init__.py (__all__): removed FlexCompleter from
4919 * IPython/__init__.py (__all__): removed FlexCompleter from
4914 __all__ so that things don't fail in platforms without readline.
4920 __all__ so that things don't fail in platforms without readline.
4915
4921
4916 2002-05-10 Fernando Perez <fperez@colorado.edu>
4922 2002-05-10 Fernando Perez <fperez@colorado.edu>
4917
4923
4918 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4924 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4919 it requires Numeric, effectively making Numeric a dependency for
4925 it requires Numeric, effectively making Numeric a dependency for
4920 IPython.
4926 IPython.
4921
4927
4922 * Released 0.2.13
4928 * Released 0.2.13
4923
4929
4924 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4930 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4925 profiler interface. Now all the major options from the profiler
4931 profiler interface. Now all the major options from the profiler
4926 module are directly supported in IPython, both for single
4932 module are directly supported in IPython, both for single
4927 expressions (@prun) and for full programs (@run -p).
4933 expressions (@prun) and for full programs (@run -p).
4928
4934
4929 2002-05-09 Fernando Perez <fperez@colorado.edu>
4935 2002-05-09 Fernando Perez <fperez@colorado.edu>
4930
4936
4931 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4937 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4932 magic properly formatted for screen.
4938 magic properly formatted for screen.
4933
4939
4934 * setup.py (make_shortcut): Changed things to put pdf version in
4940 * setup.py (make_shortcut): Changed things to put pdf version in
4935 doc/ instead of doc/manual (had to change lyxport a bit).
4941 doc/ instead of doc/manual (had to change lyxport a bit).
4936
4942
4937 * IPython/Magic.py (Profile.string_stats): made profile runs go
4943 * IPython/Magic.py (Profile.string_stats): made profile runs go
4938 through pager (they are long and a pager allows searching, saving,
4944 through pager (they are long and a pager allows searching, saving,
4939 etc.)
4945 etc.)
4940
4946
4941 2002-05-08 Fernando Perez <fperez@colorado.edu>
4947 2002-05-08 Fernando Perez <fperez@colorado.edu>
4942
4948
4943 * Released 0.2.12
4949 * Released 0.2.12
4944
4950
4945 2002-05-06 Fernando Perez <fperez@colorado.edu>
4951 2002-05-06 Fernando Perez <fperez@colorado.edu>
4946
4952
4947 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4953 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4948 introduced); 'hist n1 n2' was broken.
4954 introduced); 'hist n1 n2' was broken.
4949 (Magic.magic_pdb): added optional on/off arguments to @pdb
4955 (Magic.magic_pdb): added optional on/off arguments to @pdb
4950 (Magic.magic_run): added option -i to @run, which executes code in
4956 (Magic.magic_run): added option -i to @run, which executes code in
4951 the IPython namespace instead of a clean one. Also added @irun as
4957 the IPython namespace instead of a clean one. Also added @irun as
4952 an alias to @run -i.
4958 an alias to @run -i.
4953
4959
4954 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4960 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4955 fixed (it didn't really do anything, the namespaces were wrong).
4961 fixed (it didn't really do anything, the namespaces were wrong).
4956
4962
4957 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4963 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4958
4964
4959 * IPython/__init__.py (__all__): Fixed package namespace, now
4965 * IPython/__init__.py (__all__): Fixed package namespace, now
4960 'import IPython' does give access to IPython.<all> as
4966 'import IPython' does give access to IPython.<all> as
4961 expected. Also renamed __release__ to Release.
4967 expected. Also renamed __release__ to Release.
4962
4968
4963 * IPython/Debugger.py (__license__): created new Pdb class which
4969 * IPython/Debugger.py (__license__): created new Pdb class which
4964 functions like a drop-in for the normal pdb.Pdb but does NOT
4970 functions like a drop-in for the normal pdb.Pdb but does NOT
4965 import readline by default. This way it doesn't muck up IPython's
4971 import readline by default. This way it doesn't muck up IPython's
4966 readline handling, and now tab-completion finally works in the
4972 readline handling, and now tab-completion finally works in the
4967 debugger -- sort of. It completes things globally visible, but the
4973 debugger -- sort of. It completes things globally visible, but the
4968 completer doesn't track the stack as pdb walks it. That's a bit
4974 completer doesn't track the stack as pdb walks it. That's a bit
4969 tricky, and I'll have to implement it later.
4975 tricky, and I'll have to implement it later.
4970
4976
4971 2002-05-05 Fernando Perez <fperez@colorado.edu>
4977 2002-05-05 Fernando Perez <fperez@colorado.edu>
4972
4978
4973 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4979 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4974 magic docstrings when printed via ? (explicit \'s were being
4980 magic docstrings when printed via ? (explicit \'s were being
4975 printed).
4981 printed).
4976
4982
4977 * IPython/ipmaker.py (make_IPython): fixed namespace
4983 * IPython/ipmaker.py (make_IPython): fixed namespace
4978 identification bug. Now variables loaded via logs or command-line
4984 identification bug. Now variables loaded via logs or command-line
4979 files are recognized in the interactive namespace by @who.
4985 files are recognized in the interactive namespace by @who.
4980
4986
4981 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4987 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4982 log replay system stemming from the string form of Structs.
4988 log replay system stemming from the string form of Structs.
4983
4989
4984 * IPython/Magic.py (Macro.__init__): improved macros to properly
4990 * IPython/Magic.py (Macro.__init__): improved macros to properly
4985 handle magic commands in them.
4991 handle magic commands in them.
4986 (Magic.magic_logstart): usernames are now expanded so 'logstart
4992 (Magic.magic_logstart): usernames are now expanded so 'logstart
4987 ~/mylog' now works.
4993 ~/mylog' now works.
4988
4994
4989 * IPython/iplib.py (complete): fixed bug where paths starting with
4995 * IPython/iplib.py (complete): fixed bug where paths starting with
4990 '/' would be completed as magic names.
4996 '/' would be completed as magic names.
4991
4997
4992 2002-05-04 Fernando Perez <fperez@colorado.edu>
4998 2002-05-04 Fernando Perez <fperez@colorado.edu>
4993
4999
4994 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5000 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4995 allow running full programs under the profiler's control.
5001 allow running full programs under the profiler's control.
4996
5002
4997 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5003 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4998 mode to report exceptions verbosely but without formatting
5004 mode to report exceptions verbosely but without formatting
4999 variables. This addresses the issue of ipython 'freezing' (it's
5005 variables. This addresses the issue of ipython 'freezing' (it's
5000 not frozen, but caught in an expensive formatting loop) when huge
5006 not frozen, but caught in an expensive formatting loop) when huge
5001 variables are in the context of an exception.
5007 variables are in the context of an exception.
5002 (VerboseTB.text): Added '--->' markers at line where exception was
5008 (VerboseTB.text): Added '--->' markers at line where exception was
5003 triggered. Much clearer to read, especially in NoColor modes.
5009 triggered. Much clearer to read, especially in NoColor modes.
5004
5010
5005 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5011 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5006 implemented in reverse when changing to the new parse_options().
5012 implemented in reverse when changing to the new parse_options().
5007
5013
5008 2002-05-03 Fernando Perez <fperez@colorado.edu>
5014 2002-05-03 Fernando Perez <fperez@colorado.edu>
5009
5015
5010 * IPython/Magic.py (Magic.parse_options): new function so that
5016 * IPython/Magic.py (Magic.parse_options): new function so that
5011 magics can parse options easier.
5017 magics can parse options easier.
5012 (Magic.magic_prun): new function similar to profile.run(),
5018 (Magic.magic_prun): new function similar to profile.run(),
5013 suggested by Chris Hart.
5019 suggested by Chris Hart.
5014 (Magic.magic_cd): fixed behavior so that it only changes if
5020 (Magic.magic_cd): fixed behavior so that it only changes if
5015 directory actually is in history.
5021 directory actually is in history.
5016
5022
5017 * IPython/usage.py (__doc__): added information about potential
5023 * IPython/usage.py (__doc__): added information about potential
5018 slowness of Verbose exception mode when there are huge data
5024 slowness of Verbose exception mode when there are huge data
5019 structures to be formatted (thanks to Archie Paulson).
5025 structures to be formatted (thanks to Archie Paulson).
5020
5026
5021 * IPython/ipmaker.py (make_IPython): Changed default logging
5027 * IPython/ipmaker.py (make_IPython): Changed default logging
5022 (when simply called with -log) to use curr_dir/ipython.log in
5028 (when simply called with -log) to use curr_dir/ipython.log in
5023 rotate mode. Fixed crash which was occuring with -log before
5029 rotate mode. Fixed crash which was occuring with -log before
5024 (thanks to Jim Boyle).
5030 (thanks to Jim Boyle).
5025
5031
5026 2002-05-01 Fernando Perez <fperez@colorado.edu>
5032 2002-05-01 Fernando Perez <fperez@colorado.edu>
5027
5033
5028 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5034 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5029 was nasty -- though somewhat of a corner case).
5035 was nasty -- though somewhat of a corner case).
5030
5036
5031 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5037 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5032 text (was a bug).
5038 text (was a bug).
5033
5039
5034 2002-04-30 Fernando Perez <fperez@colorado.edu>
5040 2002-04-30 Fernando Perez <fperez@colorado.edu>
5035
5041
5036 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5042 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5037 a print after ^D or ^C from the user so that the In[] prompt
5043 a print after ^D or ^C from the user so that the In[] prompt
5038 doesn't over-run the gnuplot one.
5044 doesn't over-run the gnuplot one.
5039
5045
5040 2002-04-29 Fernando Perez <fperez@colorado.edu>
5046 2002-04-29 Fernando Perez <fperez@colorado.edu>
5041
5047
5042 * Released 0.2.10
5048 * Released 0.2.10
5043
5049
5044 * IPython/__release__.py (version): get date dynamically.
5050 * IPython/__release__.py (version): get date dynamically.
5045
5051
5046 * Misc. documentation updates thanks to Arnd's comments. Also ran
5052 * Misc. documentation updates thanks to Arnd's comments. Also ran
5047 a full spellcheck on the manual (hadn't been done in a while).
5053 a full spellcheck on the manual (hadn't been done in a while).
5048
5054
5049 2002-04-27 Fernando Perez <fperez@colorado.edu>
5055 2002-04-27 Fernando Perez <fperez@colorado.edu>
5050
5056
5051 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5057 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5052 starting a log in mid-session would reset the input history list.
5058 starting a log in mid-session would reset the input history list.
5053
5059
5054 2002-04-26 Fernando Perez <fperez@colorado.edu>
5060 2002-04-26 Fernando Perez <fperez@colorado.edu>
5055
5061
5056 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5062 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5057 all files were being included in an update. Now anything in
5063 all files were being included in an update. Now anything in
5058 UserConfig that matches [A-Za-z]*.py will go (this excludes
5064 UserConfig that matches [A-Za-z]*.py will go (this excludes
5059 __init__.py)
5065 __init__.py)
5060
5066
5061 2002-04-25 Fernando Perez <fperez@colorado.edu>
5067 2002-04-25 Fernando Perez <fperez@colorado.edu>
5062
5068
5063 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5069 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5064 to __builtins__ so that any form of embedded or imported code can
5070 to __builtins__ so that any form of embedded or imported code can
5065 test for being inside IPython.
5071 test for being inside IPython.
5066
5072
5067 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5073 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5068 changed to GnuplotMagic because it's now an importable module,
5074 changed to GnuplotMagic because it's now an importable module,
5069 this makes the name follow that of the standard Gnuplot module.
5075 this makes the name follow that of the standard Gnuplot module.
5070 GnuplotMagic can now be loaded at any time in mid-session.
5076 GnuplotMagic can now be loaded at any time in mid-session.
5071
5077
5072 2002-04-24 Fernando Perez <fperez@colorado.edu>
5078 2002-04-24 Fernando Perez <fperez@colorado.edu>
5073
5079
5074 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5080 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5075 the globals (IPython has its own namespace) and the
5081 the globals (IPython has its own namespace) and the
5076 PhysicalQuantity stuff is much better anyway.
5082 PhysicalQuantity stuff is much better anyway.
5077
5083
5078 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5084 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5079 embedding example to standard user directory for
5085 embedding example to standard user directory for
5080 distribution. Also put it in the manual.
5086 distribution. Also put it in the manual.
5081
5087
5082 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5088 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5083 instance as first argument (so it doesn't rely on some obscure
5089 instance as first argument (so it doesn't rely on some obscure
5084 hidden global).
5090 hidden global).
5085
5091
5086 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5092 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5087 delimiters. While it prevents ().TAB from working, it allows
5093 delimiters. While it prevents ().TAB from working, it allows
5088 completions in open (... expressions. This is by far a more common
5094 completions in open (... expressions. This is by far a more common
5089 case.
5095 case.
5090
5096
5091 2002-04-23 Fernando Perez <fperez@colorado.edu>
5097 2002-04-23 Fernando Perez <fperez@colorado.edu>
5092
5098
5093 * IPython/Extensions/InterpreterPasteInput.py: new
5099 * IPython/Extensions/InterpreterPasteInput.py: new
5094 syntax-processing module for pasting lines with >>> or ... at the
5100 syntax-processing module for pasting lines with >>> or ... at the
5095 start.
5101 start.
5096
5102
5097 * IPython/Extensions/PhysicalQ_Interactive.py
5103 * IPython/Extensions/PhysicalQ_Interactive.py
5098 (PhysicalQuantityInteractive.__int__): fixed to work with either
5104 (PhysicalQuantityInteractive.__int__): fixed to work with either
5099 Numeric or math.
5105 Numeric or math.
5100
5106
5101 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5107 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5102 provided profiles. Now we have:
5108 provided profiles. Now we have:
5103 -math -> math module as * and cmath with its own namespace.
5109 -math -> math module as * and cmath with its own namespace.
5104 -numeric -> Numeric as *, plus gnuplot & grace
5110 -numeric -> Numeric as *, plus gnuplot & grace
5105 -physics -> same as before
5111 -physics -> same as before
5106
5112
5107 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5113 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5108 user-defined magics wouldn't be found by @magic if they were
5114 user-defined magics wouldn't be found by @magic if they were
5109 defined as class methods. Also cleaned up the namespace search
5115 defined as class methods. Also cleaned up the namespace search
5110 logic and the string building (to use %s instead of many repeated
5116 logic and the string building (to use %s instead of many repeated
5111 string adds).
5117 string adds).
5112
5118
5113 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5119 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5114 of user-defined magics to operate with class methods (cleaner, in
5120 of user-defined magics to operate with class methods (cleaner, in
5115 line with the gnuplot code).
5121 line with the gnuplot code).
5116
5122
5117 2002-04-22 Fernando Perez <fperez@colorado.edu>
5123 2002-04-22 Fernando Perez <fperez@colorado.edu>
5118
5124
5119 * setup.py: updated dependency list so that manual is updated when
5125 * setup.py: updated dependency list so that manual is updated when
5120 all included files change.
5126 all included files change.
5121
5127
5122 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5128 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5123 the delimiter removal option (the fix is ugly right now).
5129 the delimiter removal option (the fix is ugly right now).
5124
5130
5125 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5131 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5126 all of the math profile (quicker loading, no conflict between
5132 all of the math profile (quicker loading, no conflict between
5127 g-9.8 and g-gnuplot).
5133 g-9.8 and g-gnuplot).
5128
5134
5129 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5135 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5130 name of post-mortem files to IPython_crash_report.txt.
5136 name of post-mortem files to IPython_crash_report.txt.
5131
5137
5132 * Cleanup/update of the docs. Added all the new readline info and
5138 * Cleanup/update of the docs. Added all the new readline info and
5133 formatted all lists as 'real lists'.
5139 formatted all lists as 'real lists'.
5134
5140
5135 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5141 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5136 tab-completion options, since the full readline parse_and_bind is
5142 tab-completion options, since the full readline parse_and_bind is
5137 now accessible.
5143 now accessible.
5138
5144
5139 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5145 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5140 handling of readline options. Now users can specify any string to
5146 handling of readline options. Now users can specify any string to
5141 be passed to parse_and_bind(), as well as the delimiters to be
5147 be passed to parse_and_bind(), as well as the delimiters to be
5142 removed.
5148 removed.
5143 (InteractiveShell.__init__): Added __name__ to the global
5149 (InteractiveShell.__init__): Added __name__ to the global
5144 namespace so that things like Itpl which rely on its existence
5150 namespace so that things like Itpl which rely on its existence
5145 don't crash.
5151 don't crash.
5146 (InteractiveShell._prefilter): Defined the default with a _ so
5152 (InteractiveShell._prefilter): Defined the default with a _ so
5147 that prefilter() is easier to override, while the default one
5153 that prefilter() is easier to override, while the default one
5148 remains available.
5154 remains available.
5149
5155
5150 2002-04-18 Fernando Perez <fperez@colorado.edu>
5156 2002-04-18 Fernando Perez <fperez@colorado.edu>
5151
5157
5152 * Added information about pdb in the docs.
5158 * Added information about pdb in the docs.
5153
5159
5154 2002-04-17 Fernando Perez <fperez@colorado.edu>
5160 2002-04-17 Fernando Perez <fperez@colorado.edu>
5155
5161
5156 * IPython/ipmaker.py (make_IPython): added rc_override option to
5162 * IPython/ipmaker.py (make_IPython): added rc_override option to
5157 allow passing config options at creation time which may override
5163 allow passing config options at creation time which may override
5158 anything set in the config files or command line. This is
5164 anything set in the config files or command line. This is
5159 particularly useful for configuring embedded instances.
5165 particularly useful for configuring embedded instances.
5160
5166
5161 2002-04-15 Fernando Perez <fperez@colorado.edu>
5167 2002-04-15 Fernando Perez <fperez@colorado.edu>
5162
5168
5163 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5169 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5164 crash embedded instances because of the input cache falling out of
5170 crash embedded instances because of the input cache falling out of
5165 sync with the output counter.
5171 sync with the output counter.
5166
5172
5167 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5173 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5168 mode which calls pdb after an uncaught exception in IPython itself.
5174 mode which calls pdb after an uncaught exception in IPython itself.
5169
5175
5170 2002-04-14 Fernando Perez <fperez@colorado.edu>
5176 2002-04-14 Fernando Perez <fperez@colorado.edu>
5171
5177
5172 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5178 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5173 readline, fix it back after each call.
5179 readline, fix it back after each call.
5174
5180
5175 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5181 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5176 method to force all access via __call__(), which guarantees that
5182 method to force all access via __call__(), which guarantees that
5177 traceback references are properly deleted.
5183 traceback references are properly deleted.
5178
5184
5179 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5185 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5180 improve printing when pprint is in use.
5186 improve printing when pprint is in use.
5181
5187
5182 2002-04-13 Fernando Perez <fperez@colorado.edu>
5188 2002-04-13 Fernando Perez <fperez@colorado.edu>
5183
5189
5184 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5190 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5185 exceptions aren't caught anymore. If the user triggers one, he
5191 exceptions aren't caught anymore. If the user triggers one, he
5186 should know why he's doing it and it should go all the way up,
5192 should know why he's doing it and it should go all the way up,
5187 just like any other exception. So now @abort will fully kill the
5193 just like any other exception. So now @abort will fully kill the
5188 embedded interpreter and the embedding code (unless that happens
5194 embedded interpreter and the embedding code (unless that happens
5189 to catch SystemExit).
5195 to catch SystemExit).
5190
5196
5191 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5197 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5192 and a debugger() method to invoke the interactive pdb debugger
5198 and a debugger() method to invoke the interactive pdb debugger
5193 after printing exception information. Also added the corresponding
5199 after printing exception information. Also added the corresponding
5194 -pdb option and @pdb magic to control this feature, and updated
5200 -pdb option and @pdb magic to control this feature, and updated
5195 the docs. After a suggestion from Christopher Hart
5201 the docs. After a suggestion from Christopher Hart
5196 (hart-AT-caltech.edu).
5202 (hart-AT-caltech.edu).
5197
5203
5198 2002-04-12 Fernando Perez <fperez@colorado.edu>
5204 2002-04-12 Fernando Perez <fperez@colorado.edu>
5199
5205
5200 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5206 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5201 the exception handlers defined by the user (not the CrashHandler)
5207 the exception handlers defined by the user (not the CrashHandler)
5202 so that user exceptions don't trigger an ipython bug report.
5208 so that user exceptions don't trigger an ipython bug report.
5203
5209
5204 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5210 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5205 configurable (it should have always been so).
5211 configurable (it should have always been so).
5206
5212
5207 2002-03-26 Fernando Perez <fperez@colorado.edu>
5213 2002-03-26 Fernando Perez <fperez@colorado.edu>
5208
5214
5209 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5215 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5210 and there to fix embedding namespace issues. This should all be
5216 and there to fix embedding namespace issues. This should all be
5211 done in a more elegant way.
5217 done in a more elegant way.
5212
5218
5213 2002-03-25 Fernando Perez <fperez@colorado.edu>
5219 2002-03-25 Fernando Perez <fperez@colorado.edu>
5214
5220
5215 * IPython/genutils.py (get_home_dir): Try to make it work under
5221 * IPython/genutils.py (get_home_dir): Try to make it work under
5216 win9x also.
5222 win9x also.
5217
5223
5218 2002-03-20 Fernando Perez <fperez@colorado.edu>
5224 2002-03-20 Fernando Perez <fperez@colorado.edu>
5219
5225
5220 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5226 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5221 sys.displayhook untouched upon __init__.
5227 sys.displayhook untouched upon __init__.
5222
5228
5223 2002-03-19 Fernando Perez <fperez@colorado.edu>
5229 2002-03-19 Fernando Perez <fperez@colorado.edu>
5224
5230
5225 * Released 0.2.9 (for embedding bug, basically).
5231 * Released 0.2.9 (for embedding bug, basically).
5226
5232
5227 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5233 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5228 exceptions so that enclosing shell's state can be restored.
5234 exceptions so that enclosing shell's state can be restored.
5229
5235
5230 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5236 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5231 naming conventions in the .ipython/ dir.
5237 naming conventions in the .ipython/ dir.
5232
5238
5233 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5239 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5234 from delimiters list so filenames with - in them get expanded.
5240 from delimiters list so filenames with - in them get expanded.
5235
5241
5236 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5242 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5237 sys.displayhook not being properly restored after an embedded call.
5243 sys.displayhook not being properly restored after an embedded call.
5238
5244
5239 2002-03-18 Fernando Perez <fperez@colorado.edu>
5245 2002-03-18 Fernando Perez <fperez@colorado.edu>
5240
5246
5241 * Released 0.2.8
5247 * Released 0.2.8
5242
5248
5243 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5249 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5244 some files weren't being included in a -upgrade.
5250 some files weren't being included in a -upgrade.
5245 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5251 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5246 on' so that the first tab completes.
5252 on' so that the first tab completes.
5247 (InteractiveShell.handle_magic): fixed bug with spaces around
5253 (InteractiveShell.handle_magic): fixed bug with spaces around
5248 quotes breaking many magic commands.
5254 quotes breaking many magic commands.
5249
5255
5250 * setup.py: added note about ignoring the syntax error messages at
5256 * setup.py: added note about ignoring the syntax error messages at
5251 installation.
5257 installation.
5252
5258
5253 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5259 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5254 streamlining the gnuplot interface, now there's only one magic @gp.
5260 streamlining the gnuplot interface, now there's only one magic @gp.
5255
5261
5256 2002-03-17 Fernando Perez <fperez@colorado.edu>
5262 2002-03-17 Fernando Perez <fperez@colorado.edu>
5257
5263
5258 * IPython/UserConfig/magic_gnuplot.py: new name for the
5264 * IPython/UserConfig/magic_gnuplot.py: new name for the
5259 example-magic_pm.py file. Much enhanced system, now with a shell
5265 example-magic_pm.py file. Much enhanced system, now with a shell
5260 for communicating directly with gnuplot, one command at a time.
5266 for communicating directly with gnuplot, one command at a time.
5261
5267
5262 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5268 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5263 setting __name__=='__main__'.
5269 setting __name__=='__main__'.
5264
5270
5265 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5271 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5266 mini-shell for accessing gnuplot from inside ipython. Should
5272 mini-shell for accessing gnuplot from inside ipython. Should
5267 extend it later for grace access too. Inspired by Arnd's
5273 extend it later for grace access too. Inspired by Arnd's
5268 suggestion.
5274 suggestion.
5269
5275
5270 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5276 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5271 calling magic functions with () in their arguments. Thanks to Arnd
5277 calling magic functions with () in their arguments. Thanks to Arnd
5272 Baecker for pointing this to me.
5278 Baecker for pointing this to me.
5273
5279
5274 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5280 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5275 infinitely for integer or complex arrays (only worked with floats).
5281 infinitely for integer or complex arrays (only worked with floats).
5276
5282
5277 2002-03-16 Fernando Perez <fperez@colorado.edu>
5283 2002-03-16 Fernando Perez <fperez@colorado.edu>
5278
5284
5279 * setup.py: Merged setup and setup_windows into a single script
5285 * setup.py: Merged setup and setup_windows into a single script
5280 which properly handles things for windows users.
5286 which properly handles things for windows users.
5281
5287
5282 2002-03-15 Fernando Perez <fperez@colorado.edu>
5288 2002-03-15 Fernando Perez <fperez@colorado.edu>
5283
5289
5284 * Big change to the manual: now the magics are all automatically
5290 * Big change to the manual: now the magics are all automatically
5285 documented. This information is generated from their docstrings
5291 documented. This information is generated from their docstrings
5286 and put in a latex file included by the manual lyx file. This way
5292 and put in a latex file included by the manual lyx file. This way
5287 we get always up to date information for the magics. The manual
5293 we get always up to date information for the magics. The manual
5288 now also has proper version information, also auto-synced.
5294 now also has proper version information, also auto-synced.
5289
5295
5290 For this to work, an undocumented --magic_docstrings option was added.
5296 For this to work, an undocumented --magic_docstrings option was added.
5291
5297
5292 2002-03-13 Fernando Perez <fperez@colorado.edu>
5298 2002-03-13 Fernando Perez <fperez@colorado.edu>
5293
5299
5294 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5300 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5295 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5301 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5296
5302
5297 2002-03-12 Fernando Perez <fperez@colorado.edu>
5303 2002-03-12 Fernando Perez <fperez@colorado.edu>
5298
5304
5299 * IPython/ultraTB.py (TermColors): changed color escapes again to
5305 * IPython/ultraTB.py (TermColors): changed color escapes again to
5300 fix the (old, reintroduced) line-wrapping bug. Basically, if
5306 fix the (old, reintroduced) line-wrapping bug. Basically, if
5301 \001..\002 aren't given in the color escapes, lines get wrapped
5307 \001..\002 aren't given in the color escapes, lines get wrapped
5302 weirdly. But giving those screws up old xterms and emacs terms. So
5308 weirdly. But giving those screws up old xterms and emacs terms. So
5303 I added some logic for emacs terms to be ok, but I can't identify old
5309 I added some logic for emacs terms to be ok, but I can't identify old
5304 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5310 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5305
5311
5306 2002-03-10 Fernando Perez <fperez@colorado.edu>
5312 2002-03-10 Fernando Perez <fperez@colorado.edu>
5307
5313
5308 * IPython/usage.py (__doc__): Various documentation cleanups and
5314 * IPython/usage.py (__doc__): Various documentation cleanups and
5309 updates, both in usage docstrings and in the manual.
5315 updates, both in usage docstrings and in the manual.
5310
5316
5311 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5317 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5312 handling of caching. Set minimum acceptabe value for having a
5318 handling of caching. Set minimum acceptabe value for having a
5313 cache at 20 values.
5319 cache at 20 values.
5314
5320
5315 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5321 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5316 install_first_time function to a method, renamed it and added an
5322 install_first_time function to a method, renamed it and added an
5317 'upgrade' mode. Now people can update their config directory with
5323 'upgrade' mode. Now people can update their config directory with
5318 a simple command line switch (-upgrade, also new).
5324 a simple command line switch (-upgrade, also new).
5319
5325
5320 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5326 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5321 @file (convenient for automagic users under Python >= 2.2).
5327 @file (convenient for automagic users under Python >= 2.2).
5322 Removed @files (it seemed more like a plural than an abbrev. of
5328 Removed @files (it seemed more like a plural than an abbrev. of
5323 'file show').
5329 'file show').
5324
5330
5325 * IPython/iplib.py (install_first_time): Fixed crash if there were
5331 * IPython/iplib.py (install_first_time): Fixed crash if there were
5326 backup files ('~') in .ipython/ install directory.
5332 backup files ('~') in .ipython/ install directory.
5327
5333
5328 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5334 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5329 system. Things look fine, but these changes are fairly
5335 system. Things look fine, but these changes are fairly
5330 intrusive. Test them for a few days.
5336 intrusive. Test them for a few days.
5331
5337
5332 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5338 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5333 the prompts system. Now all in/out prompt strings are user
5339 the prompts system. Now all in/out prompt strings are user
5334 controllable. This is particularly useful for embedding, as one
5340 controllable. This is particularly useful for embedding, as one
5335 can tag embedded instances with particular prompts.
5341 can tag embedded instances with particular prompts.
5336
5342
5337 Also removed global use of sys.ps1/2, which now allows nested
5343 Also removed global use of sys.ps1/2, which now allows nested
5338 embeddings without any problems. Added command-line options for
5344 embeddings without any problems. Added command-line options for
5339 the prompt strings.
5345 the prompt strings.
5340
5346
5341 2002-03-08 Fernando Perez <fperez@colorado.edu>
5347 2002-03-08 Fernando Perez <fperez@colorado.edu>
5342
5348
5343 * IPython/UserConfig/example-embed-short.py (ipshell): added
5349 * IPython/UserConfig/example-embed-short.py (ipshell): added
5344 example file with the bare minimum code for embedding.
5350 example file with the bare minimum code for embedding.
5345
5351
5346 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5352 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5347 functionality for the embeddable shell to be activated/deactivated
5353 functionality for the embeddable shell to be activated/deactivated
5348 either globally or at each call.
5354 either globally or at each call.
5349
5355
5350 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5356 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5351 rewriting the prompt with '--->' for auto-inputs with proper
5357 rewriting the prompt with '--->' for auto-inputs with proper
5352 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5358 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5353 this is handled by the prompts class itself, as it should.
5359 this is handled by the prompts class itself, as it should.
5354
5360
5355 2002-03-05 Fernando Perez <fperez@colorado.edu>
5361 2002-03-05 Fernando Perez <fperez@colorado.edu>
5356
5362
5357 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5363 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5358 @logstart to avoid name clashes with the math log function.
5364 @logstart to avoid name clashes with the math log function.
5359
5365
5360 * Big updates to X/Emacs section of the manual.
5366 * Big updates to X/Emacs section of the manual.
5361
5367
5362 * Removed ipython_emacs. Milan explained to me how to pass
5368 * Removed ipython_emacs. Milan explained to me how to pass
5363 arguments to ipython through Emacs. Some day I'm going to end up
5369 arguments to ipython through Emacs. Some day I'm going to end up
5364 learning some lisp...
5370 learning some lisp...
5365
5371
5366 2002-03-04 Fernando Perez <fperez@colorado.edu>
5372 2002-03-04 Fernando Perez <fperez@colorado.edu>
5367
5373
5368 * IPython/ipython_emacs: Created script to be used as the
5374 * IPython/ipython_emacs: Created script to be used as the
5369 py-python-command Emacs variable so we can pass IPython
5375 py-python-command Emacs variable so we can pass IPython
5370 parameters. I can't figure out how to tell Emacs directly to pass
5376 parameters. I can't figure out how to tell Emacs directly to pass
5371 parameters to IPython, so a dummy shell script will do it.
5377 parameters to IPython, so a dummy shell script will do it.
5372
5378
5373 Other enhancements made for things to work better under Emacs'
5379 Other enhancements made for things to work better under Emacs'
5374 various types of terminals. Many thanks to Milan Zamazal
5380 various types of terminals. Many thanks to Milan Zamazal
5375 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5381 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5376
5382
5377 2002-03-01 Fernando Perez <fperez@colorado.edu>
5383 2002-03-01 Fernando Perez <fperez@colorado.edu>
5378
5384
5379 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5385 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5380 that loading of readline is now optional. This gives better
5386 that loading of readline is now optional. This gives better
5381 control to emacs users.
5387 control to emacs users.
5382
5388
5383 * IPython/ultraTB.py (__date__): Modified color escape sequences
5389 * IPython/ultraTB.py (__date__): Modified color escape sequences
5384 and now things work fine under xterm and in Emacs' term buffers
5390 and now things work fine under xterm and in Emacs' term buffers
5385 (though not shell ones). Well, in emacs you get colors, but all
5391 (though not shell ones). Well, in emacs you get colors, but all
5386 seem to be 'light' colors (no difference between dark and light
5392 seem to be 'light' colors (no difference between dark and light
5387 ones). But the garbage chars are gone, and also in xterms. It
5393 ones). But the garbage chars are gone, and also in xterms. It
5388 seems that now I'm using 'cleaner' ansi sequences.
5394 seems that now I'm using 'cleaner' ansi sequences.
5389
5395
5390 2002-02-21 Fernando Perez <fperez@colorado.edu>
5396 2002-02-21 Fernando Perez <fperez@colorado.edu>
5391
5397
5392 * Released 0.2.7 (mainly to publish the scoping fix).
5398 * Released 0.2.7 (mainly to publish the scoping fix).
5393
5399
5394 * IPython/Logger.py (Logger.logstate): added. A corresponding
5400 * IPython/Logger.py (Logger.logstate): added. A corresponding
5395 @logstate magic was created.
5401 @logstate magic was created.
5396
5402
5397 * IPython/Magic.py: fixed nested scoping problem under Python
5403 * IPython/Magic.py: fixed nested scoping problem under Python
5398 2.1.x (automagic wasn't working).
5404 2.1.x (automagic wasn't working).
5399
5405
5400 2002-02-20 Fernando Perez <fperez@colorado.edu>
5406 2002-02-20 Fernando Perez <fperez@colorado.edu>
5401
5407
5402 * Released 0.2.6.
5408 * Released 0.2.6.
5403
5409
5404 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5410 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5405 option so that logs can come out without any headers at all.
5411 option so that logs can come out without any headers at all.
5406
5412
5407 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5413 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5408 SciPy.
5414 SciPy.
5409
5415
5410 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5416 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5411 that embedded IPython calls don't require vars() to be explicitly
5417 that embedded IPython calls don't require vars() to be explicitly
5412 passed. Now they are extracted from the caller's frame (code
5418 passed. Now they are extracted from the caller's frame (code
5413 snatched from Eric Jones' weave). Added better documentation to
5419 snatched from Eric Jones' weave). Added better documentation to
5414 the section on embedding and the example file.
5420 the section on embedding and the example file.
5415
5421
5416 * IPython/genutils.py (page): Changed so that under emacs, it just
5422 * IPython/genutils.py (page): Changed so that under emacs, it just
5417 prints the string. You can then page up and down in the emacs
5423 prints the string. You can then page up and down in the emacs
5418 buffer itself. This is how the builtin help() works.
5424 buffer itself. This is how the builtin help() works.
5419
5425
5420 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5426 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5421 macro scoping: macros need to be executed in the user's namespace
5427 macro scoping: macros need to be executed in the user's namespace
5422 to work as if they had been typed by the user.
5428 to work as if they had been typed by the user.
5423
5429
5424 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5430 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5425 execute automatically (no need to type 'exec...'). They then
5431 execute automatically (no need to type 'exec...'). They then
5426 behave like 'true macros'. The printing system was also modified
5432 behave like 'true macros'. The printing system was also modified
5427 for this to work.
5433 for this to work.
5428
5434
5429 2002-02-19 Fernando Perez <fperez@colorado.edu>
5435 2002-02-19 Fernando Perez <fperez@colorado.edu>
5430
5436
5431 * IPython/genutils.py (page_file): new function for paging files
5437 * IPython/genutils.py (page_file): new function for paging files
5432 in an OS-independent way. Also necessary for file viewing to work
5438 in an OS-independent way. Also necessary for file viewing to work
5433 well inside Emacs buffers.
5439 well inside Emacs buffers.
5434 (page): Added checks for being in an emacs buffer.
5440 (page): Added checks for being in an emacs buffer.
5435 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5441 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5436 same bug in iplib.
5442 same bug in iplib.
5437
5443
5438 2002-02-18 Fernando Perez <fperez@colorado.edu>
5444 2002-02-18 Fernando Perez <fperez@colorado.edu>
5439
5445
5440 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5446 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5441 of readline so that IPython can work inside an Emacs buffer.
5447 of readline so that IPython can work inside an Emacs buffer.
5442
5448
5443 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5449 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5444 method signatures (they weren't really bugs, but it looks cleaner
5450 method signatures (they weren't really bugs, but it looks cleaner
5445 and keeps PyChecker happy).
5451 and keeps PyChecker happy).
5446
5452
5447 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5453 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5448 for implementing various user-defined hooks. Currently only
5454 for implementing various user-defined hooks. Currently only
5449 display is done.
5455 display is done.
5450
5456
5451 * IPython/Prompts.py (CachedOutput._display): changed display
5457 * IPython/Prompts.py (CachedOutput._display): changed display
5452 functions so that they can be dynamically changed by users easily.
5458 functions so that they can be dynamically changed by users easily.
5453
5459
5454 * IPython/Extensions/numeric_formats.py (num_display): added an
5460 * IPython/Extensions/numeric_formats.py (num_display): added an
5455 extension for printing NumPy arrays in flexible manners. It
5461 extension for printing NumPy arrays in flexible manners. It
5456 doesn't do anything yet, but all the structure is in
5462 doesn't do anything yet, but all the structure is in
5457 place. Ultimately the plan is to implement output format control
5463 place. Ultimately the plan is to implement output format control
5458 like in Octave.
5464 like in Octave.
5459
5465
5460 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5466 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5461 methods are found at run-time by all the automatic machinery.
5467 methods are found at run-time by all the automatic machinery.
5462
5468
5463 2002-02-17 Fernando Perez <fperez@colorado.edu>
5469 2002-02-17 Fernando Perez <fperez@colorado.edu>
5464
5470
5465 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5471 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5466 whole file a little.
5472 whole file a little.
5467
5473
5468 * ToDo: closed this document. Now there's a new_design.lyx
5474 * ToDo: closed this document. Now there's a new_design.lyx
5469 document for all new ideas. Added making a pdf of it for the
5475 document for all new ideas. Added making a pdf of it for the
5470 end-user distro.
5476 end-user distro.
5471
5477
5472 * IPython/Logger.py (Logger.switch_log): Created this to replace
5478 * IPython/Logger.py (Logger.switch_log): Created this to replace
5473 logon() and logoff(). It also fixes a nasty crash reported by
5479 logon() and logoff(). It also fixes a nasty crash reported by
5474 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5480 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5475
5481
5476 * IPython/iplib.py (complete): got auto-completion to work with
5482 * IPython/iplib.py (complete): got auto-completion to work with
5477 automagic (I had wanted this for a long time).
5483 automagic (I had wanted this for a long time).
5478
5484
5479 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5485 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5480 to @file, since file() is now a builtin and clashes with automagic
5486 to @file, since file() is now a builtin and clashes with automagic
5481 for @file.
5487 for @file.
5482
5488
5483 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5489 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5484 of this was previously in iplib, which had grown to more than 2000
5490 of this was previously in iplib, which had grown to more than 2000
5485 lines, way too long. No new functionality, but it makes managing
5491 lines, way too long. No new functionality, but it makes managing
5486 the code a bit easier.
5492 the code a bit easier.
5487
5493
5488 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5494 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5489 information to crash reports.
5495 information to crash reports.
5490
5496
5491 2002-02-12 Fernando Perez <fperez@colorado.edu>
5497 2002-02-12 Fernando Perez <fperez@colorado.edu>
5492
5498
5493 * Released 0.2.5.
5499 * Released 0.2.5.
5494
5500
5495 2002-02-11 Fernando Perez <fperez@colorado.edu>
5501 2002-02-11 Fernando Perez <fperez@colorado.edu>
5496
5502
5497 * Wrote a relatively complete Windows installer. It puts
5503 * Wrote a relatively complete Windows installer. It puts
5498 everything in place, creates Start Menu entries and fixes the
5504 everything in place, creates Start Menu entries and fixes the
5499 color issues. Nothing fancy, but it works.
5505 color issues. Nothing fancy, but it works.
5500
5506
5501 2002-02-10 Fernando Perez <fperez@colorado.edu>
5507 2002-02-10 Fernando Perez <fperez@colorado.edu>
5502
5508
5503 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5509 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5504 os.path.expanduser() call so that we can type @run ~/myfile.py and
5510 os.path.expanduser() call so that we can type @run ~/myfile.py and
5505 have thigs work as expected.
5511 have thigs work as expected.
5506
5512
5507 * IPython/genutils.py (page): fixed exception handling so things
5513 * IPython/genutils.py (page): fixed exception handling so things
5508 work both in Unix and Windows correctly. Quitting a pager triggers
5514 work both in Unix and Windows correctly. Quitting a pager triggers
5509 an IOError/broken pipe in Unix, and in windows not finding a pager
5515 an IOError/broken pipe in Unix, and in windows not finding a pager
5510 is also an IOError, so I had to actually look at the return value
5516 is also an IOError, so I had to actually look at the return value
5511 of the exception, not just the exception itself. Should be ok now.
5517 of the exception, not just the exception itself. Should be ok now.
5512
5518
5513 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5519 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5514 modified to allow case-insensitive color scheme changes.
5520 modified to allow case-insensitive color scheme changes.
5515
5521
5516 2002-02-09 Fernando Perez <fperez@colorado.edu>
5522 2002-02-09 Fernando Perez <fperez@colorado.edu>
5517
5523
5518 * IPython/genutils.py (native_line_ends): new function to leave
5524 * IPython/genutils.py (native_line_ends): new function to leave
5519 user config files with os-native line-endings.
5525 user config files with os-native line-endings.
5520
5526
5521 * README and manual updates.
5527 * README and manual updates.
5522
5528
5523 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5529 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5524 instead of StringType to catch Unicode strings.
5530 instead of StringType to catch Unicode strings.
5525
5531
5526 * IPython/genutils.py (filefind): fixed bug for paths with
5532 * IPython/genutils.py (filefind): fixed bug for paths with
5527 embedded spaces (very common in Windows).
5533 embedded spaces (very common in Windows).
5528
5534
5529 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5535 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5530 files under Windows, so that they get automatically associated
5536 files under Windows, so that they get automatically associated
5531 with a text editor. Windows makes it a pain to handle
5537 with a text editor. Windows makes it a pain to handle
5532 extension-less files.
5538 extension-less files.
5533
5539
5534 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5540 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5535 warning about readline only occur for Posix. In Windows there's no
5541 warning about readline only occur for Posix. In Windows there's no
5536 way to get readline, so why bother with the warning.
5542 way to get readline, so why bother with the warning.
5537
5543
5538 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5544 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5539 for __str__ instead of dir(self), since dir() changed in 2.2.
5545 for __str__ instead of dir(self), since dir() changed in 2.2.
5540
5546
5541 * Ported to Windows! Tested on XP, I suspect it should work fine
5547 * Ported to Windows! Tested on XP, I suspect it should work fine
5542 on NT/2000, but I don't think it will work on 98 et al. That
5548 on NT/2000, but I don't think it will work on 98 et al. That
5543 series of Windows is such a piece of junk anyway that I won't try
5549 series of Windows is such a piece of junk anyway that I won't try
5544 porting it there. The XP port was straightforward, showed a few
5550 porting it there. The XP port was straightforward, showed a few
5545 bugs here and there (fixed all), in particular some string
5551 bugs here and there (fixed all), in particular some string
5546 handling stuff which required considering Unicode strings (which
5552 handling stuff which required considering Unicode strings (which
5547 Windows uses). This is good, but hasn't been too tested :) No
5553 Windows uses). This is good, but hasn't been too tested :) No
5548 fancy installer yet, I'll put a note in the manual so people at
5554 fancy installer yet, I'll put a note in the manual so people at
5549 least make manually a shortcut.
5555 least make manually a shortcut.
5550
5556
5551 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5557 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5552 into a single one, "colors". This now controls both prompt and
5558 into a single one, "colors". This now controls both prompt and
5553 exception color schemes, and can be changed both at startup
5559 exception color schemes, and can be changed both at startup
5554 (either via command-line switches or via ipythonrc files) and at
5560 (either via command-line switches or via ipythonrc files) and at
5555 runtime, with @colors.
5561 runtime, with @colors.
5556 (Magic.magic_run): renamed @prun to @run and removed the old
5562 (Magic.magic_run): renamed @prun to @run and removed the old
5557 @run. The two were too similar to warrant keeping both.
5563 @run. The two were too similar to warrant keeping both.
5558
5564
5559 2002-02-03 Fernando Perez <fperez@colorado.edu>
5565 2002-02-03 Fernando Perez <fperez@colorado.edu>
5560
5566
5561 * IPython/iplib.py (install_first_time): Added comment on how to
5567 * IPython/iplib.py (install_first_time): Added comment on how to
5562 configure the color options for first-time users. Put a <return>
5568 configure the color options for first-time users. Put a <return>
5563 request at the end so that small-terminal users get a chance to
5569 request at the end so that small-terminal users get a chance to
5564 read the startup info.
5570 read the startup info.
5565
5571
5566 2002-01-23 Fernando Perez <fperez@colorado.edu>
5572 2002-01-23 Fernando Perez <fperez@colorado.edu>
5567
5573
5568 * IPython/iplib.py (CachedOutput.update): Changed output memory
5574 * IPython/iplib.py (CachedOutput.update): Changed output memory
5569 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5575 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5570 input history we still use _i. Did this b/c these variable are
5576 input history we still use _i. Did this b/c these variable are
5571 very commonly used in interactive work, so the less we need to
5577 very commonly used in interactive work, so the less we need to
5572 type the better off we are.
5578 type the better off we are.
5573 (Magic.magic_prun): updated @prun to better handle the namespaces
5579 (Magic.magic_prun): updated @prun to better handle the namespaces
5574 the file will run in, including a fix for __name__ not being set
5580 the file will run in, including a fix for __name__ not being set
5575 before.
5581 before.
5576
5582
5577 2002-01-20 Fernando Perez <fperez@colorado.edu>
5583 2002-01-20 Fernando Perez <fperez@colorado.edu>
5578
5584
5579 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5585 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5580 extra garbage for Python 2.2. Need to look more carefully into
5586 extra garbage for Python 2.2. Need to look more carefully into
5581 this later.
5587 this later.
5582
5588
5583 2002-01-19 Fernando Perez <fperez@colorado.edu>
5589 2002-01-19 Fernando Perez <fperez@colorado.edu>
5584
5590
5585 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5591 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5586 display SyntaxError exceptions properly formatted when they occur
5592 display SyntaxError exceptions properly formatted when they occur
5587 (they can be triggered by imported code).
5593 (they can be triggered by imported code).
5588
5594
5589 2002-01-18 Fernando Perez <fperez@colorado.edu>
5595 2002-01-18 Fernando Perez <fperez@colorado.edu>
5590
5596
5591 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5597 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5592 SyntaxError exceptions are reported nicely formatted, instead of
5598 SyntaxError exceptions are reported nicely formatted, instead of
5593 spitting out only offset information as before.
5599 spitting out only offset information as before.
5594 (Magic.magic_prun): Added the @prun function for executing
5600 (Magic.magic_prun): Added the @prun function for executing
5595 programs with command line args inside IPython.
5601 programs with command line args inside IPython.
5596
5602
5597 2002-01-16 Fernando Perez <fperez@colorado.edu>
5603 2002-01-16 Fernando Perez <fperez@colorado.edu>
5598
5604
5599 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5605 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5600 to *not* include the last item given in a range. This brings their
5606 to *not* include the last item given in a range. This brings their
5601 behavior in line with Python's slicing:
5607 behavior in line with Python's slicing:
5602 a[n1:n2] -> a[n1]...a[n2-1]
5608 a[n1:n2] -> a[n1]...a[n2-1]
5603 It may be a bit less convenient, but I prefer to stick to Python's
5609 It may be a bit less convenient, but I prefer to stick to Python's
5604 conventions *everywhere*, so users never have to wonder.
5610 conventions *everywhere*, so users never have to wonder.
5605 (Magic.magic_macro): Added @macro function to ease the creation of
5611 (Magic.magic_macro): Added @macro function to ease the creation of
5606 macros.
5612 macros.
5607
5613
5608 2002-01-05 Fernando Perez <fperez@colorado.edu>
5614 2002-01-05 Fernando Perez <fperez@colorado.edu>
5609
5615
5610 * Released 0.2.4.
5616 * Released 0.2.4.
5611
5617
5612 * IPython/iplib.py (Magic.magic_pdef):
5618 * IPython/iplib.py (Magic.magic_pdef):
5613 (InteractiveShell.safe_execfile): report magic lines and error
5619 (InteractiveShell.safe_execfile): report magic lines and error
5614 lines without line numbers so one can easily copy/paste them for
5620 lines without line numbers so one can easily copy/paste them for
5615 re-execution.
5621 re-execution.
5616
5622
5617 * Updated manual with recent changes.
5623 * Updated manual with recent changes.
5618
5624
5619 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5625 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5620 docstring printing when class? is called. Very handy for knowing
5626 docstring printing when class? is called. Very handy for knowing
5621 how to create class instances (as long as __init__ is well
5627 how to create class instances (as long as __init__ is well
5622 documented, of course :)
5628 documented, of course :)
5623 (Magic.magic_doc): print both class and constructor docstrings.
5629 (Magic.magic_doc): print both class and constructor docstrings.
5624 (Magic.magic_pdef): give constructor info if passed a class and
5630 (Magic.magic_pdef): give constructor info if passed a class and
5625 __call__ info for callable object instances.
5631 __call__ info for callable object instances.
5626
5632
5627 2002-01-04 Fernando Perez <fperez@colorado.edu>
5633 2002-01-04 Fernando Perez <fperez@colorado.edu>
5628
5634
5629 * Made deep_reload() off by default. It doesn't always work
5635 * Made deep_reload() off by default. It doesn't always work
5630 exactly as intended, so it's probably safer to have it off. It's
5636 exactly as intended, so it's probably safer to have it off. It's
5631 still available as dreload() anyway, so nothing is lost.
5637 still available as dreload() anyway, so nothing is lost.
5632
5638
5633 2002-01-02 Fernando Perez <fperez@colorado.edu>
5639 2002-01-02 Fernando Perez <fperez@colorado.edu>
5634
5640
5635 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5641 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5636 so I wanted an updated release).
5642 so I wanted an updated release).
5637
5643
5638 2001-12-27 Fernando Perez <fperez@colorado.edu>
5644 2001-12-27 Fernando Perez <fperez@colorado.edu>
5639
5645
5640 * IPython/iplib.py (InteractiveShell.interact): Added the original
5646 * IPython/iplib.py (InteractiveShell.interact): Added the original
5641 code from 'code.py' for this module in order to change the
5647 code from 'code.py' for this module in order to change the
5642 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5648 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5643 the history cache would break when the user hit Ctrl-C, and
5649 the history cache would break when the user hit Ctrl-C, and
5644 interact() offers no way to add any hooks to it.
5650 interact() offers no way to add any hooks to it.
5645
5651
5646 2001-12-23 Fernando Perez <fperez@colorado.edu>
5652 2001-12-23 Fernando Perez <fperez@colorado.edu>
5647
5653
5648 * setup.py: added check for 'MANIFEST' before trying to remove
5654 * setup.py: added check for 'MANIFEST' before trying to remove
5649 it. Thanks to Sean Reifschneider.
5655 it. Thanks to Sean Reifschneider.
5650
5656
5651 2001-12-22 Fernando Perez <fperez@colorado.edu>
5657 2001-12-22 Fernando Perez <fperez@colorado.edu>
5652
5658
5653 * Released 0.2.2.
5659 * Released 0.2.2.
5654
5660
5655 * Finished (reasonably) writing the manual. Later will add the
5661 * Finished (reasonably) writing the manual. Later will add the
5656 python-standard navigation stylesheets, but for the time being
5662 python-standard navigation stylesheets, but for the time being
5657 it's fairly complete. Distribution will include html and pdf
5663 it's fairly complete. Distribution will include html and pdf
5658 versions.
5664 versions.
5659
5665
5660 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5666 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5661 (MayaVi author).
5667 (MayaVi author).
5662
5668
5663 2001-12-21 Fernando Perez <fperez@colorado.edu>
5669 2001-12-21 Fernando Perez <fperez@colorado.edu>
5664
5670
5665 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5671 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5666 good public release, I think (with the manual and the distutils
5672 good public release, I think (with the manual and the distutils
5667 installer). The manual can use some work, but that can go
5673 installer). The manual can use some work, but that can go
5668 slowly. Otherwise I think it's quite nice for end users. Next
5674 slowly. Otherwise I think it's quite nice for end users. Next
5669 summer, rewrite the guts of it...
5675 summer, rewrite the guts of it...
5670
5676
5671 * Changed format of ipythonrc files to use whitespace as the
5677 * Changed format of ipythonrc files to use whitespace as the
5672 separator instead of an explicit '='. Cleaner.
5678 separator instead of an explicit '='. Cleaner.
5673
5679
5674 2001-12-20 Fernando Perez <fperez@colorado.edu>
5680 2001-12-20 Fernando Perez <fperez@colorado.edu>
5675
5681
5676 * Started a manual in LyX. For now it's just a quick merge of the
5682 * Started a manual in LyX. For now it's just a quick merge of the
5677 various internal docstrings and READMEs. Later it may grow into a
5683 various internal docstrings and READMEs. Later it may grow into a
5678 nice, full-blown manual.
5684 nice, full-blown manual.
5679
5685
5680 * Set up a distutils based installer. Installation should now be
5686 * Set up a distutils based installer. Installation should now be
5681 trivially simple for end-users.
5687 trivially simple for end-users.
5682
5688
5683 2001-12-11 Fernando Perez <fperez@colorado.edu>
5689 2001-12-11 Fernando Perez <fperez@colorado.edu>
5684
5690
5685 * Released 0.2.0. First public release, announced it at
5691 * Released 0.2.0. First public release, announced it at
5686 comp.lang.python. From now on, just bugfixes...
5692 comp.lang.python. From now on, just bugfixes...
5687
5693
5688 * Went through all the files, set copyright/license notices and
5694 * Went through all the files, set copyright/license notices and
5689 cleaned up things. Ready for release.
5695 cleaned up things. Ready for release.
5690
5696
5691 2001-12-10 Fernando Perez <fperez@colorado.edu>
5697 2001-12-10 Fernando Perez <fperez@colorado.edu>
5692
5698
5693 * Changed the first-time installer not to use tarfiles. It's more
5699 * Changed the first-time installer not to use tarfiles. It's more
5694 robust now and less unix-dependent. Also makes it easier for
5700 robust now and less unix-dependent. Also makes it easier for
5695 people to later upgrade versions.
5701 people to later upgrade versions.
5696
5702
5697 * Changed @exit to @abort to reflect the fact that it's pretty
5703 * Changed @exit to @abort to reflect the fact that it's pretty
5698 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5704 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5699 becomes significant only when IPyhton is embedded: in that case,
5705 becomes significant only when IPyhton is embedded: in that case,
5700 C-D closes IPython only, but @abort kills the enclosing program
5706 C-D closes IPython only, but @abort kills the enclosing program
5701 too (unless it had called IPython inside a try catching
5707 too (unless it had called IPython inside a try catching
5702 SystemExit).
5708 SystemExit).
5703
5709
5704 * Created Shell module which exposes the actuall IPython Shell
5710 * Created Shell module which exposes the actuall IPython Shell
5705 classes, currently the normal and the embeddable one. This at
5711 classes, currently the normal and the embeddable one. This at
5706 least offers a stable interface we won't need to change when
5712 least offers a stable interface we won't need to change when
5707 (later) the internals are rewritten. That rewrite will be confined
5713 (later) the internals are rewritten. That rewrite will be confined
5708 to iplib and ipmaker, but the Shell interface should remain as is.
5714 to iplib and ipmaker, but the Shell interface should remain as is.
5709
5715
5710 * Added embed module which offers an embeddable IPShell object,
5716 * Added embed module which offers an embeddable IPShell object,
5711 useful to fire up IPython *inside* a running program. Great for
5717 useful to fire up IPython *inside* a running program. Great for
5712 debugging or dynamical data analysis.
5718 debugging or dynamical data analysis.
5713
5719
5714 2001-12-08 Fernando Perez <fperez@colorado.edu>
5720 2001-12-08 Fernando Perez <fperez@colorado.edu>
5715
5721
5716 * Fixed small bug preventing seeing info from methods of defined
5722 * Fixed small bug preventing seeing info from methods of defined
5717 objects (incorrect namespace in _ofind()).
5723 objects (incorrect namespace in _ofind()).
5718
5724
5719 * Documentation cleanup. Moved the main usage docstrings to a
5725 * Documentation cleanup. Moved the main usage docstrings to a
5720 separate file, usage.py (cleaner to maintain, and hopefully in the
5726 separate file, usage.py (cleaner to maintain, and hopefully in the
5721 future some perlpod-like way of producing interactive, man and
5727 future some perlpod-like way of producing interactive, man and
5722 html docs out of it will be found).
5728 html docs out of it will be found).
5723
5729
5724 * Added @profile to see your profile at any time.
5730 * Added @profile to see your profile at any time.
5725
5731
5726 * Added @p as an alias for 'print'. It's especially convenient if
5732 * Added @p as an alias for 'print'. It's especially convenient if
5727 using automagic ('p x' prints x).
5733 using automagic ('p x' prints x).
5728
5734
5729 * Small cleanups and fixes after a pychecker run.
5735 * Small cleanups and fixes after a pychecker run.
5730
5736
5731 * Changed the @cd command to handle @cd - and @cd -<n> for
5737 * Changed the @cd command to handle @cd - and @cd -<n> for
5732 visiting any directory in _dh.
5738 visiting any directory in _dh.
5733
5739
5734 * Introduced _dh, a history of visited directories. @dhist prints
5740 * Introduced _dh, a history of visited directories. @dhist prints
5735 it out with numbers.
5741 it out with numbers.
5736
5742
5737 2001-12-07 Fernando Perez <fperez@colorado.edu>
5743 2001-12-07 Fernando Perez <fperez@colorado.edu>
5738
5744
5739 * Released 0.1.22
5745 * Released 0.1.22
5740
5746
5741 * Made initialization a bit more robust against invalid color
5747 * Made initialization a bit more robust against invalid color
5742 options in user input (exit, not traceback-crash).
5748 options in user input (exit, not traceback-crash).
5743
5749
5744 * Changed the bug crash reporter to write the report only in the
5750 * Changed the bug crash reporter to write the report only in the
5745 user's .ipython directory. That way IPython won't litter people's
5751 user's .ipython directory. That way IPython won't litter people's
5746 hard disks with crash files all over the place. Also print on
5752 hard disks with crash files all over the place. Also print on
5747 screen the necessary mail command.
5753 screen the necessary mail command.
5748
5754
5749 * With the new ultraTB, implemented LightBG color scheme for light
5755 * With the new ultraTB, implemented LightBG color scheme for light
5750 background terminals. A lot of people like white backgrounds, so I
5756 background terminals. A lot of people like white backgrounds, so I
5751 guess we should at least give them something readable.
5757 guess we should at least give them something readable.
5752
5758
5753 2001-12-06 Fernando Perez <fperez@colorado.edu>
5759 2001-12-06 Fernando Perez <fperez@colorado.edu>
5754
5760
5755 * Modified the structure of ultraTB. Now there's a proper class
5761 * Modified the structure of ultraTB. Now there's a proper class
5756 for tables of color schemes which allow adding schemes easily and
5762 for tables of color schemes which allow adding schemes easily and
5757 switching the active scheme without creating a new instance every
5763 switching the active scheme without creating a new instance every
5758 time (which was ridiculous). The syntax for creating new schemes
5764 time (which was ridiculous). The syntax for creating new schemes
5759 is also cleaner. I think ultraTB is finally done, with a clean
5765 is also cleaner. I think ultraTB is finally done, with a clean
5760 class structure. Names are also much cleaner (now there's proper
5766 class structure. Names are also much cleaner (now there's proper
5761 color tables, no need for every variable to also have 'color' in
5767 color tables, no need for every variable to also have 'color' in
5762 its name).
5768 its name).
5763
5769
5764 * Broke down genutils into separate files. Now genutils only
5770 * Broke down genutils into separate files. Now genutils only
5765 contains utility functions, and classes have been moved to their
5771 contains utility functions, and classes have been moved to their
5766 own files (they had enough independent functionality to warrant
5772 own files (they had enough independent functionality to warrant
5767 it): ConfigLoader, OutputTrap, Struct.
5773 it): ConfigLoader, OutputTrap, Struct.
5768
5774
5769 2001-12-05 Fernando Perez <fperez@colorado.edu>
5775 2001-12-05 Fernando Perez <fperez@colorado.edu>
5770
5776
5771 * IPython turns 21! Released version 0.1.21, as a candidate for
5777 * IPython turns 21! Released version 0.1.21, as a candidate for
5772 public consumption. If all goes well, release in a few days.
5778 public consumption. If all goes well, release in a few days.
5773
5779
5774 * Fixed path bug (files in Extensions/ directory wouldn't be found
5780 * Fixed path bug (files in Extensions/ directory wouldn't be found
5775 unless IPython/ was explicitly in sys.path).
5781 unless IPython/ was explicitly in sys.path).
5776
5782
5777 * Extended the FlexCompleter class as MagicCompleter to allow
5783 * Extended the FlexCompleter class as MagicCompleter to allow
5778 completion of @-starting lines.
5784 completion of @-starting lines.
5779
5785
5780 * Created __release__.py file as a central repository for release
5786 * Created __release__.py file as a central repository for release
5781 info that other files can read from.
5787 info that other files can read from.
5782
5788
5783 * Fixed small bug in logging: when logging was turned on in
5789 * Fixed small bug in logging: when logging was turned on in
5784 mid-session, old lines with special meanings (!@?) were being
5790 mid-session, old lines with special meanings (!@?) were being
5785 logged without the prepended comment, which is necessary since
5791 logged without the prepended comment, which is necessary since
5786 they are not truly valid python syntax. This should make session
5792 they are not truly valid python syntax. This should make session
5787 restores produce less errors.
5793 restores produce less errors.
5788
5794
5789 * The namespace cleanup forced me to make a FlexCompleter class
5795 * The namespace cleanup forced me to make a FlexCompleter class
5790 which is nothing but a ripoff of rlcompleter, but with selectable
5796 which is nothing but a ripoff of rlcompleter, but with selectable
5791 namespace (rlcompleter only works in __main__.__dict__). I'll try
5797 namespace (rlcompleter only works in __main__.__dict__). I'll try
5792 to submit a note to the authors to see if this change can be
5798 to submit a note to the authors to see if this change can be
5793 incorporated in future rlcompleter releases (Dec.6: done)
5799 incorporated in future rlcompleter releases (Dec.6: done)
5794
5800
5795 * More fixes to namespace handling. It was a mess! Now all
5801 * More fixes to namespace handling. It was a mess! Now all
5796 explicit references to __main__.__dict__ are gone (except when
5802 explicit references to __main__.__dict__ are gone (except when
5797 really needed) and everything is handled through the namespace
5803 really needed) and everything is handled through the namespace
5798 dicts in the IPython instance. We seem to be getting somewhere
5804 dicts in the IPython instance. We seem to be getting somewhere
5799 with this, finally...
5805 with this, finally...
5800
5806
5801 * Small documentation updates.
5807 * Small documentation updates.
5802
5808
5803 * Created the Extensions directory under IPython (with an
5809 * Created the Extensions directory under IPython (with an
5804 __init__.py). Put the PhysicalQ stuff there. This directory should
5810 __init__.py). Put the PhysicalQ stuff there. This directory should
5805 be used for all special-purpose extensions.
5811 be used for all special-purpose extensions.
5806
5812
5807 * File renaming:
5813 * File renaming:
5808 ipythonlib --> ipmaker
5814 ipythonlib --> ipmaker
5809 ipplib --> iplib
5815 ipplib --> iplib
5810 This makes a bit more sense in terms of what these files actually do.
5816 This makes a bit more sense in terms of what these files actually do.
5811
5817
5812 * Moved all the classes and functions in ipythonlib to ipplib, so
5818 * Moved all the classes and functions in ipythonlib to ipplib, so
5813 now ipythonlib only has make_IPython(). This will ease up its
5819 now ipythonlib only has make_IPython(). This will ease up its
5814 splitting in smaller functional chunks later.
5820 splitting in smaller functional chunks later.
5815
5821
5816 * Cleaned up (done, I think) output of @whos. Better column
5822 * Cleaned up (done, I think) output of @whos. Better column
5817 formatting, and now shows str(var) for as much as it can, which is
5823 formatting, and now shows str(var) for as much as it can, which is
5818 typically what one gets with a 'print var'.
5824 typically what one gets with a 'print var'.
5819
5825
5820 2001-12-04 Fernando Perez <fperez@colorado.edu>
5826 2001-12-04 Fernando Perez <fperez@colorado.edu>
5821
5827
5822 * Fixed namespace problems. Now builtin/IPyhton/user names get
5828 * Fixed namespace problems. Now builtin/IPyhton/user names get
5823 properly reported in their namespace. Internal namespace handling
5829 properly reported in their namespace. Internal namespace handling
5824 is finally getting decent (not perfect yet, but much better than
5830 is finally getting decent (not perfect yet, but much better than
5825 the ad-hoc mess we had).
5831 the ad-hoc mess we had).
5826
5832
5827 * Removed -exit option. If people just want to run a python
5833 * Removed -exit option. If people just want to run a python
5828 script, that's what the normal interpreter is for. Less
5834 script, that's what the normal interpreter is for. Less
5829 unnecessary options, less chances for bugs.
5835 unnecessary options, less chances for bugs.
5830
5836
5831 * Added a crash handler which generates a complete post-mortem if
5837 * Added a crash handler which generates a complete post-mortem if
5832 IPython crashes. This will help a lot in tracking bugs down the
5838 IPython crashes. This will help a lot in tracking bugs down the
5833 road.
5839 road.
5834
5840
5835 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5841 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5836 which were boud to functions being reassigned would bypass the
5842 which were boud to functions being reassigned would bypass the
5837 logger, breaking the sync of _il with the prompt counter. This
5843 logger, breaking the sync of _il with the prompt counter. This
5838 would then crash IPython later when a new line was logged.
5844 would then crash IPython later when a new line was logged.
5839
5845
5840 2001-12-02 Fernando Perez <fperez@colorado.edu>
5846 2001-12-02 Fernando Perez <fperez@colorado.edu>
5841
5847
5842 * Made IPython a package. This means people don't have to clutter
5848 * Made IPython a package. This means people don't have to clutter
5843 their sys.path with yet another directory. Changed the INSTALL
5849 their sys.path with yet another directory. Changed the INSTALL
5844 file accordingly.
5850 file accordingly.
5845
5851
5846 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5852 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5847 sorts its output (so @who shows it sorted) and @whos formats the
5853 sorts its output (so @who shows it sorted) and @whos formats the
5848 table according to the width of the first column. Nicer, easier to
5854 table according to the width of the first column. Nicer, easier to
5849 read. Todo: write a generic table_format() which takes a list of
5855 read. Todo: write a generic table_format() which takes a list of
5850 lists and prints it nicely formatted, with optional row/column
5856 lists and prints it nicely formatted, with optional row/column
5851 separators and proper padding and justification.
5857 separators and proper padding and justification.
5852
5858
5853 * Released 0.1.20
5859 * Released 0.1.20
5854
5860
5855 * Fixed bug in @log which would reverse the inputcache list (a
5861 * Fixed bug in @log which would reverse the inputcache list (a
5856 copy operation was missing).
5862 copy operation was missing).
5857
5863
5858 * Code cleanup. @config was changed to use page(). Better, since
5864 * Code cleanup. @config was changed to use page(). Better, since
5859 its output is always quite long.
5865 its output is always quite long.
5860
5866
5861 * Itpl is back as a dependency. I was having too many problems
5867 * Itpl is back as a dependency. I was having too many problems
5862 getting the parametric aliases to work reliably, and it's just
5868 getting the parametric aliases to work reliably, and it's just
5863 easier to code weird string operations with it than playing %()s
5869 easier to code weird string operations with it than playing %()s
5864 games. It's only ~6k, so I don't think it's too big a deal.
5870 games. It's only ~6k, so I don't think it's too big a deal.
5865
5871
5866 * Found (and fixed) a very nasty bug with history. !lines weren't
5872 * Found (and fixed) a very nasty bug with history. !lines weren't
5867 getting cached, and the out of sync caches would crash
5873 getting cached, and the out of sync caches would crash
5868 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5874 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5869 division of labor a bit better. Bug fixed, cleaner structure.
5875 division of labor a bit better. Bug fixed, cleaner structure.
5870
5876
5871 2001-12-01 Fernando Perez <fperez@colorado.edu>
5877 2001-12-01 Fernando Perez <fperez@colorado.edu>
5872
5878
5873 * Released 0.1.19
5879 * Released 0.1.19
5874
5880
5875 * Added option -n to @hist to prevent line number printing. Much
5881 * Added option -n to @hist to prevent line number printing. Much
5876 easier to copy/paste code this way.
5882 easier to copy/paste code this way.
5877
5883
5878 * Created global _il to hold the input list. Allows easy
5884 * Created global _il to hold the input list. Allows easy
5879 re-execution of blocks of code by slicing it (inspired by Janko's
5885 re-execution of blocks of code by slicing it (inspired by Janko's
5880 comment on 'macros').
5886 comment on 'macros').
5881
5887
5882 * Small fixes and doc updates.
5888 * Small fixes and doc updates.
5883
5889
5884 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5890 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5885 much too fragile with automagic. Handles properly multi-line
5891 much too fragile with automagic. Handles properly multi-line
5886 statements and takes parameters.
5892 statements and takes parameters.
5887
5893
5888 2001-11-30 Fernando Perez <fperez@colorado.edu>
5894 2001-11-30 Fernando Perez <fperez@colorado.edu>
5889
5895
5890 * Version 0.1.18 released.
5896 * Version 0.1.18 released.
5891
5897
5892 * Fixed nasty namespace bug in initial module imports.
5898 * Fixed nasty namespace bug in initial module imports.
5893
5899
5894 * Added copyright/license notes to all code files (except
5900 * Added copyright/license notes to all code files (except
5895 DPyGetOpt). For the time being, LGPL. That could change.
5901 DPyGetOpt). For the time being, LGPL. That could change.
5896
5902
5897 * Rewrote a much nicer README, updated INSTALL, cleaned up
5903 * Rewrote a much nicer README, updated INSTALL, cleaned up
5898 ipythonrc-* samples.
5904 ipythonrc-* samples.
5899
5905
5900 * Overall code/documentation cleanup. Basically ready for
5906 * Overall code/documentation cleanup. Basically ready for
5901 release. Only remaining thing: licence decision (LGPL?).
5907 release. Only remaining thing: licence decision (LGPL?).
5902
5908
5903 * Converted load_config to a class, ConfigLoader. Now recursion
5909 * Converted load_config to a class, ConfigLoader. Now recursion
5904 control is better organized. Doesn't include the same file twice.
5910 control is better organized. Doesn't include the same file twice.
5905
5911
5906 2001-11-29 Fernando Perez <fperez@colorado.edu>
5912 2001-11-29 Fernando Perez <fperez@colorado.edu>
5907
5913
5908 * Got input history working. Changed output history variables from
5914 * Got input history working. Changed output history variables from
5909 _p to _o so that _i is for input and _o for output. Just cleaner
5915 _p to _o so that _i is for input and _o for output. Just cleaner
5910 convention.
5916 convention.
5911
5917
5912 * Implemented parametric aliases. This pretty much allows the
5918 * Implemented parametric aliases. This pretty much allows the
5913 alias system to offer full-blown shell convenience, I think.
5919 alias system to offer full-blown shell convenience, I think.
5914
5920
5915 * Version 0.1.17 released, 0.1.18 opened.
5921 * Version 0.1.17 released, 0.1.18 opened.
5916
5922
5917 * dot_ipython/ipythonrc (alias): added documentation.
5923 * dot_ipython/ipythonrc (alias): added documentation.
5918 (xcolor): Fixed small bug (xcolors -> xcolor)
5924 (xcolor): Fixed small bug (xcolors -> xcolor)
5919
5925
5920 * Changed the alias system. Now alias is a magic command to define
5926 * Changed the alias system. Now alias is a magic command to define
5921 aliases just like the shell. Rationale: the builtin magics should
5927 aliases just like the shell. Rationale: the builtin magics should
5922 be there for things deeply connected to IPython's
5928 be there for things deeply connected to IPython's
5923 architecture. And this is a much lighter system for what I think
5929 architecture. And this is a much lighter system for what I think
5924 is the really important feature: allowing users to define quickly
5930 is the really important feature: allowing users to define quickly
5925 magics that will do shell things for them, so they can customize
5931 magics that will do shell things for them, so they can customize
5926 IPython easily to match their work habits. If someone is really
5932 IPython easily to match their work habits. If someone is really
5927 desperate to have another name for a builtin alias, they can
5933 desperate to have another name for a builtin alias, they can
5928 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5934 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5929 works.
5935 works.
5930
5936
5931 2001-11-28 Fernando Perez <fperez@colorado.edu>
5937 2001-11-28 Fernando Perez <fperez@colorado.edu>
5932
5938
5933 * Changed @file so that it opens the source file at the proper
5939 * Changed @file so that it opens the source file at the proper
5934 line. Since it uses less, if your EDITOR environment is
5940 line. Since it uses less, if your EDITOR environment is
5935 configured, typing v will immediately open your editor of choice
5941 configured, typing v will immediately open your editor of choice
5936 right at the line where the object is defined. Not as quick as
5942 right at the line where the object is defined. Not as quick as
5937 having a direct @edit command, but for all intents and purposes it
5943 having a direct @edit command, but for all intents and purposes it
5938 works. And I don't have to worry about writing @edit to deal with
5944 works. And I don't have to worry about writing @edit to deal with
5939 all the editors, less does that.
5945 all the editors, less does that.
5940
5946
5941 * Version 0.1.16 released, 0.1.17 opened.
5947 * Version 0.1.16 released, 0.1.17 opened.
5942
5948
5943 * Fixed some nasty bugs in the page/page_dumb combo that could
5949 * Fixed some nasty bugs in the page/page_dumb combo that could
5944 crash IPython.
5950 crash IPython.
5945
5951
5946 2001-11-27 Fernando Perez <fperez@colorado.edu>
5952 2001-11-27 Fernando Perez <fperez@colorado.edu>
5947
5953
5948 * Version 0.1.15 released, 0.1.16 opened.
5954 * Version 0.1.15 released, 0.1.16 opened.
5949
5955
5950 * Finally got ? and ?? to work for undefined things: now it's
5956 * Finally got ? and ?? to work for undefined things: now it's
5951 possible to type {}.get? and get information about the get method
5957 possible to type {}.get? and get information about the get method
5952 of dicts, or os.path? even if only os is defined (so technically
5958 of dicts, or os.path? even if only os is defined (so technically
5953 os.path isn't). Works at any level. For example, after import os,
5959 os.path isn't). Works at any level. For example, after import os,
5954 os?, os.path?, os.path.abspath? all work. This is great, took some
5960 os?, os.path?, os.path.abspath? all work. This is great, took some
5955 work in _ofind.
5961 work in _ofind.
5956
5962
5957 * Fixed more bugs with logging. The sanest way to do it was to add
5963 * Fixed more bugs with logging. The sanest way to do it was to add
5958 to @log a 'mode' parameter. Killed two in one shot (this mode
5964 to @log a 'mode' parameter. Killed two in one shot (this mode
5959 option was a request of Janko's). I think it's finally clean
5965 option was a request of Janko's). I think it's finally clean
5960 (famous last words).
5966 (famous last words).
5961
5967
5962 * Added a page_dumb() pager which does a decent job of paging on
5968 * Added a page_dumb() pager which does a decent job of paging on
5963 screen, if better things (like less) aren't available. One less
5969 screen, if better things (like less) aren't available. One less
5964 unix dependency (someday maybe somebody will port this to
5970 unix dependency (someday maybe somebody will port this to
5965 windows).
5971 windows).
5966
5972
5967 * Fixed problem in magic_log: would lock of logging out if log
5973 * Fixed problem in magic_log: would lock of logging out if log
5968 creation failed (because it would still think it had succeeded).
5974 creation failed (because it would still think it had succeeded).
5969
5975
5970 * Improved the page() function using curses to auto-detect screen
5976 * Improved the page() function using curses to auto-detect screen
5971 size. Now it can make a much better decision on whether to print
5977 size. Now it can make a much better decision on whether to print
5972 or page a string. Option screen_length was modified: a value 0
5978 or page a string. Option screen_length was modified: a value 0
5973 means auto-detect, and that's the default now.
5979 means auto-detect, and that's the default now.
5974
5980
5975 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5981 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5976 go out. I'll test it for a few days, then talk to Janko about
5982 go out. I'll test it for a few days, then talk to Janko about
5977 licences and announce it.
5983 licences and announce it.
5978
5984
5979 * Fixed the length of the auto-generated ---> prompt which appears
5985 * Fixed the length of the auto-generated ---> prompt which appears
5980 for auto-parens and auto-quotes. Getting this right isn't trivial,
5986 for auto-parens and auto-quotes. Getting this right isn't trivial,
5981 with all the color escapes, different prompt types and optional
5987 with all the color escapes, different prompt types and optional
5982 separators. But it seems to be working in all the combinations.
5988 separators. But it seems to be working in all the combinations.
5983
5989
5984 2001-11-26 Fernando Perez <fperez@colorado.edu>
5990 2001-11-26 Fernando Perez <fperez@colorado.edu>
5985
5991
5986 * Wrote a regexp filter to get option types from the option names
5992 * Wrote a regexp filter to get option types from the option names
5987 string. This eliminates the need to manually keep two duplicate
5993 string. This eliminates the need to manually keep two duplicate
5988 lists.
5994 lists.
5989
5995
5990 * Removed the unneeded check_option_names. Now options are handled
5996 * Removed the unneeded check_option_names. Now options are handled
5991 in a much saner manner and it's easy to visually check that things
5997 in a much saner manner and it's easy to visually check that things
5992 are ok.
5998 are ok.
5993
5999
5994 * Updated version numbers on all files I modified to carry a
6000 * Updated version numbers on all files I modified to carry a
5995 notice so Janko and Nathan have clear version markers.
6001 notice so Janko and Nathan have clear version markers.
5996
6002
5997 * Updated docstring for ultraTB with my changes. I should send
6003 * Updated docstring for ultraTB with my changes. I should send
5998 this to Nathan.
6004 this to Nathan.
5999
6005
6000 * Lots of small fixes. Ran everything through pychecker again.
6006 * Lots of small fixes. Ran everything through pychecker again.
6001
6007
6002 * Made loading of deep_reload an cmd line option. If it's not too
6008 * Made loading of deep_reload an cmd line option. If it's not too
6003 kosher, now people can just disable it. With -nodeep_reload it's
6009 kosher, now people can just disable it. With -nodeep_reload it's
6004 still available as dreload(), it just won't overwrite reload().
6010 still available as dreload(), it just won't overwrite reload().
6005
6011
6006 * Moved many options to the no| form (-opt and -noopt
6012 * Moved many options to the no| form (-opt and -noopt
6007 accepted). Cleaner.
6013 accepted). Cleaner.
6008
6014
6009 * Changed magic_log so that if called with no parameters, it uses
6015 * Changed magic_log so that if called with no parameters, it uses
6010 'rotate' mode. That way auto-generated logs aren't automatically
6016 'rotate' mode. That way auto-generated logs aren't automatically
6011 over-written. For normal logs, now a backup is made if it exists
6017 over-written. For normal logs, now a backup is made if it exists
6012 (only 1 level of backups). A new 'backup' mode was added to the
6018 (only 1 level of backups). A new 'backup' mode was added to the
6013 Logger class to support this. This was a request by Janko.
6019 Logger class to support this. This was a request by Janko.
6014
6020
6015 * Added @logoff/@logon to stop/restart an active log.
6021 * Added @logoff/@logon to stop/restart an active log.
6016
6022
6017 * Fixed a lot of bugs in log saving/replay. It was pretty
6023 * Fixed a lot of bugs in log saving/replay. It was pretty
6018 broken. Now special lines (!@,/) appear properly in the command
6024 broken. Now special lines (!@,/) appear properly in the command
6019 history after a log replay.
6025 history after a log replay.
6020
6026
6021 * Tried and failed to implement full session saving via pickle. My
6027 * Tried and failed to implement full session saving via pickle. My
6022 idea was to pickle __main__.__dict__, but modules can't be
6028 idea was to pickle __main__.__dict__, but modules can't be
6023 pickled. This would be a better alternative to replaying logs, but
6029 pickled. This would be a better alternative to replaying logs, but
6024 seems quite tricky to get to work. Changed -session to be called
6030 seems quite tricky to get to work. Changed -session to be called
6025 -logplay, which more accurately reflects what it does. And if we
6031 -logplay, which more accurately reflects what it does. And if we
6026 ever get real session saving working, -session is now available.
6032 ever get real session saving working, -session is now available.
6027
6033
6028 * Implemented color schemes for prompts also. As for tracebacks,
6034 * Implemented color schemes for prompts also. As for tracebacks,
6029 currently only NoColor and Linux are supported. But now the
6035 currently only NoColor and Linux are supported. But now the
6030 infrastructure is in place, based on a generic ColorScheme
6036 infrastructure is in place, based on a generic ColorScheme
6031 class. So writing and activating new schemes both for the prompts
6037 class. So writing and activating new schemes both for the prompts
6032 and the tracebacks should be straightforward.
6038 and the tracebacks should be straightforward.
6033
6039
6034 * Version 0.1.13 released, 0.1.14 opened.
6040 * Version 0.1.13 released, 0.1.14 opened.
6035
6041
6036 * Changed handling of options for output cache. Now counter is
6042 * Changed handling of options for output cache. Now counter is
6037 hardwired starting at 1 and one specifies the maximum number of
6043 hardwired starting at 1 and one specifies the maximum number of
6038 entries *in the outcache* (not the max prompt counter). This is
6044 entries *in the outcache* (not the max prompt counter). This is
6039 much better, since many statements won't increase the cache
6045 much better, since many statements won't increase the cache
6040 count. It also eliminated some confusing options, now there's only
6046 count. It also eliminated some confusing options, now there's only
6041 one: cache_size.
6047 one: cache_size.
6042
6048
6043 * Added 'alias' magic function and magic_alias option in the
6049 * Added 'alias' magic function and magic_alias option in the
6044 ipythonrc file. Now the user can easily define whatever names he
6050 ipythonrc file. Now the user can easily define whatever names he
6045 wants for the magic functions without having to play weird
6051 wants for the magic functions without having to play weird
6046 namespace games. This gives IPython a real shell-like feel.
6052 namespace games. This gives IPython a real shell-like feel.
6047
6053
6048 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6054 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6049 @ or not).
6055 @ or not).
6050
6056
6051 This was one of the last remaining 'visible' bugs (that I know
6057 This was one of the last remaining 'visible' bugs (that I know
6052 of). I think if I can clean up the session loading so it works
6058 of). I think if I can clean up the session loading so it works
6053 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6059 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6054 about licensing).
6060 about licensing).
6055
6061
6056 2001-11-25 Fernando Perez <fperez@colorado.edu>
6062 2001-11-25 Fernando Perez <fperez@colorado.edu>
6057
6063
6058 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6064 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6059 there's a cleaner distinction between what ? and ?? show.
6065 there's a cleaner distinction between what ? and ?? show.
6060
6066
6061 * Added screen_length option. Now the user can define his own
6067 * Added screen_length option. Now the user can define his own
6062 screen size for page() operations.
6068 screen size for page() operations.
6063
6069
6064 * Implemented magic shell-like functions with automatic code
6070 * Implemented magic shell-like functions with automatic code
6065 generation. Now adding another function is just a matter of adding
6071 generation. Now adding another function is just a matter of adding
6066 an entry to a dict, and the function is dynamically generated at
6072 an entry to a dict, and the function is dynamically generated at
6067 run-time. Python has some really cool features!
6073 run-time. Python has some really cool features!
6068
6074
6069 * Renamed many options to cleanup conventions a little. Now all
6075 * Renamed many options to cleanup conventions a little. Now all
6070 are lowercase, and only underscores where needed. Also in the code
6076 are lowercase, and only underscores where needed. Also in the code
6071 option name tables are clearer.
6077 option name tables are clearer.
6072
6078
6073 * Changed prompts a little. Now input is 'In [n]:' instead of
6079 * Changed prompts a little. Now input is 'In [n]:' instead of
6074 'In[n]:='. This allows it the numbers to be aligned with the
6080 'In[n]:='. This allows it the numbers to be aligned with the
6075 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6081 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6076 Python (it was a Mathematica thing). The '...' continuation prompt
6082 Python (it was a Mathematica thing). The '...' continuation prompt
6077 was also changed a little to align better.
6083 was also changed a little to align better.
6078
6084
6079 * Fixed bug when flushing output cache. Not all _p<n> variables
6085 * Fixed bug when flushing output cache. Not all _p<n> variables
6080 exist, so their deletion needs to be wrapped in a try:
6086 exist, so their deletion needs to be wrapped in a try:
6081
6087
6082 * Figured out how to properly use inspect.formatargspec() (it
6088 * Figured out how to properly use inspect.formatargspec() (it
6083 requires the args preceded by *). So I removed all the code from
6089 requires the args preceded by *). So I removed all the code from
6084 _get_pdef in Magic, which was just replicating that.
6090 _get_pdef in Magic, which was just replicating that.
6085
6091
6086 * Added test to prefilter to allow redefining magic function names
6092 * Added test to prefilter to allow redefining magic function names
6087 as variables. This is ok, since the @ form is always available,
6093 as variables. This is ok, since the @ form is always available,
6088 but whe should allow the user to define a variable called 'ls' if
6094 but whe should allow the user to define a variable called 'ls' if
6089 he needs it.
6095 he needs it.
6090
6096
6091 * Moved the ToDo information from README into a separate ToDo.
6097 * Moved the ToDo information from README into a separate ToDo.
6092
6098
6093 * General code cleanup and small bugfixes. I think it's close to a
6099 * General code cleanup and small bugfixes. I think it's close to a
6094 state where it can be released, obviously with a big 'beta'
6100 state where it can be released, obviously with a big 'beta'
6095 warning on it.
6101 warning on it.
6096
6102
6097 * Got the magic function split to work. Now all magics are defined
6103 * Got the magic function split to work. Now all magics are defined
6098 in a separate class. It just organizes things a bit, and now
6104 in a separate class. It just organizes things a bit, and now
6099 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6105 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6100 was too long).
6106 was too long).
6101
6107
6102 * Changed @clear to @reset to avoid potential confusions with
6108 * Changed @clear to @reset to avoid potential confusions with
6103 the shell command clear. Also renamed @cl to @clear, which does
6109 the shell command clear. Also renamed @cl to @clear, which does
6104 exactly what people expect it to from their shell experience.
6110 exactly what people expect it to from their shell experience.
6105
6111
6106 Added a check to the @reset command (since it's so
6112 Added a check to the @reset command (since it's so
6107 destructive, it's probably a good idea to ask for confirmation).
6113 destructive, it's probably a good idea to ask for confirmation).
6108 But now reset only works for full namespace resetting. Since the
6114 But now reset only works for full namespace resetting. Since the
6109 del keyword is already there for deleting a few specific
6115 del keyword is already there for deleting a few specific
6110 variables, I don't see the point of having a redundant magic
6116 variables, I don't see the point of having a redundant magic
6111 function for the same task.
6117 function for the same task.
6112
6118
6113 2001-11-24 Fernando Perez <fperez@colorado.edu>
6119 2001-11-24 Fernando Perez <fperez@colorado.edu>
6114
6120
6115 * Updated the builtin docs (esp. the ? ones).
6121 * Updated the builtin docs (esp. the ? ones).
6116
6122
6117 * Ran all the code through pychecker. Not terribly impressed with
6123 * Ran all the code through pychecker. Not terribly impressed with
6118 it: lots of spurious warnings and didn't really find anything of
6124 it: lots of spurious warnings and didn't really find anything of
6119 substance (just a few modules being imported and not used).
6125 substance (just a few modules being imported and not used).
6120
6126
6121 * Implemented the new ultraTB functionality into IPython. New
6127 * Implemented the new ultraTB functionality into IPython. New
6122 option: xcolors. This chooses color scheme. xmode now only selects
6128 option: xcolors. This chooses color scheme. xmode now only selects
6123 between Plain and Verbose. Better orthogonality.
6129 between Plain and Verbose. Better orthogonality.
6124
6130
6125 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6131 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6126 mode and color scheme for the exception handlers. Now it's
6132 mode and color scheme for the exception handlers. Now it's
6127 possible to have the verbose traceback with no coloring.
6133 possible to have the verbose traceback with no coloring.
6128
6134
6129 2001-11-23 Fernando Perez <fperez@colorado.edu>
6135 2001-11-23 Fernando Perez <fperez@colorado.edu>
6130
6136
6131 * Version 0.1.12 released, 0.1.13 opened.
6137 * Version 0.1.12 released, 0.1.13 opened.
6132
6138
6133 * Removed option to set auto-quote and auto-paren escapes by
6139 * Removed option to set auto-quote and auto-paren escapes by
6134 user. The chances of breaking valid syntax are just too high. If
6140 user. The chances of breaking valid syntax are just too high. If
6135 someone *really* wants, they can always dig into the code.
6141 someone *really* wants, they can always dig into the code.
6136
6142
6137 * Made prompt separators configurable.
6143 * Made prompt separators configurable.
6138
6144
6139 2001-11-22 Fernando Perez <fperez@colorado.edu>
6145 2001-11-22 Fernando Perez <fperez@colorado.edu>
6140
6146
6141 * Small bugfixes in many places.
6147 * Small bugfixes in many places.
6142
6148
6143 * Removed the MyCompleter class from ipplib. It seemed redundant
6149 * Removed the MyCompleter class from ipplib. It seemed redundant
6144 with the C-p,C-n history search functionality. Less code to
6150 with the C-p,C-n history search functionality. Less code to
6145 maintain.
6151 maintain.
6146
6152
6147 * Moved all the original ipython.py code into ipythonlib.py. Right
6153 * Moved all the original ipython.py code into ipythonlib.py. Right
6148 now it's just one big dump into a function called make_IPython, so
6154 now it's just one big dump into a function called make_IPython, so
6149 no real modularity has been gained. But at least it makes the
6155 no real modularity has been gained. But at least it makes the
6150 wrapper script tiny, and since ipythonlib is a module, it gets
6156 wrapper script tiny, and since ipythonlib is a module, it gets
6151 compiled and startup is much faster.
6157 compiled and startup is much faster.
6152
6158
6153 This is a reasobably 'deep' change, so we should test it for a
6159 This is a reasobably 'deep' change, so we should test it for a
6154 while without messing too much more with the code.
6160 while without messing too much more with the code.
6155
6161
6156 2001-11-21 Fernando Perez <fperez@colorado.edu>
6162 2001-11-21 Fernando Perez <fperez@colorado.edu>
6157
6163
6158 * Version 0.1.11 released, 0.1.12 opened for further work.
6164 * Version 0.1.11 released, 0.1.12 opened for further work.
6159
6165
6160 * Removed dependency on Itpl. It was only needed in one place. It
6166 * Removed dependency on Itpl. It was only needed in one place. It
6161 would be nice if this became part of python, though. It makes life
6167 would be nice if this became part of python, though. It makes life
6162 *a lot* easier in some cases.
6168 *a lot* easier in some cases.
6163
6169
6164 * Simplified the prefilter code a bit. Now all handlers are
6170 * Simplified the prefilter code a bit. Now all handlers are
6165 expected to explicitly return a value (at least a blank string).
6171 expected to explicitly return a value (at least a blank string).
6166
6172
6167 * Heavy edits in ipplib. Removed the help system altogether. Now
6173 * Heavy edits in ipplib. Removed the help system altogether. Now
6168 obj?/?? is used for inspecting objects, a magic @doc prints
6174 obj?/?? is used for inspecting objects, a magic @doc prints
6169 docstrings, and full-blown Python help is accessed via the 'help'
6175 docstrings, and full-blown Python help is accessed via the 'help'
6170 keyword. This cleans up a lot of code (less to maintain) and does
6176 keyword. This cleans up a lot of code (less to maintain) and does
6171 the job. Since 'help' is now a standard Python component, might as
6177 the job. Since 'help' is now a standard Python component, might as
6172 well use it and remove duplicate functionality.
6178 well use it and remove duplicate functionality.
6173
6179
6174 Also removed the option to use ipplib as a standalone program. By
6180 Also removed the option to use ipplib as a standalone program. By
6175 now it's too dependent on other parts of IPython to function alone.
6181 now it's too dependent on other parts of IPython to function alone.
6176
6182
6177 * Fixed bug in genutils.pager. It would crash if the pager was
6183 * Fixed bug in genutils.pager. It would crash if the pager was
6178 exited immediately after opening (broken pipe).
6184 exited immediately after opening (broken pipe).
6179
6185
6180 * Trimmed down the VerboseTB reporting a little. The header is
6186 * Trimmed down the VerboseTB reporting a little. The header is
6181 much shorter now and the repeated exception arguments at the end
6187 much shorter now and the repeated exception arguments at the end
6182 have been removed. For interactive use the old header seemed a bit
6188 have been removed. For interactive use the old header seemed a bit
6183 excessive.
6189 excessive.
6184
6190
6185 * Fixed small bug in output of @whos for variables with multi-word
6191 * Fixed small bug in output of @whos for variables with multi-word
6186 types (only first word was displayed).
6192 types (only first word was displayed).
6187
6193
6188 2001-11-17 Fernando Perez <fperez@colorado.edu>
6194 2001-11-17 Fernando Perez <fperez@colorado.edu>
6189
6195
6190 * Version 0.1.10 released, 0.1.11 opened for further work.
6196 * Version 0.1.10 released, 0.1.11 opened for further work.
6191
6197
6192 * Modified dirs and friends. dirs now *returns* the stack (not
6198 * Modified dirs and friends. dirs now *returns* the stack (not
6193 prints), so one can manipulate it as a variable. Convenient to
6199 prints), so one can manipulate it as a variable. Convenient to
6194 travel along many directories.
6200 travel along many directories.
6195
6201
6196 * Fixed bug in magic_pdef: would only work with functions with
6202 * Fixed bug in magic_pdef: would only work with functions with
6197 arguments with default values.
6203 arguments with default values.
6198
6204
6199 2001-11-14 Fernando Perez <fperez@colorado.edu>
6205 2001-11-14 Fernando Perez <fperez@colorado.edu>
6200
6206
6201 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6207 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6202 example with IPython. Various other minor fixes and cleanups.
6208 example with IPython. Various other minor fixes and cleanups.
6203
6209
6204 * Version 0.1.9 released, 0.1.10 opened for further work.
6210 * Version 0.1.9 released, 0.1.10 opened for further work.
6205
6211
6206 * Added sys.path to the list of directories searched in the
6212 * Added sys.path to the list of directories searched in the
6207 execfile= option. It used to be the current directory and the
6213 execfile= option. It used to be the current directory and the
6208 user's IPYTHONDIR only.
6214 user's IPYTHONDIR only.
6209
6215
6210 2001-11-13 Fernando Perez <fperez@colorado.edu>
6216 2001-11-13 Fernando Perez <fperez@colorado.edu>
6211
6217
6212 * Reinstated the raw_input/prefilter separation that Janko had
6218 * Reinstated the raw_input/prefilter separation that Janko had
6213 initially. This gives a more convenient setup for extending the
6219 initially. This gives a more convenient setup for extending the
6214 pre-processor from the outside: raw_input always gets a string,
6220 pre-processor from the outside: raw_input always gets a string,
6215 and prefilter has to process it. We can then redefine prefilter
6221 and prefilter has to process it. We can then redefine prefilter
6216 from the outside and implement extensions for special
6222 from the outside and implement extensions for special
6217 purposes.
6223 purposes.
6218
6224
6219 Today I got one for inputting PhysicalQuantity objects
6225 Today I got one for inputting PhysicalQuantity objects
6220 (from Scientific) without needing any function calls at
6226 (from Scientific) without needing any function calls at
6221 all. Extremely convenient, and it's all done as a user-level
6227 all. Extremely convenient, and it's all done as a user-level
6222 extension (no IPython code was touched). Now instead of:
6228 extension (no IPython code was touched). Now instead of:
6223 a = PhysicalQuantity(4.2,'m/s**2')
6229 a = PhysicalQuantity(4.2,'m/s**2')
6224 one can simply say
6230 one can simply say
6225 a = 4.2 m/s**2
6231 a = 4.2 m/s**2
6226 or even
6232 or even
6227 a = 4.2 m/s^2
6233 a = 4.2 m/s^2
6228
6234
6229 I use this, but it's also a proof of concept: IPython really is
6235 I use this, but it's also a proof of concept: IPython really is
6230 fully user-extensible, even at the level of the parsing of the
6236 fully user-extensible, even at the level of the parsing of the
6231 command line. It's not trivial, but it's perfectly doable.
6237 command line. It's not trivial, but it's perfectly doable.
6232
6238
6233 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6239 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6234 the problem of modules being loaded in the inverse order in which
6240 the problem of modules being loaded in the inverse order in which
6235 they were defined in
6241 they were defined in
6236
6242
6237 * Version 0.1.8 released, 0.1.9 opened for further work.
6243 * Version 0.1.8 released, 0.1.9 opened for further work.
6238
6244
6239 * Added magics pdef, source and file. They respectively show the
6245 * Added magics pdef, source and file. They respectively show the
6240 definition line ('prototype' in C), source code and full python
6246 definition line ('prototype' in C), source code and full python
6241 file for any callable object. The object inspector oinfo uses
6247 file for any callable object. The object inspector oinfo uses
6242 these to show the same information.
6248 these to show the same information.
6243
6249
6244 * Version 0.1.7 released, 0.1.8 opened for further work.
6250 * Version 0.1.7 released, 0.1.8 opened for further work.
6245
6251
6246 * Separated all the magic functions into a class called Magic. The
6252 * Separated all the magic functions into a class called Magic. The
6247 InteractiveShell class was becoming too big for Xemacs to handle
6253 InteractiveShell class was becoming too big for Xemacs to handle
6248 (de-indenting a line would lock it up for 10 seconds while it
6254 (de-indenting a line would lock it up for 10 seconds while it
6249 backtracked on the whole class!)
6255 backtracked on the whole class!)
6250
6256
6251 FIXME: didn't work. It can be done, but right now namespaces are
6257 FIXME: didn't work. It can be done, but right now namespaces are
6252 all messed up. Do it later (reverted it for now, so at least
6258 all messed up. Do it later (reverted it for now, so at least
6253 everything works as before).
6259 everything works as before).
6254
6260
6255 * Got the object introspection system (magic_oinfo) working! I
6261 * Got the object introspection system (magic_oinfo) working! I
6256 think this is pretty much ready for release to Janko, so he can
6262 think this is pretty much ready for release to Janko, so he can
6257 test it for a while and then announce it. Pretty much 100% of what
6263 test it for a while and then announce it. Pretty much 100% of what
6258 I wanted for the 'phase 1' release is ready. Happy, tired.
6264 I wanted for the 'phase 1' release is ready. Happy, tired.
6259
6265
6260 2001-11-12 Fernando Perez <fperez@colorado.edu>
6266 2001-11-12 Fernando Perez <fperez@colorado.edu>
6261
6267
6262 * Version 0.1.6 released, 0.1.7 opened for further work.
6268 * Version 0.1.6 released, 0.1.7 opened for further work.
6263
6269
6264 * Fixed bug in printing: it used to test for truth before
6270 * Fixed bug in printing: it used to test for truth before
6265 printing, so 0 wouldn't print. Now checks for None.
6271 printing, so 0 wouldn't print. Now checks for None.
6266
6272
6267 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6273 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6268 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6274 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6269 reaches by hand into the outputcache. Think of a better way to do
6275 reaches by hand into the outputcache. Think of a better way to do
6270 this later.
6276 this later.
6271
6277
6272 * Various small fixes thanks to Nathan's comments.
6278 * Various small fixes thanks to Nathan's comments.
6273
6279
6274 * Changed magic_pprint to magic_Pprint. This way it doesn't
6280 * Changed magic_pprint to magic_Pprint. This way it doesn't
6275 collide with pprint() and the name is consistent with the command
6281 collide with pprint() and the name is consistent with the command
6276 line option.
6282 line option.
6277
6283
6278 * Changed prompt counter behavior to be fully like
6284 * Changed prompt counter behavior to be fully like
6279 Mathematica's. That is, even input that doesn't return a result
6285 Mathematica's. That is, even input that doesn't return a result
6280 raises the prompt counter. The old behavior was kind of confusing
6286 raises the prompt counter. The old behavior was kind of confusing
6281 (getting the same prompt number several times if the operation
6287 (getting the same prompt number several times if the operation
6282 didn't return a result).
6288 didn't return a result).
6283
6289
6284 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6290 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6285
6291
6286 * Fixed -Classic mode (wasn't working anymore).
6292 * Fixed -Classic mode (wasn't working anymore).
6287
6293
6288 * Added colored prompts using Nathan's new code. Colors are
6294 * Added colored prompts using Nathan's new code. Colors are
6289 currently hardwired, they can be user-configurable. For
6295 currently hardwired, they can be user-configurable. For
6290 developers, they can be chosen in file ipythonlib.py, at the
6296 developers, they can be chosen in file ipythonlib.py, at the
6291 beginning of the CachedOutput class def.
6297 beginning of the CachedOutput class def.
6292
6298
6293 2001-11-11 Fernando Perez <fperez@colorado.edu>
6299 2001-11-11 Fernando Perez <fperez@colorado.edu>
6294
6300
6295 * Version 0.1.5 released, 0.1.6 opened for further work.
6301 * Version 0.1.5 released, 0.1.6 opened for further work.
6296
6302
6297 * Changed magic_env to *return* the environment as a dict (not to
6303 * Changed magic_env to *return* the environment as a dict (not to
6298 print it). This way it prints, but it can also be processed.
6304 print it). This way it prints, but it can also be processed.
6299
6305
6300 * Added Verbose exception reporting to interactive
6306 * Added Verbose exception reporting to interactive
6301 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6307 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6302 traceback. Had to make some changes to the ultraTB file. This is
6308 traceback. Had to make some changes to the ultraTB file. This is
6303 probably the last 'big' thing in my mental todo list. This ties
6309 probably the last 'big' thing in my mental todo list. This ties
6304 in with the next entry:
6310 in with the next entry:
6305
6311
6306 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6312 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6307 has to specify is Plain, Color or Verbose for all exception
6313 has to specify is Plain, Color or Verbose for all exception
6308 handling.
6314 handling.
6309
6315
6310 * Removed ShellServices option. All this can really be done via
6316 * Removed ShellServices option. All this can really be done via
6311 the magic system. It's easier to extend, cleaner and has automatic
6317 the magic system. It's easier to extend, cleaner and has automatic
6312 namespace protection and documentation.
6318 namespace protection and documentation.
6313
6319
6314 2001-11-09 Fernando Perez <fperez@colorado.edu>
6320 2001-11-09 Fernando Perez <fperez@colorado.edu>
6315
6321
6316 * Fixed bug in output cache flushing (missing parameter to
6322 * Fixed bug in output cache flushing (missing parameter to
6317 __init__). Other small bugs fixed (found using pychecker).
6323 __init__). Other small bugs fixed (found using pychecker).
6318
6324
6319 * Version 0.1.4 opened for bugfixing.
6325 * Version 0.1.4 opened for bugfixing.
6320
6326
6321 2001-11-07 Fernando Perez <fperez@colorado.edu>
6327 2001-11-07 Fernando Perez <fperez@colorado.edu>
6322
6328
6323 * Version 0.1.3 released, mainly because of the raw_input bug.
6329 * Version 0.1.3 released, mainly because of the raw_input bug.
6324
6330
6325 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6331 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6326 and when testing for whether things were callable, a call could
6332 and when testing for whether things were callable, a call could
6327 actually be made to certain functions. They would get called again
6333 actually be made to certain functions. They would get called again
6328 once 'really' executed, with a resulting double call. A disaster
6334 once 'really' executed, with a resulting double call. A disaster
6329 in many cases (list.reverse() would never work!).
6335 in many cases (list.reverse() would never work!).
6330
6336
6331 * Removed prefilter() function, moved its code to raw_input (which
6337 * Removed prefilter() function, moved its code to raw_input (which
6332 after all was just a near-empty caller for prefilter). This saves
6338 after all was just a near-empty caller for prefilter). This saves
6333 a function call on every prompt, and simplifies the class a tiny bit.
6339 a function call on every prompt, and simplifies the class a tiny bit.
6334
6340
6335 * Fix _ip to __ip name in magic example file.
6341 * Fix _ip to __ip name in magic example file.
6336
6342
6337 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6343 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6338 work with non-gnu versions of tar.
6344 work with non-gnu versions of tar.
6339
6345
6340 2001-11-06 Fernando Perez <fperez@colorado.edu>
6346 2001-11-06 Fernando Perez <fperez@colorado.edu>
6341
6347
6342 * Version 0.1.2. Just to keep track of the recent changes.
6348 * Version 0.1.2. Just to keep track of the recent changes.
6343
6349
6344 * Fixed nasty bug in output prompt routine. It used to check 'if
6350 * Fixed nasty bug in output prompt routine. It used to check 'if
6345 arg != None...'. Problem is, this fails if arg implements a
6351 arg != None...'. Problem is, this fails if arg implements a
6346 special comparison (__cmp__) which disallows comparing to
6352 special comparison (__cmp__) which disallows comparing to
6347 None. Found it when trying to use the PhysicalQuantity module from
6353 None. Found it when trying to use the PhysicalQuantity module from
6348 ScientificPython.
6354 ScientificPython.
6349
6355
6350 2001-11-05 Fernando Perez <fperez@colorado.edu>
6356 2001-11-05 Fernando Perez <fperez@colorado.edu>
6351
6357
6352 * Also added dirs. Now the pushd/popd/dirs family functions
6358 * Also added dirs. Now the pushd/popd/dirs family functions
6353 basically like the shell, with the added convenience of going home
6359 basically like the shell, with the added convenience of going home
6354 when called with no args.
6360 when called with no args.
6355
6361
6356 * pushd/popd slightly modified to mimic shell behavior more
6362 * pushd/popd slightly modified to mimic shell behavior more
6357 closely.
6363 closely.
6358
6364
6359 * Added env,pushd,popd from ShellServices as magic functions. I
6365 * Added env,pushd,popd from ShellServices as magic functions. I
6360 think the cleanest will be to port all desired functions from
6366 think the cleanest will be to port all desired functions from
6361 ShellServices as magics and remove ShellServices altogether. This
6367 ShellServices as magics and remove ShellServices altogether. This
6362 will provide a single, clean way of adding functionality
6368 will provide a single, clean way of adding functionality
6363 (shell-type or otherwise) to IP.
6369 (shell-type or otherwise) to IP.
6364
6370
6365 2001-11-04 Fernando Perez <fperez@colorado.edu>
6371 2001-11-04 Fernando Perez <fperez@colorado.edu>
6366
6372
6367 * Added .ipython/ directory to sys.path. This way users can keep
6373 * Added .ipython/ directory to sys.path. This way users can keep
6368 customizations there and access them via import.
6374 customizations there and access them via import.
6369
6375
6370 2001-11-03 Fernando Perez <fperez@colorado.edu>
6376 2001-11-03 Fernando Perez <fperez@colorado.edu>
6371
6377
6372 * Opened version 0.1.1 for new changes.
6378 * Opened version 0.1.1 for new changes.
6373
6379
6374 * Changed version number to 0.1.0: first 'public' release, sent to
6380 * Changed version number to 0.1.0: first 'public' release, sent to
6375 Nathan and Janko.
6381 Nathan and Janko.
6376
6382
6377 * Lots of small fixes and tweaks.
6383 * Lots of small fixes and tweaks.
6378
6384
6379 * Minor changes to whos format. Now strings are shown, snipped if
6385 * Minor changes to whos format. Now strings are shown, snipped if
6380 too long.
6386 too long.
6381
6387
6382 * Changed ShellServices to work on __main__ so they show up in @who
6388 * Changed ShellServices to work on __main__ so they show up in @who
6383
6389
6384 * Help also works with ? at the end of a line:
6390 * Help also works with ? at the end of a line:
6385 ?sin and sin?
6391 ?sin and sin?
6386 both produce the same effect. This is nice, as often I use the
6392 both produce the same effect. This is nice, as often I use the
6387 tab-complete to find the name of a method, but I used to then have
6393 tab-complete to find the name of a method, but I used to then have
6388 to go to the beginning of the line to put a ? if I wanted more
6394 to go to the beginning of the line to put a ? if I wanted more
6389 info. Now I can just add the ? and hit return. Convenient.
6395 info. Now I can just add the ? and hit return. Convenient.
6390
6396
6391 2001-11-02 Fernando Perez <fperez@colorado.edu>
6397 2001-11-02 Fernando Perez <fperez@colorado.edu>
6392
6398
6393 * Python version check (>=2.1) added.
6399 * Python version check (>=2.1) added.
6394
6400
6395 * Added LazyPython documentation. At this point the docs are quite
6401 * Added LazyPython documentation. At this point the docs are quite
6396 a mess. A cleanup is in order.
6402 a mess. A cleanup is in order.
6397
6403
6398 * Auto-installer created. For some bizarre reason, the zipfiles
6404 * Auto-installer created. For some bizarre reason, the zipfiles
6399 module isn't working on my system. So I made a tar version
6405 module isn't working on my system. So I made a tar version
6400 (hopefully the command line options in various systems won't kill
6406 (hopefully the command line options in various systems won't kill
6401 me).
6407 me).
6402
6408
6403 * Fixes to Struct in genutils. Now all dictionary-like methods are
6409 * Fixes to Struct in genutils. Now all dictionary-like methods are
6404 protected (reasonably).
6410 protected (reasonably).
6405
6411
6406 * Added pager function to genutils and changed ? to print usage
6412 * Added pager function to genutils and changed ? to print usage
6407 note through it (it was too long).
6413 note through it (it was too long).
6408
6414
6409 * Added the LazyPython functionality. Works great! I changed the
6415 * Added the LazyPython functionality. Works great! I changed the
6410 auto-quote escape to ';', it's on home row and next to '. But
6416 auto-quote escape to ';', it's on home row and next to '. But
6411 both auto-quote and auto-paren (still /) escapes are command-line
6417 both auto-quote and auto-paren (still /) escapes are command-line
6412 parameters.
6418 parameters.
6413
6419
6414
6420
6415 2001-11-01 Fernando Perez <fperez@colorado.edu>
6421 2001-11-01 Fernando Perez <fperez@colorado.edu>
6416
6422
6417 * Version changed to 0.0.7. Fairly large change: configuration now
6423 * Version changed to 0.0.7. Fairly large change: configuration now
6418 is all stored in a directory, by default .ipython. There, all
6424 is all stored in a directory, by default .ipython. There, all
6419 config files have normal looking names (not .names)
6425 config files have normal looking names (not .names)
6420
6426
6421 * Version 0.0.6 Released first to Lucas and Archie as a test
6427 * Version 0.0.6 Released first to Lucas and Archie as a test
6422 run. Since it's the first 'semi-public' release, change version to
6428 run. Since it's the first 'semi-public' release, change version to
6423 > 0.0.6 for any changes now.
6429 > 0.0.6 for any changes now.
6424
6430
6425 * Stuff I had put in the ipplib.py changelog:
6431 * Stuff I had put in the ipplib.py changelog:
6426
6432
6427 Changes to InteractiveShell:
6433 Changes to InteractiveShell:
6428
6434
6429 - Made the usage message a parameter.
6435 - Made the usage message a parameter.
6430
6436
6431 - Require the name of the shell variable to be given. It's a bit
6437 - Require the name of the shell variable to be given. It's a bit
6432 of a hack, but allows the name 'shell' not to be hardwired in the
6438 of a hack, but allows the name 'shell' not to be hardwired in the
6433 magic (@) handler, which is problematic b/c it requires
6439 magic (@) handler, which is problematic b/c it requires
6434 polluting the global namespace with 'shell'. This in turn is
6440 polluting the global namespace with 'shell'. This in turn is
6435 fragile: if a user redefines a variable called shell, things
6441 fragile: if a user redefines a variable called shell, things
6436 break.
6442 break.
6437
6443
6438 - magic @: all functions available through @ need to be defined
6444 - magic @: all functions available through @ need to be defined
6439 as magic_<name>, even though they can be called simply as
6445 as magic_<name>, even though they can be called simply as
6440 @<name>. This allows the special command @magic to gather
6446 @<name>. This allows the special command @magic to gather
6441 information automatically about all existing magic functions,
6447 information automatically about all existing magic functions,
6442 even if they are run-time user extensions, by parsing the shell
6448 even if they are run-time user extensions, by parsing the shell
6443 instance __dict__ looking for special magic_ names.
6449 instance __dict__ looking for special magic_ names.
6444
6450
6445 - mainloop: added *two* local namespace parameters. This allows
6451 - mainloop: added *two* local namespace parameters. This allows
6446 the class to differentiate between parameters which were there
6452 the class to differentiate between parameters which were there
6447 before and after command line initialization was processed. This
6453 before and after command line initialization was processed. This
6448 way, later @who can show things loaded at startup by the
6454 way, later @who can show things loaded at startup by the
6449 user. This trick was necessary to make session saving/reloading
6455 user. This trick was necessary to make session saving/reloading
6450 really work: ideally after saving/exiting/reloading a session,
6456 really work: ideally after saving/exiting/reloading a session,
6451 *everything* should look the same, including the output of @who. I
6457 *everything* should look the same, including the output of @who. I
6452 was only able to make this work with this double namespace
6458 was only able to make this work with this double namespace
6453 trick.
6459 trick.
6454
6460
6455 - added a header to the logfile which allows (almost) full
6461 - added a header to the logfile which allows (almost) full
6456 session restoring.
6462 session restoring.
6457
6463
6458 - prepend lines beginning with @ or !, with a and log
6464 - prepend lines beginning with @ or !, with a and log
6459 them. Why? !lines: may be useful to know what you did @lines:
6465 them. Why? !lines: may be useful to know what you did @lines:
6460 they may affect session state. So when restoring a session, at
6466 they may affect session state. So when restoring a session, at
6461 least inform the user of their presence. I couldn't quite get
6467 least inform the user of their presence. I couldn't quite get
6462 them to properly re-execute, but at least the user is warned.
6468 them to properly re-execute, but at least the user is warned.
6463
6469
6464 * Started ChangeLog.
6470 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now