##// END OF EJS Templates
no auto_alias in %redashdir...
vivainio -
Show More
@@ -1,104 +1,104 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """ IPython extension: add %rehashdir magic
2 """ IPython extension: add %rehashdir magic
3
3
4 Usage:
4 Usage:
5
5
6 %rehashdir c:/bin c:/tools
6 %rehashdir c:/bin c:/tools
7 - Add all executables under c:/bin and c:/tools to alias table, in
7 - Add all executables under c:/bin and c:/tools to alias table, in
8 order to make them directly executable from any directory.
8 order to make them directly executable from any directory.
9
9
10 This also serves as an example on how to extend ipython
10 This also serves as an example on how to extend ipython
11 with new magic functions.
11 with new magic functions.
12
12
13 Unlike rest of ipython, this requires Python 2.4 (optional
13 Unlike rest of ipython, this requires Python 2.4 (optional
14 extensions are allowed to do that).
14 extensions are allowed to do that).
15
15
16 To install, add
16 To install, add
17
17
18 "import_mod ext_rehashdir"
18 "import_mod ext_rehashdir"
19
19
20 To your ipythonrc or just execute "import rehash_dir" in ipython
20 To your ipythonrc or just execute "import rehash_dir" in ipython
21 prompt.
21 prompt.
22
22
23
23
24 $Id: InterpreterExec.py 994 2006-01-08 08:29:44Z fperez $
24 $Id: InterpreterExec.py 994 2006-01-08 08:29:44Z fperez $
25 """
25 """
26
26
27 import IPython.ipapi
27 import IPython.ipapi
28 ip = IPython.ipapi.get()
28 ip = IPython.ipapi.get()
29
29
30
30
31 import os,re,fnmatch
31 import os,re,fnmatch
32
32
33 def rehashdir_f(self,arg):
33 def rehashdir_f(self,arg):
34 """ Add executables in all specified dirs to alias table
34 """ Add executables in all specified dirs to alias table
35
35
36 Usage:
36 Usage:
37
37
38 %rehashdir c:/bin;c:/tools
38 %rehashdir c:/bin;c:/tools
39 - Add all executables under c:/bin and c:/tools to alias table, in
39 - Add all executables under c:/bin and c:/tools to alias table, in
40 order to make them directly executable from any directory.
40 order to make them directly executable from any directory.
41
41
42 Without arguments, add all executables in current directory.
42 Without arguments, add all executables in current directory.
43
43
44 """
44 """
45
45
46 # most of the code copied from Magic.magic_rehashx
46 # most of the code copied from Magic.magic_rehashx
47
47
48 def isjunk(fname):
48 def isjunk(fname):
49 junk = ['*~']
49 junk = ['*~']
50 for j in junk:
50 for j in junk:
51 if fnmatch.fnmatch(fname, j):
51 if fnmatch.fnmatch(fname, j):
52 return True
52 return True
53 return False
53 return False
54
54
55 if not arg:
55 if not arg:
56 arg = '.'
56 arg = '.'
57 path = map(os.path.abspath,arg.split(';'))
57 path = map(os.path.abspath,arg.split(';'))
58 alias_table = self.shell.alias_table
58 alias_table = self.shell.alias_table
59
59
60 if os.name == 'posix':
60 if os.name == 'posix':
61 isexec = lambda fname:os.path.isfile(fname) and \
61 isexec = lambda fname:os.path.isfile(fname) and \
62 os.access(fname,os.X_OK)
62 os.access(fname,os.X_OK)
63 else:
63 else:
64
64
65 try:
65 try:
66 winext = os.environ['pathext'].replace(';','|').replace('.','')
66 winext = os.environ['pathext'].replace(';','|').replace('.','')
67 except KeyError:
67 except KeyError:
68 winext = 'exe|com|bat|py'
68 winext = 'exe|com|bat|py'
69 if 'py' not in winext:
69 if 'py' not in winext:
70 winext += '|py'
70 winext += '|py'
71
71
72 execre = re.compile(r'(.*)\.(%s)$' % winext,re.IGNORECASE)
72 execre = re.compile(r'(.*)\.(%s)$' % winext,re.IGNORECASE)
73 isexec = lambda fname:os.path.isfile(fname) and execre.match(fname)
73 isexec = lambda fname:os.path.isfile(fname) and execre.match(fname)
74 savedir = os.getcwd()
74 savedir = os.getcwd()
75 try:
75 try:
76 # write the whole loop for posix/Windows so we don't have an if in
76 # write the whole loop for posix/Windows so we don't have an if in
77 # the innermost part
77 # the innermost part
78 if os.name == 'posix':
78 if os.name == 'posix':
79 for pdir in path:
79 for pdir in path:
80 os.chdir(pdir)
80 os.chdir(pdir)
81 for ff in os.listdir(pdir):
81 for ff in os.listdir(pdir):
82 if isexec(ff) and not isjunk(ff):
82 if isexec(ff) and not isjunk(ff):
83 # each entry in the alias table must be (N,name),
83 # each entry in the alias table must be (N,name),
84 # where N is the number of positional arguments of the
84 # where N is the number of positional arguments of the
85 # alias.
85 # alias.
86 src,tgt = os.path.splitext(ff)[0], os.path.abspath(ff)
86 src,tgt = os.path.splitext(ff)[0], os.path.abspath(ff)
87 print "Aliasing:",src,"->",tgt
87 print "Aliasing:",src,"->",tgt
88 alias_table[src] = (0,tgt)
88 alias_table[src] = (0,tgt)
89 else:
89 else:
90 for pdir in path:
90 for pdir in path:
91 os.chdir(pdir)
91 os.chdir(pdir)
92 for ff in os.listdir(pdir):
92 for ff in os.listdir(pdir):
93 if isexec(ff) and not isjunk(ff):
93 if isexec(ff) and not isjunk(ff):
94 src, tgt = execre.sub(r'\1',ff), os.path.abspath(ff)
94 src, tgt = execre.sub(r'\1',ff), os.path.abspath(ff)
95 print "Aliasing:",src,"->",tgt
95 print "Aliasing:",src,"->",tgt
96 alias_table[src] = (0,tgt)
96 alias_table[src] = (0,tgt)
97 # Make sure the alias table doesn't contain keywords or builtins
97 # Make sure the alias table doesn't contain keywords or builtins
98 self.shell.alias_table_validate()
98 self.shell.alias_table_validate()
99 # Call again init_auto_alias() so we get 'rm -i' and other
99 # Call again init_auto_alias() so we get 'rm -i' and other
100 # modified aliases since %rehashx will probably clobber them
100 # modified aliases since %rehashx will probably clobber them
101 self.shell.init_auto_alias()
101 # self.shell.init_auto_alias()
102 finally:
102 finally:
103 os.chdir(savedir)
103 os.chdir(savedir)
104 ip.expose_magic("rehashdir",rehashdir_f)
104 ip.expose_magic("rehashdir",rehashdir_f)
@@ -1,183 +1,187 b''
1 """Shell mode for IPython.
1 """Shell mode for IPython.
2
2
3 Start ipython in shell mode by invoking "ipython -p sh"
3 Start ipython in shell mode by invoking "ipython -p sh"
4
4
5 (the old version, "ipython -p pysh" still works but this is the more "modern"
5 (the old version, "ipython -p pysh" still works but this is the more "modern"
6 shell mode and is recommended for users who don't care about pysh-mode
6 shell mode and is recommended for users who don't care about pysh-mode
7 compatibility)
7 compatibility)
8 """
8 """
9
9
10 from IPython import ipapi
10 from IPython import ipapi
11 import os,textwrap
11 import os,textwrap
12
12
13 # The import below effectively obsoletes your old-style ipythonrc[.ini],
13 # The import below effectively obsoletes your old-style ipythonrc[.ini],
14 # so consider yourself warned!
14 # so consider yourself warned!
15
15
16 import ipy_defaults
16 import ipy_defaults
17
17
18 def main():
18 def main():
19 ip = ipapi.get()
19 ip = ipapi.get()
20 o = ip.options
20 o = ip.options
21 # autocall to "full" mode (smart mode is default, I like full mode)
21 # autocall to "full" mode (smart mode is default, I like full mode)
22
22
23 o.autocall = 2
23 o.autocall = 2
24
24
25 # Jason Orendorff's path class is handy to have in user namespace
25 # Jason Orendorff's path class is handy to have in user namespace
26 # if you are doing shell-like stuff
26 # if you are doing shell-like stuff
27 try:
27 try:
28 ip.ex("from path import path" )
28 ip.ex("from path import path" )
29 except ImportError:
29 except ImportError:
30 pass
30 pass
31
31
32 # beefed up %env is handy in shell mode
33 import envpersist
34
35
32 ip.ex('import os')
36 ip.ex('import os')
33 ip.ex("def up(): os.chdir('..')")
37 ip.ex("def up(): os.chdir('..')")
34
38
35 # Get pysh-like prompt for all profiles.
39 # Get pysh-like prompt for all profiles.
36
40
37 o.prompt_in1= '\C_LightBlue[\C_LightCyan\Y1\C_LightBlue]\C_Green|\#> '
41 o.prompt_in1= '\C_LightBlue[\C_LightCyan\Y1\C_LightBlue]\C_Green|\#> '
38 o.prompt_in2= '\C_Green|\C_LightGreen\D\C_Green> '
42 o.prompt_in2= '\C_Green|\C_LightGreen\D\C_Green> '
39 o.prompt_out= '<\#> '
43 o.prompt_out= '<\#> '
40
44
41 from IPython import Release
45 from IPython import Release
42
46
43 import sys
47 import sys
44 # I like my banner minimal.
48 # I like my banner minimal.
45 o.banner = "Py %s IPy %s\n" % (sys.version.split('\n')[0],Release.version)
49 o.banner = "Py %s IPy %s\n" % (sys.version.split('\n')[0],Release.version)
46
50
47 # make 'd' an alias for ls -F
51 # make 'd' an alias for ls -F
48
52
49 ip.magic('alias d ls -F --color=auto')
53 ip.magic('alias d ls -F --color=auto')
50
54
51 # Make available all system commands through "rehashing" immediately.
55 # Make available all system commands through "rehashing" immediately.
52 # You can comment these lines out to speed up startup on very slow
56 # You can comment these lines out to speed up startup on very slow
53 # machines, and to conserve a bit of memory. Note that pysh profile does this
57 # machines, and to conserve a bit of memory. Note that pysh profile does this
54 # automatically
58 # automatically
55 ip.IP.default_option('cd','-q')
59 ip.IP.default_option('cd','-q')
56
60
57
61
58 o.prompts_pad_left="1"
62 o.prompts_pad_left="1"
59 # Remove all blank lines in between prompts, like a normal shell.
63 # Remove all blank lines in between prompts, like a normal shell.
60 o.separate_in="0"
64 o.separate_in="0"
61 o.separate_out="0"
65 o.separate_out="0"
62 o.separate_out2="0"
66 o.separate_out2="0"
63
67
64 # now alias all syscommands
68 # now alias all syscommands
65
69
66 db = ip.db
70 db = ip.db
67
71
68 syscmds = db.get("syscmdlist",[] )
72 syscmds = db.get("syscmdlist",[] )
69 if not syscmds:
73 if not syscmds:
70 print textwrap.dedent("""
74 print textwrap.dedent("""
71 System command list not initialized, probably the first run...
75 System command list not initialized, probably the first run...
72 running %rehashx to refresh the command list. Run %rehashx
76 running %rehashx to refresh the command list. Run %rehashx
73 again to refresh command list (after installing new software etc.)
77 again to refresh command list (after installing new software etc.)
74 """)
78 """)
75 ip.magic('rehashx')
79 ip.magic('rehashx')
76 syscmds = db.get("syscmdlist")
80 syscmds = db.get("syscmdlist")
77 for cmd in syscmds:
81 for cmd in syscmds:
78 #print "al",cmd
82 #print "al",cmd
79 noext, ext = os.path.splitext(cmd)
83 noext, ext = os.path.splitext(cmd)
80 ip.IP.alias_table[noext] = (0,cmd)
84 ip.IP.alias_table[noext] = (0,cmd)
81 extend_shell_behavior(ip)
85 extend_shell_behavior(ip)
82
86
83 def extend_shell_behavior(ip):
87 def extend_shell_behavior(ip):
84
88
85 # Instead of making signature a global variable tie it to IPSHELL.
89 # Instead of making signature a global variable tie it to IPSHELL.
86 # In future if it is required to distinguish between different
90 # In future if it is required to distinguish between different
87 # shells we can assign a signature per shell basis
91 # shells we can assign a signature per shell basis
88 ip.IP.__sig__ = 0xa005
92 ip.IP.__sig__ = 0xa005
89 # mark the IPSHELL with this signature
93 # mark the IPSHELL with this signature
90 ip.IP.user_ns['__builtins__'].__dict__['__sig__'] = ip.IP.__sig__
94 ip.IP.user_ns['__builtins__'].__dict__['__sig__'] = ip.IP.__sig__
91
95
92 from IPython.Itpl import ItplNS
96 from IPython.Itpl import ItplNS
93 from IPython.genutils import shell
97 from IPython.genutils import shell
94 # utility to expand user variables via Itpl
98 # utility to expand user variables via Itpl
95 # xxx do something sensible with depth?
99 # xxx do something sensible with depth?
96 ip.IP.var_expand = lambda cmd, lvars=None, depth=2: \
100 ip.IP.var_expand = lambda cmd, lvars=None, depth=2: \
97 str(ItplNS(cmd.replace('#','\#'), ip.IP.user_ns, get_locals()))
101 str(ItplNS(cmd.replace('#','\#'), ip.IP.user_ns, get_locals()))
98
102
99 def get_locals():
103 def get_locals():
100 """ Substituting a variable through Itpl deep inside the IPSHELL stack
104 """ Substituting a variable through Itpl deep inside the IPSHELL stack
101 requires the knowledge of all the variables in scope upto the last
105 requires the knowledge of all the variables in scope upto the last
102 IPSHELL frame. This routine simply merges all the local variables
106 IPSHELL frame. This routine simply merges all the local variables
103 on the IPSHELL stack without worrying about their scope rules
107 on the IPSHELL stack without worrying about their scope rules
104 """
108 """
105 import sys
109 import sys
106 # note lambda expression constitues a function call
110 # note lambda expression constitues a function call
107 # hence fno should be incremented by one
111 # hence fno should be incremented by one
108 getsig = lambda fno: sys._getframe(fno+1).f_globals \
112 getsig = lambda fno: sys._getframe(fno+1).f_globals \
109 ['__builtins__'].__dict__['__sig__']
113 ['__builtins__'].__dict__['__sig__']
110 getlvars = lambda fno: sys._getframe(fno+1).f_locals
114 getlvars = lambda fno: sys._getframe(fno+1).f_locals
111 # trackback until we enter the IPSHELL
115 # trackback until we enter the IPSHELL
112 frame_no = 1
116 frame_no = 1
113 sig = ip.IP.__sig__
117 sig = ip.IP.__sig__
114 fsig = ~sig
118 fsig = ~sig
115 while fsig != sig :
119 while fsig != sig :
116 try:
120 try:
117 fsig = getsig(frame_no)
121 fsig = getsig(frame_no)
118 except (AttributeError, KeyError):
122 except (AttributeError, KeyError):
119 frame_no += 1
123 frame_no += 1
120 except ValueError:
124 except ValueError:
121 # stack is depleted
125 # stack is depleted
122 # call did not originate from IPSHELL
126 # call did not originate from IPSHELL
123 return {}
127 return {}
124 first_frame = frame_no
128 first_frame = frame_no
125 # walk further back until we exit from IPSHELL or deplete stack
129 # walk further back until we exit from IPSHELL or deplete stack
126 try:
130 try:
127 while(sig == getsig(frame_no+1)):
131 while(sig == getsig(frame_no+1)):
128 frame_no += 1
132 frame_no += 1
129 except (AttributeError, KeyError, ValueError):
133 except (AttributeError, KeyError, ValueError):
130 pass
134 pass
131 # merge the locals from top down hence overriding
135 # merge the locals from top down hence overriding
132 # any re-definitions of variables, functions etc.
136 # any re-definitions of variables, functions etc.
133 lvars = {}
137 lvars = {}
134 for fno in range(frame_no, first_frame-1, -1):
138 for fno in range(frame_no, first_frame-1, -1):
135 lvars.update(getlvars(fno))
139 lvars.update(getlvars(fno))
136 #print '\n'*5, first_frame, frame_no, '\n', lvars, '\n'*5 #dbg
140 #print '\n'*5, first_frame, frame_no, '\n', lvars, '\n'*5 #dbg
137 return lvars
141 return lvars
138
142
139 def _runlines(lines):
143 def _runlines(lines):
140 """Run a string of one or more lines of source.
144 """Run a string of one or more lines of source.
141
145
142 This method is capable of running a string containing multiple source
146 This method is capable of running a string containing multiple source
143 lines, as if they had been entered at the IPython prompt. Since it
147 lines, as if they had been entered at the IPython prompt. Since it
144 exposes IPython's processing machinery, the given strings can contain
148 exposes IPython's processing machinery, the given strings can contain
145 magic calls (%magic), special shell access (!cmd), etc."""
149 magic calls (%magic), special shell access (!cmd), etc."""
146
150
147 # We must start with a clean buffer, in case this is run from an
151 # We must start with a clean buffer, in case this is run from an
148 # interactive IPython session (via a magic, for example).
152 # interactive IPython session (via a magic, for example).
149 ip.IP.resetbuffer()
153 ip.IP.resetbuffer()
150 lines = lines.split('\n')
154 lines = lines.split('\n')
151 more = 0
155 more = 0
152 command = ''
156 command = ''
153 for line in lines:
157 for line in lines:
154 # skip blank lines so we don't mess up the prompt counter, but do
158 # skip blank lines so we don't mess up the prompt counter, but do
155 # NOT skip even a blank line if we are in a code block (more is
159 # NOT skip even a blank line if we are in a code block (more is
156 # true)
160 # true)
157 # if command is not empty trim the line
161 # if command is not empty trim the line
158 if command != '' :
162 if command != '' :
159 line = line.strip()
163 line = line.strip()
160 # add the broken line to the command
164 # add the broken line to the command
161 if line and line[-1] == '\\' :
165 if line and line[-1] == '\\' :
162 command += line[0:-1] + ' '
166 command += line[0:-1] + ' '
163 more = True
167 more = True
164 continue
168 continue
165 else :
169 else :
166 # add the last (current) line to the command
170 # add the last (current) line to the command
167 command += line
171 command += line
168 if command or more:
172 if command or more:
169 more = ip.IP.push(ip.IP.prefilter(command,more))
173 more = ip.IP.push(ip.IP.prefilter(command,more))
170 command = ''
174 command = ''
171 # IPython's runsource returns None if there was an error
175 # IPython's runsource returns None if there was an error
172 # compiling the code. This allows us to stop processing right
176 # compiling the code. This allows us to stop processing right
173 # away, so the user gets the error message at the right place.
177 # away, so the user gets the error message at the right place.
174 if more is None:
178 if more is None:
175 break
179 break
176 # final newline in case the input didn't have it, so that the code
180 # final newline in case the input didn't have it, so that the code
177 # actually does get executed
181 # actually does get executed
178 if more:
182 if more:
179 ip.IP.push('\n')
183 ip.IP.push('\n')
180
184
181 ip.IP.runlines = _runlines
185 ip.IP.runlines = _runlines
182
186
183 main()
187 main()
@@ -1,6299 +1,6307 b''
1 2007-03-14 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ext_rehashdir.py: Do not do auto_alias
4 in %rehashdir, it clobbers %store'd aliases.
5
6 * UserConfig/ipy_profile_sh.py: envpersist.py extension
7 (beefed up %env) imported for sh profile.
8
1 2007-03-10 Walter Doerwald <walter@livinglogic.de>
9 2007-03-10 Walter Doerwald <walter@livinglogic.de>
2
10
3 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
11 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
4 as the default browser.
12 as the default browser.
5 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
13 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
6 As igrid displays all attributes it ever encounters, fetch() (which has
14 As igrid displays all attributes it ever encounters, fetch() (which has
7 been renamed to _fetch()) doesn't have to recalculate the display attributes
15 been renamed to _fetch()) doesn't have to recalculate the display attributes
8 every time a new item is fetched. This should speed up scrolling.
16 every time a new item is fetched. This should speed up scrolling.
9
17
10 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
18 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
11
19
12 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
20 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
13 Schmolck's recently reported tab-completion bug (my previous one
21 Schmolck's recently reported tab-completion bug (my previous one
14 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
22 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
15
23
16 2007-03-09 Walter Doerwald <walter@livinglogic.de>
24 2007-03-09 Walter Doerwald <walter@livinglogic.de>
17
25
18 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
26 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
19 Close help window if exiting igrid.
27 Close help window if exiting igrid.
20
28
21 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
29 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
22
30
23 * IPython/Extensions/ipy_defaults.py: Check if readline is available
31 * IPython/Extensions/ipy_defaults.py: Check if readline is available
24 before calling functions from readline.
32 before calling functions from readline.
25
33
26 2007-03-02 Walter Doerwald <walter@livinglogic.de>
34 2007-03-02 Walter Doerwald <walter@livinglogic.de>
27
35
28 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
36 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
29 igrid is a wxPython-based display object for ipipe. If your system has
37 igrid is a wxPython-based display object for ipipe. If your system has
30 wx installed igrid will be the default display. Without wx ipipe falls
38 wx installed igrid will be the default display. Without wx ipipe falls
31 back to ibrowse (which needs curses). If no curses is installed ipipe
39 back to ibrowse (which needs curses). If no curses is installed ipipe
32 falls back to idump.
40 falls back to idump.
33
41
34 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
42 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
35
43
36 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
44 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
37 my changes from yesterday, they introduced bugs. Will reactivate
45 my changes from yesterday, they introduced bugs. Will reactivate
38 once I get a correct solution, which will be much easier thanks to
46 once I get a correct solution, which will be much easier thanks to
39 Dan Milstein's new prefilter test suite.
47 Dan Milstein's new prefilter test suite.
40
48
41 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
49 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
42
50
43 * IPython/iplib.py (split_user_input): fix input splitting so we
51 * IPython/iplib.py (split_user_input): fix input splitting so we
44 don't attempt attribute accesses on things that can't possibly be
52 don't attempt attribute accesses on things that can't possibly be
45 valid Python attributes. After a bug report by Alex Schmolck.
53 valid Python attributes. After a bug report by Alex Schmolck.
46 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
54 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
47 %magic with explicit % prefix.
55 %magic with explicit % prefix.
48
56
49 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
57 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
50
58
51 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
59 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
52 avoid a DeprecationWarning from GTK.
60 avoid a DeprecationWarning from GTK.
53
61
54 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
62 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
55
63
56 * IPython/genutils.py (clock): I modified clock() to return total
64 * IPython/genutils.py (clock): I modified clock() to return total
57 time, user+system. This is a more commonly needed metric. I also
65 time, user+system. This is a more commonly needed metric. I also
58 introduced the new clocku/clocks to get only user/system time if
66 introduced the new clocku/clocks to get only user/system time if
59 one wants those instead.
67 one wants those instead.
60
68
61 ***WARNING: API CHANGE*** clock() used to return only user time,
69 ***WARNING: API CHANGE*** clock() used to return only user time,
62 so if you want exactly the same results as before, use clocku
70 so if you want exactly the same results as before, use clocku
63 instead.
71 instead.
64
72
65 2007-02-22 Ville Vainio <vivainio@gmail.com>
73 2007-02-22 Ville Vainio <vivainio@gmail.com>
66
74
67 * IPython/Extensions/ipy_p4.py: Extension for improved
75 * IPython/Extensions/ipy_p4.py: Extension for improved
68 p4 (perforce version control system) experience.
76 p4 (perforce version control system) experience.
69 Adds %p4 magic with p4 command completion and
77 Adds %p4 magic with p4 command completion and
70 automatic -G argument (marshall output as python dict)
78 automatic -G argument (marshall output as python dict)
71
79
72 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
80 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
73
81
74 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
82 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
75 stop marks.
83 stop marks.
76 (ClearingMixin): a simple mixin to easily make a Demo class clear
84 (ClearingMixin): a simple mixin to easily make a Demo class clear
77 the screen in between blocks and have empty marquees. The
85 the screen in between blocks and have empty marquees. The
78 ClearDemo and ClearIPDemo classes that use it are included.
86 ClearDemo and ClearIPDemo classes that use it are included.
79
87
80 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
88 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
81
89
82 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
90 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
83 protect against exceptions at Python shutdown time. Patch
91 protect against exceptions at Python shutdown time. Patch
84 sumbmitted to upstream.
92 sumbmitted to upstream.
85
93
86 2007-02-14 Walter Doerwald <walter@livinglogic.de>
94 2007-02-14 Walter Doerwald <walter@livinglogic.de>
87
95
88 * IPython/Extensions/ibrowse.py: If entering the first object level
96 * IPython/Extensions/ibrowse.py: If entering the first object level
89 (i.e. the object for which the browser has been started) fails,
97 (i.e. the object for which the browser has been started) fails,
90 now the error is raised directly (aborting the browser) instead of
98 now the error is raised directly (aborting the browser) instead of
91 running into an empty levels list later.
99 running into an empty levels list later.
92
100
93 2007-02-03 Walter Doerwald <walter@livinglogic.de>
101 2007-02-03 Walter Doerwald <walter@livinglogic.de>
94
102
95 * IPython/Extensions/ipipe.py: Add an xrepr implementation
103 * IPython/Extensions/ipipe.py: Add an xrepr implementation
96 for the noitem object.
104 for the noitem object.
97
105
98 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
106 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
99
107
100 * IPython/completer.py (Completer.attr_matches): Fix small
108 * IPython/completer.py (Completer.attr_matches): Fix small
101 tab-completion bug with Enthought Traits objects with units.
109 tab-completion bug with Enthought Traits objects with units.
102 Thanks to a bug report by Tom Denniston
110 Thanks to a bug report by Tom Denniston
103 <tom.denniston-AT-alum.dartmouth.org>.
111 <tom.denniston-AT-alum.dartmouth.org>.
104
112
105 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
113 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
106
114
107 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
115 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
108 bug where only .ipy or .py would be completed. Once the first
116 bug where only .ipy or .py would be completed. Once the first
109 argument to %run has been given, all completions are valid because
117 argument to %run has been given, all completions are valid because
110 they are the arguments to the script, which may well be non-python
118 they are the arguments to the script, which may well be non-python
111 filenames.
119 filenames.
112
120
113 * IPython/irunner.py (InteractiveRunner.run_source): major updates
121 * IPython/irunner.py (InteractiveRunner.run_source): major updates
114 to irunner to allow it to correctly support real doctesting of
122 to irunner to allow it to correctly support real doctesting of
115 out-of-process ipython code.
123 out-of-process ipython code.
116
124
117 * IPython/Magic.py (magic_cd): Make the setting of the terminal
125 * IPython/Magic.py (magic_cd): Make the setting of the terminal
118 title an option (-noterm_title) because it completely breaks
126 title an option (-noterm_title) because it completely breaks
119 doctesting.
127 doctesting.
120
128
121 * IPython/demo.py: fix IPythonDemo class that was not actually working.
129 * IPython/demo.py: fix IPythonDemo class that was not actually working.
122
130
123 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
131 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
124
132
125 * IPython/irunner.py (main): fix small bug where extensions were
133 * IPython/irunner.py (main): fix small bug where extensions were
126 not being correctly recognized.
134 not being correctly recognized.
127
135
128 2007-01-23 Walter Doerwald <walter@livinglogic.de>
136 2007-01-23 Walter Doerwald <walter@livinglogic.de>
129
137
130 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
138 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
131 a string containing a single line yields the string itself as the
139 a string containing a single line yields the string itself as the
132 only item.
140 only item.
133
141
134 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
142 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
135 object if it's the same as the one on the last level (This avoids
143 object if it's the same as the one on the last level (This avoids
136 infinite recursion for one line strings).
144 infinite recursion for one line strings).
137
145
138 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
146 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
139
147
140 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
148 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
141 all output streams before printing tracebacks. This ensures that
149 all output streams before printing tracebacks. This ensures that
142 user output doesn't end up interleaved with traceback output.
150 user output doesn't end up interleaved with traceback output.
143
151
144 2007-01-10 Ville Vainio <vivainio@gmail.com>
152 2007-01-10 Ville Vainio <vivainio@gmail.com>
145
153
146 * Extensions/envpersist.py: Turbocharged %env that remembers
154 * Extensions/envpersist.py: Turbocharged %env that remembers
147 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
155 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
148 "%env VISUAL=jed".
156 "%env VISUAL=jed".
149
157
150 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
158 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
151
159
152 * IPython/iplib.py (showtraceback): ensure that we correctly call
160 * IPython/iplib.py (showtraceback): ensure that we correctly call
153 custom handlers in all cases (some with pdb were slipping through,
161 custom handlers in all cases (some with pdb were slipping through,
154 but I'm not exactly sure why).
162 but I'm not exactly sure why).
155
163
156 * IPython/Debugger.py (Tracer.__init__): added new class to
164 * IPython/Debugger.py (Tracer.__init__): added new class to
157 support set_trace-like usage of IPython's enhanced debugger.
165 support set_trace-like usage of IPython's enhanced debugger.
158
166
159 2006-12-24 Ville Vainio <vivainio@gmail.com>
167 2006-12-24 Ville Vainio <vivainio@gmail.com>
160
168
161 * ipmaker.py: more informative message when ipy_user_conf
169 * ipmaker.py: more informative message when ipy_user_conf
162 import fails (suggest running %upgrade).
170 import fails (suggest running %upgrade).
163
171
164 * tools/run_ipy_in_profiler.py: Utility to see where
172 * tools/run_ipy_in_profiler.py: Utility to see where
165 the time during IPython startup is spent.
173 the time during IPython startup is spent.
166
174
167 2006-12-20 Ville Vainio <vivainio@gmail.com>
175 2006-12-20 Ville Vainio <vivainio@gmail.com>
168
176
169 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
177 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
170
178
171 * ipapi.py: Add new ipapi method, expand_alias.
179 * ipapi.py: Add new ipapi method, expand_alias.
172
180
173 * Release.py: Bump up version to 0.7.4.svn
181 * Release.py: Bump up version to 0.7.4.svn
174
182
175 2006-12-17 Ville Vainio <vivainio@gmail.com>
183 2006-12-17 Ville Vainio <vivainio@gmail.com>
176
184
177 * Extensions/jobctrl.py: Fixed &cmd arg arg...
185 * Extensions/jobctrl.py: Fixed &cmd arg arg...
178 to work properly on posix too
186 to work properly on posix too
179
187
180 * Release.py: Update revnum (version is still just 0.7.3).
188 * Release.py: Update revnum (version is still just 0.7.3).
181
189
182 2006-12-15 Ville Vainio <vivainio@gmail.com>
190 2006-12-15 Ville Vainio <vivainio@gmail.com>
183
191
184 * scripts/ipython_win_post_install: create ipython.py in
192 * scripts/ipython_win_post_install: create ipython.py in
185 prefix + "/scripts".
193 prefix + "/scripts".
186
194
187 * Release.py: Update version to 0.7.3.
195 * Release.py: Update version to 0.7.3.
188
196
189 2006-12-14 Ville Vainio <vivainio@gmail.com>
197 2006-12-14 Ville Vainio <vivainio@gmail.com>
190
198
191 * scripts/ipython_win_post_install: Overwrite old shortcuts
199 * scripts/ipython_win_post_install: Overwrite old shortcuts
192 if they already exist
200 if they already exist
193
201
194 * Release.py: release 0.7.3rc2
202 * Release.py: release 0.7.3rc2
195
203
196 2006-12-13 Ville Vainio <vivainio@gmail.com>
204 2006-12-13 Ville Vainio <vivainio@gmail.com>
197
205
198 * Branch and update Release.py for 0.7.3rc1
206 * Branch and update Release.py for 0.7.3rc1
199
207
200 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
208 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
201
209
202 * IPython/Shell.py (IPShellWX): update for current WX naming
210 * IPython/Shell.py (IPShellWX): update for current WX naming
203 conventions, to avoid a deprecation warning with current WX
211 conventions, to avoid a deprecation warning with current WX
204 versions. Thanks to a report by Danny Shevitz.
212 versions. Thanks to a report by Danny Shevitz.
205
213
206 2006-12-12 Ville Vainio <vivainio@gmail.com>
214 2006-12-12 Ville Vainio <vivainio@gmail.com>
207
215
208 * ipmaker.py: apply david cournapeau's patch to make
216 * ipmaker.py: apply david cournapeau's patch to make
209 import_some work properly even when ipythonrc does
217 import_some work properly even when ipythonrc does
210 import_some on empty list (it was an old bug!).
218 import_some on empty list (it was an old bug!).
211
219
212 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
220 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
213 Add deprecation note to ipythonrc and a url to wiki
221 Add deprecation note to ipythonrc and a url to wiki
214 in ipy_user_conf.py
222 in ipy_user_conf.py
215
223
216
224
217 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
225 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
218 as if it was typed on IPython command prompt, i.e.
226 as if it was typed on IPython command prompt, i.e.
219 as IPython script.
227 as IPython script.
220
228
221 * example-magic.py, magic_grepl.py: remove outdated examples
229 * example-magic.py, magic_grepl.py: remove outdated examples
222
230
223 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
231 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
224
232
225 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
233 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
226 is called before any exception has occurred.
234 is called before any exception has occurred.
227
235
228 2006-12-08 Ville Vainio <vivainio@gmail.com>
236 2006-12-08 Ville Vainio <vivainio@gmail.com>
229
237
230 * Extensions/ipy_stock_completers.py: fix cd completer
238 * Extensions/ipy_stock_completers.py: fix cd completer
231 to translate /'s to \'s again.
239 to translate /'s to \'s again.
232
240
233 * completer.py: prevent traceback on file completions w/
241 * completer.py: prevent traceback on file completions w/
234 backslash.
242 backslash.
235
243
236 * Release.py: Update release number to 0.7.3b3 for release
244 * Release.py: Update release number to 0.7.3b3 for release
237
245
238 2006-12-07 Ville Vainio <vivainio@gmail.com>
246 2006-12-07 Ville Vainio <vivainio@gmail.com>
239
247
240 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
248 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
241 while executing external code. Provides more shell-like behaviour
249 while executing external code. Provides more shell-like behaviour
242 and overall better response to ctrl + C / ctrl + break.
250 and overall better response to ctrl + C / ctrl + break.
243
251
244 * tools/make_tarball.py: new script to create tarball straight from svn
252 * tools/make_tarball.py: new script to create tarball straight from svn
245 (setup.py sdist doesn't work on win32).
253 (setup.py sdist doesn't work on win32).
246
254
247 * Extensions/ipy_stock_completers.py: fix cd completer to give up
255 * Extensions/ipy_stock_completers.py: fix cd completer to give up
248 on dirnames with spaces and use the default completer instead.
256 on dirnames with spaces and use the default completer instead.
249
257
250 * Revision.py: Change version to 0.7.3b2 for release.
258 * Revision.py: Change version to 0.7.3b2 for release.
251
259
252 2006-12-05 Ville Vainio <vivainio@gmail.com>
260 2006-12-05 Ville Vainio <vivainio@gmail.com>
253
261
254 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
262 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
255 pydb patch 4 (rm debug printing, py 2.5 checking)
263 pydb patch 4 (rm debug printing, py 2.5 checking)
256
264
257 2006-11-30 Walter Doerwald <walter@livinglogic.de>
265 2006-11-30 Walter Doerwald <walter@livinglogic.de>
258 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
266 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
259 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
267 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
260 "refreshfind" (mapped to "R") does the same but tries to go back to the same
268 "refreshfind" (mapped to "R") does the same but tries to go back to the same
261 object the cursor was on before the refresh. The command "markrange" is
269 object the cursor was on before the refresh. The command "markrange" is
262 mapped to "%" now.
270 mapped to "%" now.
263 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
271 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
264
272
265 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
273 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
266
274
267 * IPython/Magic.py (magic_debug): new %debug magic to activate the
275 * IPython/Magic.py (magic_debug): new %debug magic to activate the
268 interactive debugger on the last traceback, without having to call
276 interactive debugger on the last traceback, without having to call
269 %pdb and rerun your code. Made minor changes in various modules,
277 %pdb and rerun your code. Made minor changes in various modules,
270 should automatically recognize pydb if available.
278 should automatically recognize pydb if available.
271
279
272 2006-11-28 Ville Vainio <vivainio@gmail.com>
280 2006-11-28 Ville Vainio <vivainio@gmail.com>
273
281
274 * completer.py: If the text start with !, show file completions
282 * completer.py: If the text start with !, show file completions
275 properly. This helps when trying to complete command name
283 properly. This helps when trying to complete command name
276 for shell escapes.
284 for shell escapes.
277
285
278 2006-11-27 Ville Vainio <vivainio@gmail.com>
286 2006-11-27 Ville Vainio <vivainio@gmail.com>
279
287
280 * ipy_stock_completers.py: bzr completer submitted by Stefan van
288 * ipy_stock_completers.py: bzr completer submitted by Stefan van
281 der Walt. Clean up svn and hg completers by using a common
289 der Walt. Clean up svn and hg completers by using a common
282 vcs_completer.
290 vcs_completer.
283
291
284 2006-11-26 Ville Vainio <vivainio@gmail.com>
292 2006-11-26 Ville Vainio <vivainio@gmail.com>
285
293
286 * Remove ipconfig and %config; you should use _ip.options structure
294 * Remove ipconfig and %config; you should use _ip.options structure
287 directly instead!
295 directly instead!
288
296
289 * genutils.py: add wrap_deprecated function for deprecating callables
297 * genutils.py: add wrap_deprecated function for deprecating callables
290
298
291 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
299 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
292 _ip.system instead. ipalias is redundant.
300 _ip.system instead. ipalias is redundant.
293
301
294 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
302 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
295 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
303 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
296 explicit.
304 explicit.
297
305
298 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
306 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
299 completer. Try it by entering 'hg ' and pressing tab.
307 completer. Try it by entering 'hg ' and pressing tab.
300
308
301 * macro.py: Give Macro a useful __repr__ method
309 * macro.py: Give Macro a useful __repr__ method
302
310
303 * Magic.py: %whos abbreviates the typename of Macro for brevity.
311 * Magic.py: %whos abbreviates the typename of Macro for brevity.
304
312
305 2006-11-24 Walter Doerwald <walter@livinglogic.de>
313 2006-11-24 Walter Doerwald <walter@livinglogic.de>
306 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
314 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
307 we don't get a duplicate ipipe module, where registration of the xrepr
315 we don't get a duplicate ipipe module, where registration of the xrepr
308 implementation for Text is useless.
316 implementation for Text is useless.
309
317
310 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
318 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
311
319
312 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
320 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
313
321
314 2006-11-24 Ville Vainio <vivainio@gmail.com>
322 2006-11-24 Ville Vainio <vivainio@gmail.com>
315
323
316 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
324 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
317 try to use "cProfile" instead of the slower pure python
325 try to use "cProfile" instead of the slower pure python
318 "profile"
326 "profile"
319
327
320 2006-11-23 Ville Vainio <vivainio@gmail.com>
328 2006-11-23 Ville Vainio <vivainio@gmail.com>
321
329
322 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
330 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
323 Qt+IPython+Designer link in documentation.
331 Qt+IPython+Designer link in documentation.
324
332
325 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
333 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
326 correct Pdb object to %pydb.
334 correct Pdb object to %pydb.
327
335
328
336
329 2006-11-22 Walter Doerwald <walter@livinglogic.de>
337 2006-11-22 Walter Doerwald <walter@livinglogic.de>
330 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
338 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
331 generic xrepr(), otherwise the list implementation would kick in.
339 generic xrepr(), otherwise the list implementation would kick in.
332
340
333 2006-11-21 Ville Vainio <vivainio@gmail.com>
341 2006-11-21 Ville Vainio <vivainio@gmail.com>
334
342
335 * upgrade_dir.py: Now actually overwrites a nonmodified user file
343 * upgrade_dir.py: Now actually overwrites a nonmodified user file
336 with one from UserConfig.
344 with one from UserConfig.
337
345
338 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
346 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
339 it was missing which broke the sh profile.
347 it was missing which broke the sh profile.
340
348
341 * completer.py: file completer now uses explicit '/' instead
349 * completer.py: file completer now uses explicit '/' instead
342 of os.path.join, expansion of 'foo' was broken on win32
350 of os.path.join, expansion of 'foo' was broken on win32
343 if there was one directory with name 'foobar'.
351 if there was one directory with name 'foobar'.
344
352
345 * A bunch of patches from Kirill Smelkov:
353 * A bunch of patches from Kirill Smelkov:
346
354
347 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
355 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
348
356
349 * [patch 7/9] Implement %page -r (page in raw mode) -
357 * [patch 7/9] Implement %page -r (page in raw mode) -
350
358
351 * [patch 5/9] ScientificPython webpage has moved
359 * [patch 5/9] ScientificPython webpage has moved
352
360
353 * [patch 4/9] The manual mentions %ds, should be %dhist
361 * [patch 4/9] The manual mentions %ds, should be %dhist
354
362
355 * [patch 3/9] Kill old bits from %prun doc.
363 * [patch 3/9] Kill old bits from %prun doc.
356
364
357 * [patch 1/9] Fix typos here and there.
365 * [patch 1/9] Fix typos here and there.
358
366
359 2006-11-08 Ville Vainio <vivainio@gmail.com>
367 2006-11-08 Ville Vainio <vivainio@gmail.com>
360
368
361 * completer.py (attr_matches): catch all exceptions raised
369 * completer.py (attr_matches): catch all exceptions raised
362 by eval of expr with dots.
370 by eval of expr with dots.
363
371
364 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
372 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
365
373
366 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
374 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
367 input if it starts with whitespace. This allows you to paste
375 input if it starts with whitespace. This allows you to paste
368 indented input from any editor without manually having to type in
376 indented input from any editor without manually having to type in
369 the 'if 1:', which is convenient when working interactively.
377 the 'if 1:', which is convenient when working interactively.
370 Slightly modifed version of a patch by Bo Peng
378 Slightly modifed version of a patch by Bo Peng
371 <bpeng-AT-rice.edu>.
379 <bpeng-AT-rice.edu>.
372
380
373 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
381 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
374
382
375 * IPython/irunner.py (main): modified irunner so it automatically
383 * IPython/irunner.py (main): modified irunner so it automatically
376 recognizes the right runner to use based on the extension (.py for
384 recognizes the right runner to use based on the extension (.py for
377 python, .ipy for ipython and .sage for sage).
385 python, .ipy for ipython and .sage for sage).
378
386
379 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
387 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
380 visible in ipapi as ip.config(), to programatically control the
388 visible in ipapi as ip.config(), to programatically control the
381 internal rc object. There's an accompanying %config magic for
389 internal rc object. There's an accompanying %config magic for
382 interactive use, which has been enhanced to match the
390 interactive use, which has been enhanced to match the
383 funtionality in ipconfig.
391 funtionality in ipconfig.
384
392
385 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
393 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
386 so it's not just a toggle, it now takes an argument. Add support
394 so it's not just a toggle, it now takes an argument. Add support
387 for a customizable header when making system calls, as the new
395 for a customizable header when making system calls, as the new
388 system_header variable in the ipythonrc file.
396 system_header variable in the ipythonrc file.
389
397
390 2006-11-03 Walter Doerwald <walter@livinglogic.de>
398 2006-11-03 Walter Doerwald <walter@livinglogic.de>
391
399
392 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
400 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
393 generic functions (using Philip J. Eby's simplegeneric package).
401 generic functions (using Philip J. Eby's simplegeneric package).
394 This makes it possible to customize the display of third-party classes
402 This makes it possible to customize the display of third-party classes
395 without having to monkeypatch them. xiter() no longer supports a mode
403 without having to monkeypatch them. xiter() no longer supports a mode
396 argument and the XMode class has been removed. The same functionality can
404 argument and the XMode class has been removed. The same functionality can
397 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
405 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
398 One consequence of the switch to generic functions is that xrepr() and
406 One consequence of the switch to generic functions is that xrepr() and
399 xattrs() implementation must define the default value for the mode
407 xattrs() implementation must define the default value for the mode
400 argument themselves and xattrs() implementations must return real
408 argument themselves and xattrs() implementations must return real
401 descriptors.
409 descriptors.
402
410
403 * IPython/external: This new subpackage will contain all third-party
411 * IPython/external: This new subpackage will contain all third-party
404 packages that are bundled with IPython. (The first one is simplegeneric).
412 packages that are bundled with IPython. (The first one is simplegeneric).
405
413
406 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
414 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
407 directory which as been dropped in r1703.
415 directory which as been dropped in r1703.
408
416
409 * IPython/Extensions/ipipe.py (iless): Fixed.
417 * IPython/Extensions/ipipe.py (iless): Fixed.
410
418
411 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
419 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
412
420
413 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
421 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
414
422
415 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
423 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
416 handling in variable expansion so that shells and magics recognize
424 handling in variable expansion so that shells and magics recognize
417 function local scopes correctly. Bug reported by Brian.
425 function local scopes correctly. Bug reported by Brian.
418
426
419 * scripts/ipython: remove the very first entry in sys.path which
427 * scripts/ipython: remove the very first entry in sys.path which
420 Python auto-inserts for scripts, so that sys.path under IPython is
428 Python auto-inserts for scripts, so that sys.path under IPython is
421 as similar as possible to that under plain Python.
429 as similar as possible to that under plain Python.
422
430
423 * IPython/completer.py (IPCompleter.file_matches): Fix
431 * IPython/completer.py (IPCompleter.file_matches): Fix
424 tab-completion so that quotes are not closed unless the completion
432 tab-completion so that quotes are not closed unless the completion
425 is unambiguous. After a request by Stefan. Minor cleanups in
433 is unambiguous. After a request by Stefan. Minor cleanups in
426 ipy_stock_completers.
434 ipy_stock_completers.
427
435
428 2006-11-02 Ville Vainio <vivainio@gmail.com>
436 2006-11-02 Ville Vainio <vivainio@gmail.com>
429
437
430 * ipy_stock_completers.py: Add %run and %cd completers.
438 * ipy_stock_completers.py: Add %run and %cd completers.
431
439
432 * completer.py: Try running custom completer for both
440 * completer.py: Try running custom completer for both
433 "foo" and "%foo" if the command is just "foo". Ignore case
441 "foo" and "%foo" if the command is just "foo". Ignore case
434 when filtering possible completions.
442 when filtering possible completions.
435
443
436 * UserConfig/ipy_user_conf.py: install stock completers as default
444 * UserConfig/ipy_user_conf.py: install stock completers as default
437
445
438 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
446 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
439 simplified readline history save / restore through a wrapper
447 simplified readline history save / restore through a wrapper
440 function
448 function
441
449
442
450
443 2006-10-31 Ville Vainio <vivainio@gmail.com>
451 2006-10-31 Ville Vainio <vivainio@gmail.com>
444
452
445 * strdispatch.py, completer.py, ipy_stock_completers.py:
453 * strdispatch.py, completer.py, ipy_stock_completers.py:
446 Allow str_key ("command") in completer hooks. Implement
454 Allow str_key ("command") in completer hooks. Implement
447 trivial completer for 'import' (stdlib modules only). Rename
455 trivial completer for 'import' (stdlib modules only). Rename
448 ipy_linux_package_managers.py to ipy_stock_completers.py.
456 ipy_linux_package_managers.py to ipy_stock_completers.py.
449 SVN completer.
457 SVN completer.
450
458
451 * Extensions/ledit.py: %magic line editor for easily and
459 * Extensions/ledit.py: %magic line editor for easily and
452 incrementally manipulating lists of strings. The magic command
460 incrementally manipulating lists of strings. The magic command
453 name is %led.
461 name is %led.
454
462
455 2006-10-30 Ville Vainio <vivainio@gmail.com>
463 2006-10-30 Ville Vainio <vivainio@gmail.com>
456
464
457 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
465 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
458 Bernsteins's patches for pydb integration.
466 Bernsteins's patches for pydb integration.
459 http://bashdb.sourceforge.net/pydb/
467 http://bashdb.sourceforge.net/pydb/
460
468
461 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
469 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
462 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
470 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
463 custom completer hook to allow the users to implement their own
471 custom completer hook to allow the users to implement their own
464 completers. See ipy_linux_package_managers.py for example. The
472 completers. See ipy_linux_package_managers.py for example. The
465 hook name is 'complete_command'.
473 hook name is 'complete_command'.
466
474
467 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
475 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
468
476
469 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
477 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
470 Numeric leftovers.
478 Numeric leftovers.
471
479
472 * ipython.el (py-execute-region): apply Stefan's patch to fix
480 * ipython.el (py-execute-region): apply Stefan's patch to fix
473 garbled results if the python shell hasn't been previously started.
481 garbled results if the python shell hasn't been previously started.
474
482
475 * IPython/genutils.py (arg_split): moved to genutils, since it's a
483 * IPython/genutils.py (arg_split): moved to genutils, since it's a
476 pretty generic function and useful for other things.
484 pretty generic function and useful for other things.
477
485
478 * IPython/OInspect.py (getsource): Add customizable source
486 * IPython/OInspect.py (getsource): Add customizable source
479 extractor. After a request/patch form W. Stein (SAGE).
487 extractor. After a request/patch form W. Stein (SAGE).
480
488
481 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
489 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
482 window size to a more reasonable value from what pexpect does,
490 window size to a more reasonable value from what pexpect does,
483 since their choice causes wrapping bugs with long input lines.
491 since their choice causes wrapping bugs with long input lines.
484
492
485 2006-10-28 Ville Vainio <vivainio@gmail.com>
493 2006-10-28 Ville Vainio <vivainio@gmail.com>
486
494
487 * Magic.py (%run): Save and restore the readline history from
495 * Magic.py (%run): Save and restore the readline history from
488 file around %run commands to prevent side effects from
496 file around %run commands to prevent side effects from
489 %runned programs that might use readline (e.g. pydb).
497 %runned programs that might use readline (e.g. pydb).
490
498
491 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
499 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
492 invoking the pydb enhanced debugger.
500 invoking the pydb enhanced debugger.
493
501
494 2006-10-23 Walter Doerwald <walter@livinglogic.de>
502 2006-10-23 Walter Doerwald <walter@livinglogic.de>
495
503
496 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
504 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
497 call the base class method and propagate the return value to
505 call the base class method and propagate the return value to
498 ifile. This is now done by path itself.
506 ifile. This is now done by path itself.
499
507
500 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
508 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
501
509
502 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
510 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
503 api: set_crash_handler(), to expose the ability to change the
511 api: set_crash_handler(), to expose the ability to change the
504 internal crash handler.
512 internal crash handler.
505
513
506 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
514 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
507 the various parameters of the crash handler so that apps using
515 the various parameters of the crash handler so that apps using
508 IPython as their engine can customize crash handling. Ipmlemented
516 IPython as their engine can customize crash handling. Ipmlemented
509 at the request of SAGE.
517 at the request of SAGE.
510
518
511 2006-10-14 Ville Vainio <vivainio@gmail.com>
519 2006-10-14 Ville Vainio <vivainio@gmail.com>
512
520
513 * Magic.py, ipython.el: applied first "safe" part of Rocky
521 * Magic.py, ipython.el: applied first "safe" part of Rocky
514 Bernstein's patch set for pydb integration.
522 Bernstein's patch set for pydb integration.
515
523
516 * Magic.py (%unalias, %alias): %store'd aliases can now be
524 * Magic.py (%unalias, %alias): %store'd aliases can now be
517 removed with '%unalias'. %alias w/o args now shows most
525 removed with '%unalias'. %alias w/o args now shows most
518 interesting (stored / manually defined) aliases last
526 interesting (stored / manually defined) aliases last
519 where they catch the eye w/o scrolling.
527 where they catch the eye w/o scrolling.
520
528
521 * Magic.py (%rehashx), ext_rehashdir.py: files with
529 * Magic.py (%rehashx), ext_rehashdir.py: files with
522 'py' extension are always considered executable, even
530 'py' extension are always considered executable, even
523 when not in PATHEXT environment variable.
531 when not in PATHEXT environment variable.
524
532
525 2006-10-12 Ville Vainio <vivainio@gmail.com>
533 2006-10-12 Ville Vainio <vivainio@gmail.com>
526
534
527 * jobctrl.py: Add new "jobctrl" extension for spawning background
535 * jobctrl.py: Add new "jobctrl" extension for spawning background
528 processes with "&find /". 'import jobctrl' to try it out. Requires
536 processes with "&find /". 'import jobctrl' to try it out. Requires
529 'subprocess' module, standard in python 2.4+.
537 'subprocess' module, standard in python 2.4+.
530
538
531 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
539 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
532 so if foo -> bar and bar -> baz, then foo -> baz.
540 so if foo -> bar and bar -> baz, then foo -> baz.
533
541
534 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
542 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
535
543
536 * IPython/Magic.py (Magic.parse_options): add a new posix option
544 * IPython/Magic.py (Magic.parse_options): add a new posix option
537 to allow parsing of input args in magics that doesn't strip quotes
545 to allow parsing of input args in magics that doesn't strip quotes
538 (if posix=False). This also closes %timeit bug reported by
546 (if posix=False). This also closes %timeit bug reported by
539 Stefan.
547 Stefan.
540
548
541 2006-10-03 Ville Vainio <vivainio@gmail.com>
549 2006-10-03 Ville Vainio <vivainio@gmail.com>
542
550
543 * iplib.py (raw_input, interact): Return ValueError catching for
551 * iplib.py (raw_input, interact): Return ValueError catching for
544 raw_input. Fixes infinite loop for sys.stdin.close() or
552 raw_input. Fixes infinite loop for sys.stdin.close() or
545 sys.stdout.close().
553 sys.stdout.close().
546
554
547 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
555 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
548
556
549 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
557 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
550 to help in handling doctests. irunner is now pretty useful for
558 to help in handling doctests. irunner is now pretty useful for
551 running standalone scripts and simulate a full interactive session
559 running standalone scripts and simulate a full interactive session
552 in a format that can be then pasted as a doctest.
560 in a format that can be then pasted as a doctest.
553
561
554 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
562 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
555 on top of the default (useless) ones. This also fixes the nasty
563 on top of the default (useless) ones. This also fixes the nasty
556 way in which 2.5's Quitter() exits (reverted [1785]).
564 way in which 2.5's Quitter() exits (reverted [1785]).
557
565
558 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
566 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
559 2.5.
567 2.5.
560
568
561 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
569 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
562 color scheme is updated as well when color scheme is changed
570 color scheme is updated as well when color scheme is changed
563 interactively.
571 interactively.
564
572
565 2006-09-27 Ville Vainio <vivainio@gmail.com>
573 2006-09-27 Ville Vainio <vivainio@gmail.com>
566
574
567 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
575 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
568 infinite loop and just exit. It's a hack, but will do for a while.
576 infinite loop and just exit. It's a hack, but will do for a while.
569
577
570 2006-08-25 Walter Doerwald <walter@livinglogic.de>
578 2006-08-25 Walter Doerwald <walter@livinglogic.de>
571
579
572 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
580 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
573 the constructor, this makes it possible to get a list of only directories
581 the constructor, this makes it possible to get a list of only directories
574 or only files.
582 or only files.
575
583
576 2006-08-12 Ville Vainio <vivainio@gmail.com>
584 2006-08-12 Ville Vainio <vivainio@gmail.com>
577
585
578 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
586 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
579 they broke unittest
587 they broke unittest
580
588
581 2006-08-11 Ville Vainio <vivainio@gmail.com>
589 2006-08-11 Ville Vainio <vivainio@gmail.com>
582
590
583 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
591 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
584 by resolving issue properly, i.e. by inheriting FakeModule
592 by resolving issue properly, i.e. by inheriting FakeModule
585 from types.ModuleType. Pickling ipython interactive data
593 from types.ModuleType. Pickling ipython interactive data
586 should still work as usual (testing appreciated).
594 should still work as usual (testing appreciated).
587
595
588 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
596 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
589
597
590 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
598 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
591 running under python 2.3 with code from 2.4 to fix a bug with
599 running under python 2.3 with code from 2.4 to fix a bug with
592 help(). Reported by the Debian maintainers, Norbert Tretkowski
600 help(). Reported by the Debian maintainers, Norbert Tretkowski
593 <norbert-AT-tretkowski.de> and Alexandre Fayolle
601 <norbert-AT-tretkowski.de> and Alexandre Fayolle
594 <afayolle-AT-debian.org>.
602 <afayolle-AT-debian.org>.
595
603
596 2006-08-04 Walter Doerwald <walter@livinglogic.de>
604 2006-08-04 Walter Doerwald <walter@livinglogic.de>
597
605
598 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
606 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
599 (which was displaying "quit" twice).
607 (which was displaying "quit" twice).
600
608
601 2006-07-28 Walter Doerwald <walter@livinglogic.de>
609 2006-07-28 Walter Doerwald <walter@livinglogic.de>
602
610
603 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
611 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
604 the mode argument).
612 the mode argument).
605
613
606 2006-07-27 Walter Doerwald <walter@livinglogic.de>
614 2006-07-27 Walter Doerwald <walter@livinglogic.de>
607
615
608 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
616 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
609 not running under IPython.
617 not running under IPython.
610
618
611 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
619 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
612 and make it iterable (iterating over the attribute itself). Add two new
620 and make it iterable (iterating over the attribute itself). Add two new
613 magic strings for __xattrs__(): If the string starts with "-", the attribute
621 magic strings for __xattrs__(): If the string starts with "-", the attribute
614 will not be displayed in ibrowse's detail view (but it can still be
622 will not be displayed in ibrowse's detail view (but it can still be
615 iterated over). This makes it possible to add attributes that are large
623 iterated over). This makes it possible to add attributes that are large
616 lists or generator methods to the detail view. Replace magic attribute names
624 lists or generator methods to the detail view. Replace magic attribute names
617 and _attrname() and _getattr() with "descriptors": For each type of magic
625 and _attrname() and _getattr() with "descriptors": For each type of magic
618 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
626 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
619 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
627 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
620 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
628 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
621 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
629 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
622 are still supported.
630 are still supported.
623
631
624 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
632 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
625 fails in ibrowse.fetch(), the exception object is added as the last item
633 fails in ibrowse.fetch(), the exception object is added as the last item
626 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
634 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
627 a generator throws an exception midway through execution.
635 a generator throws an exception midway through execution.
628
636
629 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
637 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
630 encoding into methods.
638 encoding into methods.
631
639
632 2006-07-26 Ville Vainio <vivainio@gmail.com>
640 2006-07-26 Ville Vainio <vivainio@gmail.com>
633
641
634 * iplib.py: history now stores multiline input as single
642 * iplib.py: history now stores multiline input as single
635 history entries. Patch by Jorgen Cederlof.
643 history entries. Patch by Jorgen Cederlof.
636
644
637 2006-07-18 Walter Doerwald <walter@livinglogic.de>
645 2006-07-18 Walter Doerwald <walter@livinglogic.de>
638
646
639 * IPython/Extensions/ibrowse.py: Make cursor visible over
647 * IPython/Extensions/ibrowse.py: Make cursor visible over
640 non existing attributes.
648 non existing attributes.
641
649
642 2006-07-14 Walter Doerwald <walter@livinglogic.de>
650 2006-07-14 Walter Doerwald <walter@livinglogic.de>
643
651
644 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
652 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
645 error output of the running command doesn't mess up the screen.
653 error output of the running command doesn't mess up the screen.
646
654
647 2006-07-13 Walter Doerwald <walter@livinglogic.de>
655 2006-07-13 Walter Doerwald <walter@livinglogic.de>
648
656
649 * IPython/Extensions/ipipe.py (isort): Make isort usable without
657 * IPython/Extensions/ipipe.py (isort): Make isort usable without
650 argument. This sorts the items themselves.
658 argument. This sorts the items themselves.
651
659
652 2006-07-12 Walter Doerwald <walter@livinglogic.de>
660 2006-07-12 Walter Doerwald <walter@livinglogic.de>
653
661
654 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
662 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
655 Compile expression strings into code objects. This should speed
663 Compile expression strings into code objects. This should speed
656 up ifilter and friends somewhat.
664 up ifilter and friends somewhat.
657
665
658 2006-07-08 Ville Vainio <vivainio@gmail.com>
666 2006-07-08 Ville Vainio <vivainio@gmail.com>
659
667
660 * Magic.py: %cpaste now strips > from the beginning of lines
668 * Magic.py: %cpaste now strips > from the beginning of lines
661 to ease pasting quoted code from emails. Contributed by
669 to ease pasting quoted code from emails. Contributed by
662 Stefan van der Walt.
670 Stefan van der Walt.
663
671
664 2006-06-29 Ville Vainio <vivainio@gmail.com>
672 2006-06-29 Ville Vainio <vivainio@gmail.com>
665
673
666 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
674 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
667 mode, patch contributed by Darren Dale. NEEDS TESTING!
675 mode, patch contributed by Darren Dale. NEEDS TESTING!
668
676
669 2006-06-28 Walter Doerwald <walter@livinglogic.de>
677 2006-06-28 Walter Doerwald <walter@livinglogic.de>
670
678
671 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
679 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
672 a blue background. Fix fetching new display rows when the browser
680 a blue background. Fix fetching new display rows when the browser
673 scrolls more than a screenful (e.g. by using the goto command).
681 scrolls more than a screenful (e.g. by using the goto command).
674
682
675 2006-06-27 Ville Vainio <vivainio@gmail.com>
683 2006-06-27 Ville Vainio <vivainio@gmail.com>
676
684
677 * Magic.py (_inspect, _ofind) Apply David Huard's
685 * Magic.py (_inspect, _ofind) Apply David Huard's
678 patch for displaying the correct docstring for 'property'
686 patch for displaying the correct docstring for 'property'
679 attributes.
687 attributes.
680
688
681 2006-06-23 Walter Doerwald <walter@livinglogic.de>
689 2006-06-23 Walter Doerwald <walter@livinglogic.de>
682
690
683 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
691 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
684 commands into the methods implementing them.
692 commands into the methods implementing them.
685
693
686 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
694 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
687
695
688 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
696 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
689 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
697 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
690 autoindent support was authored by Jin Liu.
698 autoindent support was authored by Jin Liu.
691
699
692 2006-06-22 Walter Doerwald <walter@livinglogic.de>
700 2006-06-22 Walter Doerwald <walter@livinglogic.de>
693
701
694 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
702 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
695 for keymaps with a custom class that simplifies handling.
703 for keymaps with a custom class that simplifies handling.
696
704
697 2006-06-19 Walter Doerwald <walter@livinglogic.de>
705 2006-06-19 Walter Doerwald <walter@livinglogic.de>
698
706
699 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
707 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
700 resizing. This requires Python 2.5 to work.
708 resizing. This requires Python 2.5 to work.
701
709
702 2006-06-16 Walter Doerwald <walter@livinglogic.de>
710 2006-06-16 Walter Doerwald <walter@livinglogic.de>
703
711
704 * IPython/Extensions/ibrowse.py: Add two new commands to
712 * IPython/Extensions/ibrowse.py: Add two new commands to
705 ibrowse: "hideattr" (mapped to "h") hides the attribute under
713 ibrowse: "hideattr" (mapped to "h") hides the attribute under
706 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
714 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
707 attributes again. Remapped the help command to "?". Display
715 attributes again. Remapped the help command to "?". Display
708 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
716 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
709 as keys for the "home" and "end" commands. Add three new commands
717 as keys for the "home" and "end" commands. Add three new commands
710 to the input mode for "find" and friends: "delend" (CTRL-K)
718 to the input mode for "find" and friends: "delend" (CTRL-K)
711 deletes to the end of line. "incsearchup" searches upwards in the
719 deletes to the end of line. "incsearchup" searches upwards in the
712 command history for an input that starts with the text before the cursor.
720 command history for an input that starts with the text before the cursor.
713 "incsearchdown" does the same downwards. Removed a bogus mapping of
721 "incsearchdown" does the same downwards. Removed a bogus mapping of
714 the x key to "delete".
722 the x key to "delete".
715
723
716 2006-06-15 Ville Vainio <vivainio@gmail.com>
724 2006-06-15 Ville Vainio <vivainio@gmail.com>
717
725
718 * iplib.py, hooks.py: Added new generate_prompt hook that can be
726 * iplib.py, hooks.py: Added new generate_prompt hook that can be
719 used to create prompts dynamically, instead of the "old" way of
727 used to create prompts dynamically, instead of the "old" way of
720 assigning "magic" strings to prompt_in1 and prompt_in2. The old
728 assigning "magic" strings to prompt_in1 and prompt_in2. The old
721 way still works (it's invoked by the default hook), of course.
729 way still works (it's invoked by the default hook), of course.
722
730
723 * Prompts.py: added generate_output_prompt hook for altering output
731 * Prompts.py: added generate_output_prompt hook for altering output
724 prompt
732 prompt
725
733
726 * Release.py: Changed version string to 0.7.3.svn.
734 * Release.py: Changed version string to 0.7.3.svn.
727
735
728 2006-06-15 Walter Doerwald <walter@livinglogic.de>
736 2006-06-15 Walter Doerwald <walter@livinglogic.de>
729
737
730 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
738 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
731 the call to fetch() always tries to fetch enough data for at least one
739 the call to fetch() always tries to fetch enough data for at least one
732 full screen. This makes it possible to simply call moveto(0,0,True) in
740 full screen. This makes it possible to simply call moveto(0,0,True) in
733 the constructor. Fix typos and removed the obsolete goto attribute.
741 the constructor. Fix typos and removed the obsolete goto attribute.
734
742
735 2006-06-12 Ville Vainio <vivainio@gmail.com>
743 2006-06-12 Ville Vainio <vivainio@gmail.com>
736
744
737 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
745 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
738 allowing $variable interpolation within multiline statements,
746 allowing $variable interpolation within multiline statements,
739 though so far only with "sh" profile for a testing period.
747 though so far only with "sh" profile for a testing period.
740 The patch also enables splitting long commands with \ but it
748 The patch also enables splitting long commands with \ but it
741 doesn't work properly yet.
749 doesn't work properly yet.
742
750
743 2006-06-12 Walter Doerwald <walter@livinglogic.de>
751 2006-06-12 Walter Doerwald <walter@livinglogic.de>
744
752
745 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
753 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
746 input history and the position of the cursor in the input history for
754 input history and the position of the cursor in the input history for
747 the find, findbackwards and goto command.
755 the find, findbackwards and goto command.
748
756
749 2006-06-10 Walter Doerwald <walter@livinglogic.de>
757 2006-06-10 Walter Doerwald <walter@livinglogic.de>
750
758
751 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
759 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
752 implements the basic functionality of browser commands that require
760 implements the basic functionality of browser commands that require
753 input. Reimplement the goto, find and findbackwards commands as
761 input. Reimplement the goto, find and findbackwards commands as
754 subclasses of _CommandInput. Add an input history and keymaps to those
762 subclasses of _CommandInput. Add an input history and keymaps to those
755 commands. Add "\r" as a keyboard shortcut for the enterdefault and
763 commands. Add "\r" as a keyboard shortcut for the enterdefault and
756 execute commands.
764 execute commands.
757
765
758 2006-06-07 Ville Vainio <vivainio@gmail.com>
766 2006-06-07 Ville Vainio <vivainio@gmail.com>
759
767
760 * iplib.py: ipython mybatch.ipy exits ipython immediately after
768 * iplib.py: ipython mybatch.ipy exits ipython immediately after
761 running the batch files instead of leaving the session open.
769 running the batch files instead of leaving the session open.
762
770
763 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
771 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
764
772
765 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
773 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
766 the original fix was incomplete. Patch submitted by W. Maier.
774 the original fix was incomplete. Patch submitted by W. Maier.
767
775
768 2006-06-07 Ville Vainio <vivainio@gmail.com>
776 2006-06-07 Ville Vainio <vivainio@gmail.com>
769
777
770 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
778 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
771 Confirmation prompts can be supressed by 'quiet' option.
779 Confirmation prompts can be supressed by 'quiet' option.
772 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
780 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
773
781
774 2006-06-06 *** Released version 0.7.2
782 2006-06-06 *** Released version 0.7.2
775
783
776 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
784 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
777
785
778 * IPython/Release.py (version): Made 0.7.2 final for release.
786 * IPython/Release.py (version): Made 0.7.2 final for release.
779 Repo tagged and release cut.
787 Repo tagged and release cut.
780
788
781 2006-06-05 Ville Vainio <vivainio@gmail.com>
789 2006-06-05 Ville Vainio <vivainio@gmail.com>
782
790
783 * Magic.py (magic_rehashx): Honor no_alias list earlier in
791 * Magic.py (magic_rehashx): Honor no_alias list earlier in
784 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
792 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
785
793
786 * upgrade_dir.py: try import 'path' module a bit harder
794 * upgrade_dir.py: try import 'path' module a bit harder
787 (for %upgrade)
795 (for %upgrade)
788
796
789 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
797 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
790
798
791 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
799 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
792 instead of looping 20 times.
800 instead of looping 20 times.
793
801
794 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
802 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
795 correctly at initialization time. Bug reported by Krishna Mohan
803 correctly at initialization time. Bug reported by Krishna Mohan
796 Gundu <gkmohan-AT-gmail.com> on the user list.
804 Gundu <gkmohan-AT-gmail.com> on the user list.
797
805
798 * IPython/Release.py (version): Mark 0.7.2 version to start
806 * IPython/Release.py (version): Mark 0.7.2 version to start
799 testing for release on 06/06.
807 testing for release on 06/06.
800
808
801 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
809 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
802
810
803 * scripts/irunner: thin script interface so users don't have to
811 * scripts/irunner: thin script interface so users don't have to
804 find the module and call it as an executable, since modules rarely
812 find the module and call it as an executable, since modules rarely
805 live in people's PATH.
813 live in people's PATH.
806
814
807 * IPython/irunner.py (InteractiveRunner.__init__): added
815 * IPython/irunner.py (InteractiveRunner.__init__): added
808 delaybeforesend attribute to control delays with newer versions of
816 delaybeforesend attribute to control delays with newer versions of
809 pexpect. Thanks to detailed help from pexpect's author, Noah
817 pexpect. Thanks to detailed help from pexpect's author, Noah
810 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
818 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
811 correctly (it works in NoColor mode).
819 correctly (it works in NoColor mode).
812
820
813 * IPython/iplib.py (handle_normal): fix nasty crash reported on
821 * IPython/iplib.py (handle_normal): fix nasty crash reported on
814 SAGE list, from improper log() calls.
822 SAGE list, from improper log() calls.
815
823
816 2006-05-31 Ville Vainio <vivainio@gmail.com>
824 2006-05-31 Ville Vainio <vivainio@gmail.com>
817
825
818 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
826 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
819 with args in parens to work correctly with dirs that have spaces.
827 with args in parens to work correctly with dirs that have spaces.
820
828
821 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
829 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
822
830
823 * IPython/Logger.py (Logger.logstart): add option to log raw input
831 * IPython/Logger.py (Logger.logstart): add option to log raw input
824 instead of the processed one. A -r flag was added to the
832 instead of the processed one. A -r flag was added to the
825 %logstart magic used for controlling logging.
833 %logstart magic used for controlling logging.
826
834
827 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
835 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
828
836
829 * IPython/iplib.py (InteractiveShell.__init__): add check for the
837 * IPython/iplib.py (InteractiveShell.__init__): add check for the
830 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
838 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
831 recognize the option. After a bug report by Will Maier. This
839 recognize the option. After a bug report by Will Maier. This
832 closes #64 (will do it after confirmation from W. Maier).
840 closes #64 (will do it after confirmation from W. Maier).
833
841
834 * IPython/irunner.py: New module to run scripts as if manually
842 * IPython/irunner.py: New module to run scripts as if manually
835 typed into an interactive environment, based on pexpect. After a
843 typed into an interactive environment, based on pexpect. After a
836 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
844 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
837 ipython-user list. Simple unittests in the tests/ directory.
845 ipython-user list. Simple unittests in the tests/ directory.
838
846
839 * tools/release: add Will Maier, OpenBSD port maintainer, to
847 * tools/release: add Will Maier, OpenBSD port maintainer, to
840 recepients list. We are now officially part of the OpenBSD ports:
848 recepients list. We are now officially part of the OpenBSD ports:
841 http://www.openbsd.org/ports.html ! Many thanks to Will for the
849 http://www.openbsd.org/ports.html ! Many thanks to Will for the
842 work.
850 work.
843
851
844 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
852 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
845
853
846 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
854 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
847 so that it doesn't break tkinter apps.
855 so that it doesn't break tkinter apps.
848
856
849 * IPython/iplib.py (_prefilter): fix bug where aliases would
857 * IPython/iplib.py (_prefilter): fix bug where aliases would
850 shadow variables when autocall was fully off. Reported by SAGE
858 shadow variables when autocall was fully off. Reported by SAGE
851 author William Stein.
859 author William Stein.
852
860
853 * IPython/OInspect.py (Inspector.__init__): add a flag to control
861 * IPython/OInspect.py (Inspector.__init__): add a flag to control
854 at what detail level strings are computed when foo? is requested.
862 at what detail level strings are computed when foo? is requested.
855 This allows users to ask for example that the string form of an
863 This allows users to ask for example that the string form of an
856 object is only computed when foo?? is called, or even never, by
864 object is only computed when foo?? is called, or even never, by
857 setting the object_info_string_level >= 2 in the configuration
865 setting the object_info_string_level >= 2 in the configuration
858 file. This new option has been added and documented. After a
866 file. This new option has been added and documented. After a
859 request by SAGE to be able to control the printing of very large
867 request by SAGE to be able to control the printing of very large
860 objects more easily.
868 objects more easily.
861
869
862 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
870 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
863
871
864 * IPython/ipmaker.py (make_IPython): remove the ipython call path
872 * IPython/ipmaker.py (make_IPython): remove the ipython call path
865 from sys.argv, to be 100% consistent with how Python itself works
873 from sys.argv, to be 100% consistent with how Python itself works
866 (as seen for example with python -i file.py). After a bug report
874 (as seen for example with python -i file.py). After a bug report
867 by Jeffrey Collins.
875 by Jeffrey Collins.
868
876
869 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
877 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
870 nasty bug which was preventing custom namespaces with -pylab,
878 nasty bug which was preventing custom namespaces with -pylab,
871 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
879 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
872 compatibility (long gone from mpl).
880 compatibility (long gone from mpl).
873
881
874 * IPython/ipapi.py (make_session): name change: create->make. We
882 * IPython/ipapi.py (make_session): name change: create->make. We
875 use make in other places (ipmaker,...), it's shorter and easier to
883 use make in other places (ipmaker,...), it's shorter and easier to
876 type and say, etc. I'm trying to clean things before 0.7.2 so
884 type and say, etc. I'm trying to clean things before 0.7.2 so
877 that I can keep things stable wrt to ipapi in the chainsaw branch.
885 that I can keep things stable wrt to ipapi in the chainsaw branch.
878
886
879 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
887 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
880 python-mode recognizes our debugger mode. Add support for
888 python-mode recognizes our debugger mode. Add support for
881 autoindent inside (X)emacs. After a patch sent in by Jin Liu
889 autoindent inside (X)emacs. After a patch sent in by Jin Liu
882 <m.liu.jin-AT-gmail.com> originally written by
890 <m.liu.jin-AT-gmail.com> originally written by
883 doxgen-AT-newsmth.net (with minor modifications for xemacs
891 doxgen-AT-newsmth.net (with minor modifications for xemacs
884 compatibility)
892 compatibility)
885
893
886 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
894 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
887 tracebacks when walking the stack so that the stack tracking system
895 tracebacks when walking the stack so that the stack tracking system
888 in emacs' python-mode can identify the frames correctly.
896 in emacs' python-mode can identify the frames correctly.
889
897
890 * IPython/ipmaker.py (make_IPython): make the internal (and
898 * IPython/ipmaker.py (make_IPython): make the internal (and
891 default config) autoedit_syntax value false by default. Too many
899 default config) autoedit_syntax value false by default. Too many
892 users have complained to me (both on and off-list) about problems
900 users have complained to me (both on and off-list) about problems
893 with this option being on by default, so I'm making it default to
901 with this option being on by default, so I'm making it default to
894 off. It can still be enabled by anyone via the usual mechanisms.
902 off. It can still be enabled by anyone via the usual mechanisms.
895
903
896 * IPython/completer.py (Completer.attr_matches): add support for
904 * IPython/completer.py (Completer.attr_matches): add support for
897 PyCrust-style _getAttributeNames magic method. Patch contributed
905 PyCrust-style _getAttributeNames magic method. Patch contributed
898 by <mscott-AT-goldenspud.com>. Closes #50.
906 by <mscott-AT-goldenspud.com>. Closes #50.
899
907
900 * IPython/iplib.py (InteractiveShell.__init__): remove the
908 * IPython/iplib.py (InteractiveShell.__init__): remove the
901 deletion of exit/quit from __builtin__, which can break
909 deletion of exit/quit from __builtin__, which can break
902 third-party tools like the Zope debugging console. The
910 third-party tools like the Zope debugging console. The
903 %exit/%quit magics remain. In general, it's probably a good idea
911 %exit/%quit magics remain. In general, it's probably a good idea
904 not to delete anything from __builtin__, since we never know what
912 not to delete anything from __builtin__, since we never know what
905 that will break. In any case, python now (for 2.5) will support
913 that will break. In any case, python now (for 2.5) will support
906 'real' exit/quit, so this issue is moot. Closes #55.
914 'real' exit/quit, so this issue is moot. Closes #55.
907
915
908 * IPython/genutils.py (with_obj): rename the 'with' function to
916 * IPython/genutils.py (with_obj): rename the 'with' function to
909 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
917 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
910 becomes a language keyword. Closes #53.
918 becomes a language keyword. Closes #53.
911
919
912 * IPython/FakeModule.py (FakeModule.__init__): add a proper
920 * IPython/FakeModule.py (FakeModule.__init__): add a proper
913 __file__ attribute to this so it fools more things into thinking
921 __file__ attribute to this so it fools more things into thinking
914 it is a real module. Closes #59.
922 it is a real module. Closes #59.
915
923
916 * IPython/Magic.py (magic_edit): add -n option to open the editor
924 * IPython/Magic.py (magic_edit): add -n option to open the editor
917 at a specific line number. After a patch by Stefan van der Walt.
925 at a specific line number. After a patch by Stefan van der Walt.
918
926
919 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
927 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
920
928
921 * IPython/iplib.py (edit_syntax_error): fix crash when for some
929 * IPython/iplib.py (edit_syntax_error): fix crash when for some
922 reason the file could not be opened. After automatic crash
930 reason the file could not be opened. After automatic crash
923 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
931 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
924 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
932 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
925 (_should_recompile): Don't fire editor if using %bg, since there
933 (_should_recompile): Don't fire editor if using %bg, since there
926 is no file in the first place. From the same report as above.
934 is no file in the first place. From the same report as above.
927 (raw_input): protect against faulty third-party prefilters. After
935 (raw_input): protect against faulty third-party prefilters. After
928 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
936 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
929 while running under SAGE.
937 while running under SAGE.
930
938
931 2006-05-23 Ville Vainio <vivainio@gmail.com>
939 2006-05-23 Ville Vainio <vivainio@gmail.com>
932
940
933 * ipapi.py: Stripped down ip.to_user_ns() to work only as
941 * ipapi.py: Stripped down ip.to_user_ns() to work only as
934 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
942 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
935 now returns None (again), unless dummy is specifically allowed by
943 now returns None (again), unless dummy is specifically allowed by
936 ipapi.get(allow_dummy=True).
944 ipapi.get(allow_dummy=True).
937
945
938 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
946 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
939
947
940 * IPython: remove all 2.2-compatibility objects and hacks from
948 * IPython: remove all 2.2-compatibility objects and hacks from
941 everywhere, since we only support 2.3 at this point. Docs
949 everywhere, since we only support 2.3 at this point. Docs
942 updated.
950 updated.
943
951
944 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
952 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
945 Anything requiring extra validation can be turned into a Python
953 Anything requiring extra validation can be turned into a Python
946 property in the future. I used a property for the db one b/c
954 property in the future. I used a property for the db one b/c
947 there was a nasty circularity problem with the initialization
955 there was a nasty circularity problem with the initialization
948 order, which right now I don't have time to clean up.
956 order, which right now I don't have time to clean up.
949
957
950 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
958 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
951 another locking bug reported by Jorgen. I'm not 100% sure though,
959 another locking bug reported by Jorgen. I'm not 100% sure though,
952 so more testing is needed...
960 so more testing is needed...
953
961
954 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
962 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
955
963
956 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
964 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
957 local variables from any routine in user code (typically executed
965 local variables from any routine in user code (typically executed
958 with %run) directly into the interactive namespace. Very useful
966 with %run) directly into the interactive namespace. Very useful
959 when doing complex debugging.
967 when doing complex debugging.
960 (IPythonNotRunning): Changed the default None object to a dummy
968 (IPythonNotRunning): Changed the default None object to a dummy
961 whose attributes can be queried as well as called without
969 whose attributes can be queried as well as called without
962 exploding, to ease writing code which works transparently both in
970 exploding, to ease writing code which works transparently both in
963 and out of ipython and uses some of this API.
971 and out of ipython and uses some of this API.
964
972
965 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
973 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
966
974
967 * IPython/hooks.py (result_display): Fix the fact that our display
975 * IPython/hooks.py (result_display): Fix the fact that our display
968 hook was using str() instead of repr(), as the default python
976 hook was using str() instead of repr(), as the default python
969 console does. This had gone unnoticed b/c it only happened if
977 console does. This had gone unnoticed b/c it only happened if
970 %Pprint was off, but the inconsistency was there.
978 %Pprint was off, but the inconsistency was there.
971
979
972 2006-05-15 Ville Vainio <vivainio@gmail.com>
980 2006-05-15 Ville Vainio <vivainio@gmail.com>
973
981
974 * Oinspect.py: Only show docstring for nonexisting/binary files
982 * Oinspect.py: Only show docstring for nonexisting/binary files
975 when doing object??, closing ticket #62
983 when doing object??, closing ticket #62
976
984
977 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
985 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
978
986
979 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
987 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
980 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
988 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
981 was being released in a routine which hadn't checked if it had
989 was being released in a routine which hadn't checked if it had
982 been the one to acquire it.
990 been the one to acquire it.
983
991
984 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
992 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
985
993
986 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
994 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
987
995
988 2006-04-11 Ville Vainio <vivainio@gmail.com>
996 2006-04-11 Ville Vainio <vivainio@gmail.com>
989
997
990 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
998 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
991 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
999 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
992 prefilters, allowing stuff like magics and aliases in the file.
1000 prefilters, allowing stuff like magics and aliases in the file.
993
1001
994 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1002 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
995 added. Supported now are "%clear in" and "%clear out" (clear input and
1003 added. Supported now are "%clear in" and "%clear out" (clear input and
996 output history, respectively). Also fixed CachedOutput.flush to
1004 output history, respectively). Also fixed CachedOutput.flush to
997 properly flush the output cache.
1005 properly flush the output cache.
998
1006
999 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1007 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1000 half-success (and fail explicitly).
1008 half-success (and fail explicitly).
1001
1009
1002 2006-03-28 Ville Vainio <vivainio@gmail.com>
1010 2006-03-28 Ville Vainio <vivainio@gmail.com>
1003
1011
1004 * iplib.py: Fix quoting of aliases so that only argless ones
1012 * iplib.py: Fix quoting of aliases so that only argless ones
1005 are quoted
1013 are quoted
1006
1014
1007 2006-03-28 Ville Vainio <vivainio@gmail.com>
1015 2006-03-28 Ville Vainio <vivainio@gmail.com>
1008
1016
1009 * iplib.py: Quote aliases with spaces in the name.
1017 * iplib.py: Quote aliases with spaces in the name.
1010 "c:\program files\blah\bin" is now legal alias target.
1018 "c:\program files\blah\bin" is now legal alias target.
1011
1019
1012 * ext_rehashdir.py: Space no longer allowed as arg
1020 * ext_rehashdir.py: Space no longer allowed as arg
1013 separator, since space is legal in path names.
1021 separator, since space is legal in path names.
1014
1022
1015 2006-03-16 Ville Vainio <vivainio@gmail.com>
1023 2006-03-16 Ville Vainio <vivainio@gmail.com>
1016
1024
1017 * upgrade_dir.py: Take path.py from Extensions, correcting
1025 * upgrade_dir.py: Take path.py from Extensions, correcting
1018 %upgrade magic
1026 %upgrade magic
1019
1027
1020 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1028 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1021
1029
1022 * hooks.py: Only enclose editor binary in quotes if legal and
1030 * hooks.py: Only enclose editor binary in quotes if legal and
1023 necessary (space in the name, and is an existing file). Fixes a bug
1031 necessary (space in the name, and is an existing file). Fixes a bug
1024 reported by Zachary Pincus.
1032 reported by Zachary Pincus.
1025
1033
1026 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1034 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1027
1035
1028 * Manual: thanks to a tip on proper color handling for Emacs, by
1036 * Manual: thanks to a tip on proper color handling for Emacs, by
1029 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1037 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1030
1038
1031 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1039 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1032 by applying the provided patch. Thanks to Liu Jin
1040 by applying the provided patch. Thanks to Liu Jin
1033 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1041 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1034 XEmacs/Linux, I'm trusting the submitter that it actually helps
1042 XEmacs/Linux, I'm trusting the submitter that it actually helps
1035 under win32/GNU Emacs. Will revisit if any problems are reported.
1043 under win32/GNU Emacs. Will revisit if any problems are reported.
1036
1044
1037 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1045 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1038
1046
1039 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1047 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1040 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1048 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1041
1049
1042 2006-03-12 Ville Vainio <vivainio@gmail.com>
1050 2006-03-12 Ville Vainio <vivainio@gmail.com>
1043
1051
1044 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1052 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1045 Torsten Marek.
1053 Torsten Marek.
1046
1054
1047 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1055 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1048
1056
1049 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1057 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1050 line ranges works again.
1058 line ranges works again.
1051
1059
1052 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1060 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1053
1061
1054 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1062 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1055 and friends, after a discussion with Zach Pincus on ipython-user.
1063 and friends, after a discussion with Zach Pincus on ipython-user.
1056 I'm not 100% sure, but after thinking about it quite a bit, it may
1064 I'm not 100% sure, but after thinking about it quite a bit, it may
1057 be OK. Testing with the multithreaded shells didn't reveal any
1065 be OK. Testing with the multithreaded shells didn't reveal any
1058 problems, but let's keep an eye out.
1066 problems, but let's keep an eye out.
1059
1067
1060 In the process, I fixed a few things which were calling
1068 In the process, I fixed a few things which were calling
1061 self.InteractiveTB() directly (like safe_execfile), which is a
1069 self.InteractiveTB() directly (like safe_execfile), which is a
1062 mistake: ALL exception reporting should be done by calling
1070 mistake: ALL exception reporting should be done by calling
1063 self.showtraceback(), which handles state and tab-completion and
1071 self.showtraceback(), which handles state and tab-completion and
1064 more.
1072 more.
1065
1073
1066 2006-03-01 Ville Vainio <vivainio@gmail.com>
1074 2006-03-01 Ville Vainio <vivainio@gmail.com>
1067
1075
1068 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1076 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1069 To use, do "from ipipe import *".
1077 To use, do "from ipipe import *".
1070
1078
1071 2006-02-24 Ville Vainio <vivainio@gmail.com>
1079 2006-02-24 Ville Vainio <vivainio@gmail.com>
1072
1080
1073 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1081 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1074 "cleanly" and safely than the older upgrade mechanism.
1082 "cleanly" and safely than the older upgrade mechanism.
1075
1083
1076 2006-02-21 Ville Vainio <vivainio@gmail.com>
1084 2006-02-21 Ville Vainio <vivainio@gmail.com>
1077
1085
1078 * Magic.py: %save works again.
1086 * Magic.py: %save works again.
1079
1087
1080 2006-02-15 Ville Vainio <vivainio@gmail.com>
1088 2006-02-15 Ville Vainio <vivainio@gmail.com>
1081
1089
1082 * Magic.py: %Pprint works again
1090 * Magic.py: %Pprint works again
1083
1091
1084 * Extensions/ipy_sane_defaults.py: Provide everything provided
1092 * Extensions/ipy_sane_defaults.py: Provide everything provided
1085 in default ipythonrc, to make it possible to have a completely empty
1093 in default ipythonrc, to make it possible to have a completely empty
1086 ipythonrc (and thus completely rc-file free configuration)
1094 ipythonrc (and thus completely rc-file free configuration)
1087
1095
1088 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1096 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1089
1097
1090 * IPython/hooks.py (editor): quote the call to the editor command,
1098 * IPython/hooks.py (editor): quote the call to the editor command,
1091 to allow commands with spaces in them. Problem noted by watching
1099 to allow commands with spaces in them. Problem noted by watching
1092 Ian Oswald's video about textpad under win32 at
1100 Ian Oswald's video about textpad under win32 at
1093 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1101 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1094
1102
1095 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1103 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1096 describing magics (we haven't used @ for a loong time).
1104 describing magics (we haven't used @ for a loong time).
1097
1105
1098 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1106 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1099 contributed by marienz to close
1107 contributed by marienz to close
1100 http://www.scipy.net/roundup/ipython/issue53.
1108 http://www.scipy.net/roundup/ipython/issue53.
1101
1109
1102 2006-02-10 Ville Vainio <vivainio@gmail.com>
1110 2006-02-10 Ville Vainio <vivainio@gmail.com>
1103
1111
1104 * genutils.py: getoutput now works in win32 too
1112 * genutils.py: getoutput now works in win32 too
1105
1113
1106 * completer.py: alias and magic completion only invoked
1114 * completer.py: alias and magic completion only invoked
1107 at the first "item" in the line, to avoid "cd %store"
1115 at the first "item" in the line, to avoid "cd %store"
1108 nonsense.
1116 nonsense.
1109
1117
1110 2006-02-09 Ville Vainio <vivainio@gmail.com>
1118 2006-02-09 Ville Vainio <vivainio@gmail.com>
1111
1119
1112 * test/*: Added a unit testing framework (finally).
1120 * test/*: Added a unit testing framework (finally).
1113 '%run runtests.py' to run test_*.
1121 '%run runtests.py' to run test_*.
1114
1122
1115 * ipapi.py: Exposed runlines and set_custom_exc
1123 * ipapi.py: Exposed runlines and set_custom_exc
1116
1124
1117 2006-02-07 Ville Vainio <vivainio@gmail.com>
1125 2006-02-07 Ville Vainio <vivainio@gmail.com>
1118
1126
1119 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1127 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1120 instead use "f(1 2)" as before.
1128 instead use "f(1 2)" as before.
1121
1129
1122 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1123
1131
1124 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1132 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1125 facilities, for demos processed by the IPython input filter
1133 facilities, for demos processed by the IPython input filter
1126 (IPythonDemo), and for running a script one-line-at-a-time as a
1134 (IPythonDemo), and for running a script one-line-at-a-time as a
1127 demo, both for pure Python (LineDemo) and for IPython-processed
1135 demo, both for pure Python (LineDemo) and for IPython-processed
1128 input (IPythonLineDemo). After a request by Dave Kohel, from the
1136 input (IPythonLineDemo). After a request by Dave Kohel, from the
1129 SAGE team.
1137 SAGE team.
1130 (Demo.edit): added an edit() method to the demo objects, to edit
1138 (Demo.edit): added an edit() method to the demo objects, to edit
1131 the in-memory copy of the last executed block.
1139 the in-memory copy of the last executed block.
1132
1140
1133 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1141 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1134 processing to %edit, %macro and %save. These commands can now be
1142 processing to %edit, %macro and %save. These commands can now be
1135 invoked on the unprocessed input as it was typed by the user
1143 invoked on the unprocessed input as it was typed by the user
1136 (without any prefilters applied). After requests by the SAGE team
1144 (without any prefilters applied). After requests by the SAGE team
1137 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1145 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1138
1146
1139 2006-02-01 Ville Vainio <vivainio@gmail.com>
1147 2006-02-01 Ville Vainio <vivainio@gmail.com>
1140
1148
1141 * setup.py, eggsetup.py: easy_install ipython==dev works
1149 * setup.py, eggsetup.py: easy_install ipython==dev works
1142 correctly now (on Linux)
1150 correctly now (on Linux)
1143
1151
1144 * ipy_user_conf,ipmaker: user config changes, removed spurious
1152 * ipy_user_conf,ipmaker: user config changes, removed spurious
1145 warnings
1153 warnings
1146
1154
1147 * iplib: if rc.banner is string, use it as is.
1155 * iplib: if rc.banner is string, use it as is.
1148
1156
1149 * Magic: %pycat accepts a string argument and pages it's contents.
1157 * Magic: %pycat accepts a string argument and pages it's contents.
1150
1158
1151
1159
1152 2006-01-30 Ville Vainio <vivainio@gmail.com>
1160 2006-01-30 Ville Vainio <vivainio@gmail.com>
1153
1161
1154 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1162 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1155 Now %store and bookmarks work through PickleShare, meaning that
1163 Now %store and bookmarks work through PickleShare, meaning that
1156 concurrent access is possible and all ipython sessions see the
1164 concurrent access is possible and all ipython sessions see the
1157 same database situation all the time, instead of snapshot of
1165 same database situation all the time, instead of snapshot of
1158 the situation when the session was started. Hence, %bookmark
1166 the situation when the session was started. Hence, %bookmark
1159 results are immediately accessible from othes sessions. The database
1167 results are immediately accessible from othes sessions. The database
1160 is also available for use by user extensions. See:
1168 is also available for use by user extensions. See:
1161 http://www.python.org/pypi/pickleshare
1169 http://www.python.org/pypi/pickleshare
1162
1170
1163 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1171 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1164
1172
1165 * aliases can now be %store'd
1173 * aliases can now be %store'd
1166
1174
1167 * path.py moved to Extensions so that pickleshare does not need
1175 * path.py moved to Extensions so that pickleshare does not need
1168 IPython-specific import. Extensions added to pythonpath right
1176 IPython-specific import. Extensions added to pythonpath right
1169 at __init__.
1177 at __init__.
1170
1178
1171 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1179 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1172 called with _ip.system and the pre-transformed command string.
1180 called with _ip.system and the pre-transformed command string.
1173
1181
1174 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1182 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1175
1183
1176 * IPython/iplib.py (interact): Fix that we were not catching
1184 * IPython/iplib.py (interact): Fix that we were not catching
1177 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1185 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1178 logic here had to change, but it's fixed now.
1186 logic here had to change, but it's fixed now.
1179
1187
1180 2006-01-29 Ville Vainio <vivainio@gmail.com>
1188 2006-01-29 Ville Vainio <vivainio@gmail.com>
1181
1189
1182 * iplib.py: Try to import pyreadline on Windows.
1190 * iplib.py: Try to import pyreadline on Windows.
1183
1191
1184 2006-01-27 Ville Vainio <vivainio@gmail.com>
1192 2006-01-27 Ville Vainio <vivainio@gmail.com>
1185
1193
1186 * iplib.py: Expose ipapi as _ip in builtin namespace.
1194 * iplib.py: Expose ipapi as _ip in builtin namespace.
1187 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1195 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1188 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1196 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1189 syntax now produce _ip.* variant of the commands.
1197 syntax now produce _ip.* variant of the commands.
1190
1198
1191 * "_ip.options().autoedit_syntax = 2" automatically throws
1199 * "_ip.options().autoedit_syntax = 2" automatically throws
1192 user to editor for syntax error correction without prompting.
1200 user to editor for syntax error correction without prompting.
1193
1201
1194 2006-01-27 Ville Vainio <vivainio@gmail.com>
1202 2006-01-27 Ville Vainio <vivainio@gmail.com>
1195
1203
1196 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1204 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1197 'ipython' at argv[0]) executed through command line.
1205 'ipython' at argv[0]) executed through command line.
1198 NOTE: this DEPRECATES calling ipython with multiple scripts
1206 NOTE: this DEPRECATES calling ipython with multiple scripts
1199 ("ipython a.py b.py c.py")
1207 ("ipython a.py b.py c.py")
1200
1208
1201 * iplib.py, hooks.py: Added configurable input prefilter,
1209 * iplib.py, hooks.py: Added configurable input prefilter,
1202 named 'input_prefilter'. See ext_rescapture.py for example
1210 named 'input_prefilter'. See ext_rescapture.py for example
1203 usage.
1211 usage.
1204
1212
1205 * ext_rescapture.py, Magic.py: Better system command output capture
1213 * ext_rescapture.py, Magic.py: Better system command output capture
1206 through 'var = !ls' (deprecates user-visible %sc). Same notation
1214 through 'var = !ls' (deprecates user-visible %sc). Same notation
1207 applies for magics, 'var = %alias' assigns alias list to var.
1215 applies for magics, 'var = %alias' assigns alias list to var.
1208
1216
1209 * ipapi.py: added meta() for accessing extension-usable data store.
1217 * ipapi.py: added meta() for accessing extension-usable data store.
1210
1218
1211 * iplib.py: added InteractiveShell.getapi(). New magics should be
1219 * iplib.py: added InteractiveShell.getapi(). New magics should be
1212 written doing self.getapi() instead of using the shell directly.
1220 written doing self.getapi() instead of using the shell directly.
1213
1221
1214 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1222 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1215 %store foo >> ~/myfoo.txt to store variables to files (in clean
1223 %store foo >> ~/myfoo.txt to store variables to files (in clean
1216 textual form, not a restorable pickle).
1224 textual form, not a restorable pickle).
1217
1225
1218 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1226 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1219
1227
1220 * usage.py, Magic.py: added %quickref
1228 * usage.py, Magic.py: added %quickref
1221
1229
1222 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1230 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1223
1231
1224 * GetoptErrors when invoking magics etc. with wrong args
1232 * GetoptErrors when invoking magics etc. with wrong args
1225 are now more helpful:
1233 are now more helpful:
1226 GetoptError: option -l not recognized (allowed: "qb" )
1234 GetoptError: option -l not recognized (allowed: "qb" )
1227
1235
1228 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1236 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1229
1237
1230 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1238 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1231 computationally intensive blocks don't appear to stall the demo.
1239 computationally intensive blocks don't appear to stall the demo.
1232
1240
1233 2006-01-24 Ville Vainio <vivainio@gmail.com>
1241 2006-01-24 Ville Vainio <vivainio@gmail.com>
1234
1242
1235 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1243 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1236 value to manipulate resulting history entry.
1244 value to manipulate resulting history entry.
1237
1245
1238 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1246 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1239 to instance methods of IPApi class, to make extending an embedded
1247 to instance methods of IPApi class, to make extending an embedded
1240 IPython feasible. See ext_rehashdir.py for example usage.
1248 IPython feasible. See ext_rehashdir.py for example usage.
1241
1249
1242 * Merged 1071-1076 from branches/0.7.1
1250 * Merged 1071-1076 from branches/0.7.1
1243
1251
1244
1252
1245 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1253 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1254
1247 * tools/release (daystamp): Fix build tools to use the new
1255 * tools/release (daystamp): Fix build tools to use the new
1248 eggsetup.py script to build lightweight eggs.
1256 eggsetup.py script to build lightweight eggs.
1249
1257
1250 * Applied changesets 1062 and 1064 before 0.7.1 release.
1258 * Applied changesets 1062 and 1064 before 0.7.1 release.
1251
1259
1252 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1260 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1253 see the raw input history (without conversions like %ls ->
1261 see the raw input history (without conversions like %ls ->
1254 ipmagic("ls")). After a request from W. Stein, SAGE
1262 ipmagic("ls")). After a request from W. Stein, SAGE
1255 (http://modular.ucsd.edu/sage) developer. This information is
1263 (http://modular.ucsd.edu/sage) developer. This information is
1256 stored in the input_hist_raw attribute of the IPython instance, so
1264 stored in the input_hist_raw attribute of the IPython instance, so
1257 developers can access it if needed (it's an InputList instance).
1265 developers can access it if needed (it's an InputList instance).
1258
1266
1259 * Versionstring = 0.7.2.svn
1267 * Versionstring = 0.7.2.svn
1260
1268
1261 * eggsetup.py: A separate script for constructing eggs, creates
1269 * eggsetup.py: A separate script for constructing eggs, creates
1262 proper launch scripts even on Windows (an .exe file in
1270 proper launch scripts even on Windows (an .exe file in
1263 \python24\scripts).
1271 \python24\scripts).
1264
1272
1265 * ipapi.py: launch_new_instance, launch entry point needed for the
1273 * ipapi.py: launch_new_instance, launch entry point needed for the
1266 egg.
1274 egg.
1267
1275
1268 2006-01-23 Ville Vainio <vivainio@gmail.com>
1276 2006-01-23 Ville Vainio <vivainio@gmail.com>
1269
1277
1270 * Added %cpaste magic for pasting python code
1278 * Added %cpaste magic for pasting python code
1271
1279
1272 2006-01-22 Ville Vainio <vivainio@gmail.com>
1280 2006-01-22 Ville Vainio <vivainio@gmail.com>
1273
1281
1274 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1282 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1275
1283
1276 * Versionstring = 0.7.2.svn
1284 * Versionstring = 0.7.2.svn
1277
1285
1278 * eggsetup.py: A separate script for constructing eggs, creates
1286 * eggsetup.py: A separate script for constructing eggs, creates
1279 proper launch scripts even on Windows (an .exe file in
1287 proper launch scripts even on Windows (an .exe file in
1280 \python24\scripts).
1288 \python24\scripts).
1281
1289
1282 * ipapi.py: launch_new_instance, launch entry point needed for the
1290 * ipapi.py: launch_new_instance, launch entry point needed for the
1283 egg.
1291 egg.
1284
1292
1285 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1293 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1286
1294
1287 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1295 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1288 %pfile foo would print the file for foo even if it was a binary.
1296 %pfile foo would print the file for foo even if it was a binary.
1289 Now, extensions '.so' and '.dll' are skipped.
1297 Now, extensions '.so' and '.dll' are skipped.
1290
1298
1291 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1299 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1292 bug, where macros would fail in all threaded modes. I'm not 100%
1300 bug, where macros would fail in all threaded modes. I'm not 100%
1293 sure, so I'm going to put out an rc instead of making a release
1301 sure, so I'm going to put out an rc instead of making a release
1294 today, and wait for feedback for at least a few days.
1302 today, and wait for feedback for at least a few days.
1295
1303
1296 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1304 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1297 it...) the handling of pasting external code with autoindent on.
1305 it...) the handling of pasting external code with autoindent on.
1298 To get out of a multiline input, the rule will appear for most
1306 To get out of a multiline input, the rule will appear for most
1299 users unchanged: two blank lines or change the indent level
1307 users unchanged: two blank lines or change the indent level
1300 proposed by IPython. But there is a twist now: you can
1308 proposed by IPython. But there is a twist now: you can
1301 add/subtract only *one or two spaces*. If you add/subtract three
1309 add/subtract only *one or two spaces*. If you add/subtract three
1302 or more (unless you completely delete the line), IPython will
1310 or more (unless you completely delete the line), IPython will
1303 accept that line, and you'll need to enter a second one of pure
1311 accept that line, and you'll need to enter a second one of pure
1304 whitespace. I know it sounds complicated, but I can't find a
1312 whitespace. I know it sounds complicated, but I can't find a
1305 different solution that covers all the cases, with the right
1313 different solution that covers all the cases, with the right
1306 heuristics. Hopefully in actual use, nobody will really notice
1314 heuristics. Hopefully in actual use, nobody will really notice
1307 all these strange rules and things will 'just work'.
1315 all these strange rules and things will 'just work'.
1308
1316
1309 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1317 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1310
1318
1311 * IPython/iplib.py (interact): catch exceptions which can be
1319 * IPython/iplib.py (interact): catch exceptions which can be
1312 triggered asynchronously by signal handlers. Thanks to an
1320 triggered asynchronously by signal handlers. Thanks to an
1313 automatic crash report, submitted by Colin Kingsley
1321 automatic crash report, submitted by Colin Kingsley
1314 <tercel-AT-gentoo.org>.
1322 <tercel-AT-gentoo.org>.
1315
1323
1316 2006-01-20 Ville Vainio <vivainio@gmail.com>
1324 2006-01-20 Ville Vainio <vivainio@gmail.com>
1317
1325
1318 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1326 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1319 (%rehashdir, very useful, try it out) of how to extend ipython
1327 (%rehashdir, very useful, try it out) of how to extend ipython
1320 with new magics. Also added Extensions dir to pythonpath to make
1328 with new magics. Also added Extensions dir to pythonpath to make
1321 importing extensions easy.
1329 importing extensions easy.
1322
1330
1323 * %store now complains when trying to store interactively declared
1331 * %store now complains when trying to store interactively declared
1324 classes / instances of those classes.
1332 classes / instances of those classes.
1325
1333
1326 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1334 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1327 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1335 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1328 if they exist, and ipy_user_conf.py with some defaults is created for
1336 if they exist, and ipy_user_conf.py with some defaults is created for
1329 the user.
1337 the user.
1330
1338
1331 * Startup rehashing done by the config file, not InterpreterExec.
1339 * Startup rehashing done by the config file, not InterpreterExec.
1332 This means system commands are available even without selecting the
1340 This means system commands are available even without selecting the
1333 pysh profile. It's the sensible default after all.
1341 pysh profile. It's the sensible default after all.
1334
1342
1335 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1343 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1336
1344
1337 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1345 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1338 multiline code with autoindent on working. But I am really not
1346 multiline code with autoindent on working. But I am really not
1339 sure, so this needs more testing. Will commit a debug-enabled
1347 sure, so this needs more testing. Will commit a debug-enabled
1340 version for now, while I test it some more, so that Ville and
1348 version for now, while I test it some more, so that Ville and
1341 others may also catch any problems. Also made
1349 others may also catch any problems. Also made
1342 self.indent_current_str() a method, to ensure that there's no
1350 self.indent_current_str() a method, to ensure that there's no
1343 chance of the indent space count and the corresponding string
1351 chance of the indent space count and the corresponding string
1344 falling out of sync. All code needing the string should just call
1352 falling out of sync. All code needing the string should just call
1345 the method.
1353 the method.
1346
1354
1347 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1355 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1348
1356
1349 * IPython/Magic.py (magic_edit): fix check for when users don't
1357 * IPython/Magic.py (magic_edit): fix check for when users don't
1350 save their output files, the try/except was in the wrong section.
1358 save their output files, the try/except was in the wrong section.
1351
1359
1352 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1360 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1353
1361
1354 * IPython/Magic.py (magic_run): fix __file__ global missing from
1362 * IPython/Magic.py (magic_run): fix __file__ global missing from
1355 script's namespace when executed via %run. After a report by
1363 script's namespace when executed via %run. After a report by
1356 Vivian.
1364 Vivian.
1357
1365
1358 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1366 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1359 when using python 2.4. The parent constructor changed in 2.4, and
1367 when using python 2.4. The parent constructor changed in 2.4, and
1360 we need to track it directly (we can't call it, as it messes up
1368 we need to track it directly (we can't call it, as it messes up
1361 readline and tab-completion inside our pdb would stop working).
1369 readline and tab-completion inside our pdb would stop working).
1362 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1370 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1363
1371
1364 2006-01-16 Ville Vainio <vivainio@gmail.com>
1372 2006-01-16 Ville Vainio <vivainio@gmail.com>
1365
1373
1366 * Ipython/magic.py: Reverted back to old %edit functionality
1374 * Ipython/magic.py: Reverted back to old %edit functionality
1367 that returns file contents on exit.
1375 that returns file contents on exit.
1368
1376
1369 * IPython/path.py: Added Jason Orendorff's "path" module to
1377 * IPython/path.py: Added Jason Orendorff's "path" module to
1370 IPython tree, http://www.jorendorff.com/articles/python/path/.
1378 IPython tree, http://www.jorendorff.com/articles/python/path/.
1371 You can get path objects conveniently through %sc, and !!, e.g.:
1379 You can get path objects conveniently through %sc, and !!, e.g.:
1372 sc files=ls
1380 sc files=ls
1373 for p in files.paths: # or files.p
1381 for p in files.paths: # or files.p
1374 print p,p.mtime
1382 print p,p.mtime
1375
1383
1376 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1384 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1377 now work again without considering the exclusion regexp -
1385 now work again without considering the exclusion regexp -
1378 hence, things like ',foo my/path' turn to 'foo("my/path")'
1386 hence, things like ',foo my/path' turn to 'foo("my/path")'
1379 instead of syntax error.
1387 instead of syntax error.
1380
1388
1381
1389
1382 2006-01-14 Ville Vainio <vivainio@gmail.com>
1390 2006-01-14 Ville Vainio <vivainio@gmail.com>
1383
1391
1384 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1392 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1385 ipapi decorators for python 2.4 users, options() provides access to rc
1393 ipapi decorators for python 2.4 users, options() provides access to rc
1386 data.
1394 data.
1387
1395
1388 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1396 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1389 as path separators (even on Linux ;-). Space character after
1397 as path separators (even on Linux ;-). Space character after
1390 backslash (as yielded by tab completer) is still space;
1398 backslash (as yielded by tab completer) is still space;
1391 "%cd long\ name" works as expected.
1399 "%cd long\ name" works as expected.
1392
1400
1393 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1401 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1394 as "chain of command", with priority. API stays the same,
1402 as "chain of command", with priority. API stays the same,
1395 TryNext exception raised by a hook function signals that
1403 TryNext exception raised by a hook function signals that
1396 current hook failed and next hook should try handling it, as
1404 current hook failed and next hook should try handling it, as
1397 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1405 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1398 requested configurable display hook, which is now implemented.
1406 requested configurable display hook, which is now implemented.
1399
1407
1400 2006-01-13 Ville Vainio <vivainio@gmail.com>
1408 2006-01-13 Ville Vainio <vivainio@gmail.com>
1401
1409
1402 * IPython/platutils*.py: platform specific utility functions,
1410 * IPython/platutils*.py: platform specific utility functions,
1403 so far only set_term_title is implemented (change terminal
1411 so far only set_term_title is implemented (change terminal
1404 label in windowing systems). %cd now changes the title to
1412 label in windowing systems). %cd now changes the title to
1405 current dir.
1413 current dir.
1406
1414
1407 * IPython/Release.py: Added myself to "authors" list,
1415 * IPython/Release.py: Added myself to "authors" list,
1408 had to create new files.
1416 had to create new files.
1409
1417
1410 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1418 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1411 shell escape; not a known bug but had potential to be one in the
1419 shell escape; not a known bug but had potential to be one in the
1412 future.
1420 future.
1413
1421
1414 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1422 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1415 extension API for IPython! See the module for usage example. Fix
1423 extension API for IPython! See the module for usage example. Fix
1416 OInspect for docstring-less magic functions.
1424 OInspect for docstring-less magic functions.
1417
1425
1418
1426
1419 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1427 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1420
1428
1421 * IPython/iplib.py (raw_input): temporarily deactivate all
1429 * IPython/iplib.py (raw_input): temporarily deactivate all
1422 attempts at allowing pasting of code with autoindent on. It
1430 attempts at allowing pasting of code with autoindent on. It
1423 introduced bugs (reported by Prabhu) and I can't seem to find a
1431 introduced bugs (reported by Prabhu) and I can't seem to find a
1424 robust combination which works in all cases. Will have to revisit
1432 robust combination which works in all cases. Will have to revisit
1425 later.
1433 later.
1426
1434
1427 * IPython/genutils.py: remove isspace() function. We've dropped
1435 * IPython/genutils.py: remove isspace() function. We've dropped
1428 2.2 compatibility, so it's OK to use the string method.
1436 2.2 compatibility, so it's OK to use the string method.
1429
1437
1430 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1438 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1431
1439
1432 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1440 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1433 matching what NOT to autocall on, to include all python binary
1441 matching what NOT to autocall on, to include all python binary
1434 operators (including things like 'and', 'or', 'is' and 'in').
1442 operators (including things like 'and', 'or', 'is' and 'in').
1435 Prompted by a bug report on 'foo & bar', but I realized we had
1443 Prompted by a bug report on 'foo & bar', but I realized we had
1436 many more potential bug cases with other operators. The regexp is
1444 many more potential bug cases with other operators. The regexp is
1437 self.re_exclude_auto, it's fairly commented.
1445 self.re_exclude_auto, it's fairly commented.
1438
1446
1439 2006-01-12 Ville Vainio <vivainio@gmail.com>
1447 2006-01-12 Ville Vainio <vivainio@gmail.com>
1440
1448
1441 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1449 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1442 Prettified and hardened string/backslash quoting with ipsystem(),
1450 Prettified and hardened string/backslash quoting with ipsystem(),
1443 ipalias() and ipmagic(). Now even \ characters are passed to
1451 ipalias() and ipmagic(). Now even \ characters are passed to
1444 %magics, !shell escapes and aliases exactly as they are in the
1452 %magics, !shell escapes and aliases exactly as they are in the
1445 ipython command line. Should improve backslash experience,
1453 ipython command line. Should improve backslash experience,
1446 particularly in Windows (path delimiter for some commands that
1454 particularly in Windows (path delimiter for some commands that
1447 won't understand '/'), but Unix benefits as well (regexps). %cd
1455 won't understand '/'), but Unix benefits as well (regexps). %cd
1448 magic still doesn't support backslash path delimiters, though. Also
1456 magic still doesn't support backslash path delimiters, though. Also
1449 deleted all pretense of supporting multiline command strings in
1457 deleted all pretense of supporting multiline command strings in
1450 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1458 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1451
1459
1452 * doc/build_doc_instructions.txt added. Documentation on how to
1460 * doc/build_doc_instructions.txt added. Documentation on how to
1453 use doc/update_manual.py, added yesterday. Both files contributed
1461 use doc/update_manual.py, added yesterday. Both files contributed
1454 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1462 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1455 doc/*.sh for deprecation at a later date.
1463 doc/*.sh for deprecation at a later date.
1456
1464
1457 * /ipython.py Added ipython.py to root directory for
1465 * /ipython.py Added ipython.py to root directory for
1458 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1466 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1459 ipython.py) and development convenience (no need to keep doing
1467 ipython.py) and development convenience (no need to keep doing
1460 "setup.py install" between changes).
1468 "setup.py install" between changes).
1461
1469
1462 * Made ! and !! shell escapes work (again) in multiline expressions:
1470 * Made ! and !! shell escapes work (again) in multiline expressions:
1463 if 1:
1471 if 1:
1464 !ls
1472 !ls
1465 !!ls
1473 !!ls
1466
1474
1467 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1475 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1468
1476
1469 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1477 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1470 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1478 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1471 module in case-insensitive installation. Was causing crashes
1479 module in case-insensitive installation. Was causing crashes
1472 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1480 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1473
1481
1474 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1482 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1475 <marienz-AT-gentoo.org>, closes
1483 <marienz-AT-gentoo.org>, closes
1476 http://www.scipy.net/roundup/ipython/issue51.
1484 http://www.scipy.net/roundup/ipython/issue51.
1477
1485
1478 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1486 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1479
1487
1480 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1488 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1481 problem of excessive CPU usage under *nix and keyboard lag under
1489 problem of excessive CPU usage under *nix and keyboard lag under
1482 win32.
1490 win32.
1483
1491
1484 2006-01-10 *** Released version 0.7.0
1492 2006-01-10 *** Released version 0.7.0
1485
1493
1486 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1494 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1487
1495
1488 * IPython/Release.py (revision): tag version number to 0.7.0,
1496 * IPython/Release.py (revision): tag version number to 0.7.0,
1489 ready for release.
1497 ready for release.
1490
1498
1491 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1499 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1492 it informs the user of the name of the temp. file used. This can
1500 it informs the user of the name of the temp. file used. This can
1493 help if you decide later to reuse that same file, so you know
1501 help if you decide later to reuse that same file, so you know
1494 where to copy the info from.
1502 where to copy the info from.
1495
1503
1496 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1504 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1497
1505
1498 * setup_bdist_egg.py: little script to build an egg. Added
1506 * setup_bdist_egg.py: little script to build an egg. Added
1499 support in the release tools as well.
1507 support in the release tools as well.
1500
1508
1501 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1509 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1502
1510
1503 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1511 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1504 version selection (new -wxversion command line and ipythonrc
1512 version selection (new -wxversion command line and ipythonrc
1505 parameter). Patch contributed by Arnd Baecker
1513 parameter). Patch contributed by Arnd Baecker
1506 <arnd.baecker-AT-web.de>.
1514 <arnd.baecker-AT-web.de>.
1507
1515
1508 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1516 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1509 embedded instances, for variables defined at the interactive
1517 embedded instances, for variables defined at the interactive
1510 prompt of the embedded ipython. Reported by Arnd.
1518 prompt of the embedded ipython. Reported by Arnd.
1511
1519
1512 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1520 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1513 it can be used as a (stateful) toggle, or with a direct parameter.
1521 it can be used as a (stateful) toggle, or with a direct parameter.
1514
1522
1515 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1523 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1516 could be triggered in certain cases and cause the traceback
1524 could be triggered in certain cases and cause the traceback
1517 printer not to work.
1525 printer not to work.
1518
1526
1519 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1527 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1520
1528
1521 * IPython/iplib.py (_should_recompile): Small fix, closes
1529 * IPython/iplib.py (_should_recompile): Small fix, closes
1522 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1530 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1523
1531
1524 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1532 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1525
1533
1526 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1534 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1527 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1535 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1528 Moad for help with tracking it down.
1536 Moad for help with tracking it down.
1529
1537
1530 * IPython/iplib.py (handle_auto): fix autocall handling for
1538 * IPython/iplib.py (handle_auto): fix autocall handling for
1531 objects which support BOTH __getitem__ and __call__ (so that f [x]
1539 objects which support BOTH __getitem__ and __call__ (so that f [x]
1532 is left alone, instead of becoming f([x]) automatically).
1540 is left alone, instead of becoming f([x]) automatically).
1533
1541
1534 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1542 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1535 Ville's patch.
1543 Ville's patch.
1536
1544
1537 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1545 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1538
1546
1539 * IPython/iplib.py (handle_auto): changed autocall semantics to
1547 * IPython/iplib.py (handle_auto): changed autocall semantics to
1540 include 'smart' mode, where the autocall transformation is NOT
1548 include 'smart' mode, where the autocall transformation is NOT
1541 applied if there are no arguments on the line. This allows you to
1549 applied if there are no arguments on the line. This allows you to
1542 just type 'foo' if foo is a callable to see its internal form,
1550 just type 'foo' if foo is a callable to see its internal form,
1543 instead of having it called with no arguments (typically a
1551 instead of having it called with no arguments (typically a
1544 mistake). The old 'full' autocall still exists: for that, you
1552 mistake). The old 'full' autocall still exists: for that, you
1545 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1553 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1546
1554
1547 * IPython/completer.py (Completer.attr_matches): add
1555 * IPython/completer.py (Completer.attr_matches): add
1548 tab-completion support for Enthoughts' traits. After a report by
1556 tab-completion support for Enthoughts' traits. After a report by
1549 Arnd and a patch by Prabhu.
1557 Arnd and a patch by Prabhu.
1550
1558
1551 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1559 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1552
1560
1553 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1561 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1554 Schmolck's patch to fix inspect.getinnerframes().
1562 Schmolck's patch to fix inspect.getinnerframes().
1555
1563
1556 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1564 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1557 for embedded instances, regarding handling of namespaces and items
1565 for embedded instances, regarding handling of namespaces and items
1558 added to the __builtin__ one. Multiple embedded instances and
1566 added to the __builtin__ one. Multiple embedded instances and
1559 recursive embeddings should work better now (though I'm not sure
1567 recursive embeddings should work better now (though I'm not sure
1560 I've got all the corner cases fixed, that code is a bit of a brain
1568 I've got all the corner cases fixed, that code is a bit of a brain
1561 twister).
1569 twister).
1562
1570
1563 * IPython/Magic.py (magic_edit): added support to edit in-memory
1571 * IPython/Magic.py (magic_edit): added support to edit in-memory
1564 macros (automatically creates the necessary temp files). %edit
1572 macros (automatically creates the necessary temp files). %edit
1565 also doesn't return the file contents anymore, it's just noise.
1573 also doesn't return the file contents anymore, it's just noise.
1566
1574
1567 * IPython/completer.py (Completer.attr_matches): revert change to
1575 * IPython/completer.py (Completer.attr_matches): revert change to
1568 complete only on attributes listed in __all__. I realized it
1576 complete only on attributes listed in __all__. I realized it
1569 cripples the tab-completion system as a tool for exploring the
1577 cripples the tab-completion system as a tool for exploring the
1570 internals of unknown libraries (it renders any non-__all__
1578 internals of unknown libraries (it renders any non-__all__
1571 attribute off-limits). I got bit by this when trying to see
1579 attribute off-limits). I got bit by this when trying to see
1572 something inside the dis module.
1580 something inside the dis module.
1573
1581
1574 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1582 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1575
1583
1576 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1584 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1577 namespace for users and extension writers to hold data in. This
1585 namespace for users and extension writers to hold data in. This
1578 follows the discussion in
1586 follows the discussion in
1579 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1587 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1580
1588
1581 * IPython/completer.py (IPCompleter.complete): small patch to help
1589 * IPython/completer.py (IPCompleter.complete): small patch to help
1582 tab-completion under Emacs, after a suggestion by John Barnard
1590 tab-completion under Emacs, after a suggestion by John Barnard
1583 <barnarj-AT-ccf.org>.
1591 <barnarj-AT-ccf.org>.
1584
1592
1585 * IPython/Magic.py (Magic.extract_input_slices): added support for
1593 * IPython/Magic.py (Magic.extract_input_slices): added support for
1586 the slice notation in magics to use N-M to represent numbers N...M
1594 the slice notation in magics to use N-M to represent numbers N...M
1587 (closed endpoints). This is used by %macro and %save.
1595 (closed endpoints). This is used by %macro and %save.
1588
1596
1589 * IPython/completer.py (Completer.attr_matches): for modules which
1597 * IPython/completer.py (Completer.attr_matches): for modules which
1590 define __all__, complete only on those. After a patch by Jeffrey
1598 define __all__, complete only on those. After a patch by Jeffrey
1591 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1599 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1592 speed up this routine.
1600 speed up this routine.
1593
1601
1594 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1602 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1595 don't know if this is the end of it, but the behavior now is
1603 don't know if this is the end of it, but the behavior now is
1596 certainly much more correct. Note that coupled with macros,
1604 certainly much more correct. Note that coupled with macros,
1597 slightly surprising (at first) behavior may occur: a macro will in
1605 slightly surprising (at first) behavior may occur: a macro will in
1598 general expand to multiple lines of input, so upon exiting, the
1606 general expand to multiple lines of input, so upon exiting, the
1599 in/out counters will both be bumped by the corresponding amount
1607 in/out counters will both be bumped by the corresponding amount
1600 (as if the macro's contents had been typed interactively). Typing
1608 (as if the macro's contents had been typed interactively). Typing
1601 %hist will reveal the intermediate (silently processed) lines.
1609 %hist will reveal the intermediate (silently processed) lines.
1602
1610
1603 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1611 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1604 pickle to fail (%run was overwriting __main__ and not restoring
1612 pickle to fail (%run was overwriting __main__ and not restoring
1605 it, but pickle relies on __main__ to operate).
1613 it, but pickle relies on __main__ to operate).
1606
1614
1607 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1615 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1608 using properties, but forgot to make the main InteractiveShell
1616 using properties, but forgot to make the main InteractiveShell
1609 class a new-style class. Properties fail silently, and
1617 class a new-style class. Properties fail silently, and
1610 mysteriously, with old-style class (getters work, but
1618 mysteriously, with old-style class (getters work, but
1611 setters don't do anything).
1619 setters don't do anything).
1612
1620
1613 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1621 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1614
1622
1615 * IPython/Magic.py (magic_history): fix history reporting bug (I
1623 * IPython/Magic.py (magic_history): fix history reporting bug (I
1616 know some nasties are still there, I just can't seem to find a
1624 know some nasties are still there, I just can't seem to find a
1617 reproducible test case to track them down; the input history is
1625 reproducible test case to track them down; the input history is
1618 falling out of sync...)
1626 falling out of sync...)
1619
1627
1620 * IPython/iplib.py (handle_shell_escape): fix bug where both
1628 * IPython/iplib.py (handle_shell_escape): fix bug where both
1621 aliases and system accesses where broken for indented code (such
1629 aliases and system accesses where broken for indented code (such
1622 as loops).
1630 as loops).
1623
1631
1624 * IPython/genutils.py (shell): fix small but critical bug for
1632 * IPython/genutils.py (shell): fix small but critical bug for
1625 win32 system access.
1633 win32 system access.
1626
1634
1627 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1635 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1628
1636
1629 * IPython/iplib.py (showtraceback): remove use of the
1637 * IPython/iplib.py (showtraceback): remove use of the
1630 sys.last_{type/value/traceback} structures, which are non
1638 sys.last_{type/value/traceback} structures, which are non
1631 thread-safe.
1639 thread-safe.
1632 (_prefilter): change control flow to ensure that we NEVER
1640 (_prefilter): change control flow to ensure that we NEVER
1633 introspect objects when autocall is off. This will guarantee that
1641 introspect objects when autocall is off. This will guarantee that
1634 having an input line of the form 'x.y', where access to attribute
1642 having an input line of the form 'x.y', where access to attribute
1635 'y' has side effects, doesn't trigger the side effect TWICE. It
1643 'y' has side effects, doesn't trigger the side effect TWICE. It
1636 is important to note that, with autocall on, these side effects
1644 is important to note that, with autocall on, these side effects
1637 can still happen.
1645 can still happen.
1638 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1646 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1639 trio. IPython offers these three kinds of special calls which are
1647 trio. IPython offers these three kinds of special calls which are
1640 not python code, and it's a good thing to have their call method
1648 not python code, and it's a good thing to have their call method
1641 be accessible as pure python functions (not just special syntax at
1649 be accessible as pure python functions (not just special syntax at
1642 the command line). It gives us a better internal implementation
1650 the command line). It gives us a better internal implementation
1643 structure, as well as exposing these for user scripting more
1651 structure, as well as exposing these for user scripting more
1644 cleanly.
1652 cleanly.
1645
1653
1646 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1654 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1647 file. Now that they'll be more likely to be used with the
1655 file. Now that they'll be more likely to be used with the
1648 persistance system (%store), I want to make sure their module path
1656 persistance system (%store), I want to make sure their module path
1649 doesn't change in the future, so that we don't break things for
1657 doesn't change in the future, so that we don't break things for
1650 users' persisted data.
1658 users' persisted data.
1651
1659
1652 * IPython/iplib.py (autoindent_update): move indentation
1660 * IPython/iplib.py (autoindent_update): move indentation
1653 management into the _text_ processing loop, not the keyboard
1661 management into the _text_ processing loop, not the keyboard
1654 interactive one. This is necessary to correctly process non-typed
1662 interactive one. This is necessary to correctly process non-typed
1655 multiline input (such as macros).
1663 multiline input (such as macros).
1656
1664
1657 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1665 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1658 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1666 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1659 which was producing problems in the resulting manual.
1667 which was producing problems in the resulting manual.
1660 (magic_whos): improve reporting of instances (show their class,
1668 (magic_whos): improve reporting of instances (show their class,
1661 instead of simply printing 'instance' which isn't terribly
1669 instead of simply printing 'instance' which isn't terribly
1662 informative).
1670 informative).
1663
1671
1664 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1672 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1665 (minor mods) to support network shares under win32.
1673 (minor mods) to support network shares under win32.
1666
1674
1667 * IPython/winconsole.py (get_console_size): add new winconsole
1675 * IPython/winconsole.py (get_console_size): add new winconsole
1668 module and fixes to page_dumb() to improve its behavior under
1676 module and fixes to page_dumb() to improve its behavior under
1669 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1677 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1670
1678
1671 * IPython/Magic.py (Macro): simplified Macro class to just
1679 * IPython/Magic.py (Macro): simplified Macro class to just
1672 subclass list. We've had only 2.2 compatibility for a very long
1680 subclass list. We've had only 2.2 compatibility for a very long
1673 time, yet I was still avoiding subclassing the builtin types. No
1681 time, yet I was still avoiding subclassing the builtin types. No
1674 more (I'm also starting to use properties, though I won't shift to
1682 more (I'm also starting to use properties, though I won't shift to
1675 2.3-specific features quite yet).
1683 2.3-specific features quite yet).
1676 (magic_store): added Ville's patch for lightweight variable
1684 (magic_store): added Ville's patch for lightweight variable
1677 persistence, after a request on the user list by Matt Wilkie
1685 persistence, after a request on the user list by Matt Wilkie
1678 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1686 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1679 details.
1687 details.
1680
1688
1681 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1689 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1682 changed the default logfile name from 'ipython.log' to
1690 changed the default logfile name from 'ipython.log' to
1683 'ipython_log.py'. These logs are real python files, and now that
1691 'ipython_log.py'. These logs are real python files, and now that
1684 we have much better multiline support, people are more likely to
1692 we have much better multiline support, people are more likely to
1685 want to use them as such. Might as well name them correctly.
1693 want to use them as such. Might as well name them correctly.
1686
1694
1687 * IPython/Magic.py: substantial cleanup. While we can't stop
1695 * IPython/Magic.py: substantial cleanup. While we can't stop
1688 using magics as mixins, due to the existing customizations 'out
1696 using magics as mixins, due to the existing customizations 'out
1689 there' which rely on the mixin naming conventions, at least I
1697 there' which rely on the mixin naming conventions, at least I
1690 cleaned out all cross-class name usage. So once we are OK with
1698 cleaned out all cross-class name usage. So once we are OK with
1691 breaking compatibility, the two systems can be separated.
1699 breaking compatibility, the two systems can be separated.
1692
1700
1693 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1701 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1694 anymore, and the class is a fair bit less hideous as well. New
1702 anymore, and the class is a fair bit less hideous as well. New
1695 features were also introduced: timestamping of input, and logging
1703 features were also introduced: timestamping of input, and logging
1696 of output results. These are user-visible with the -t and -o
1704 of output results. These are user-visible with the -t and -o
1697 options to %logstart. Closes
1705 options to %logstart. Closes
1698 http://www.scipy.net/roundup/ipython/issue11 and a request by
1706 http://www.scipy.net/roundup/ipython/issue11 and a request by
1699 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1707 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1700
1708
1701 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1709 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1702
1710
1703 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1711 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1704 better handle backslashes in paths. See the thread 'More Windows
1712 better handle backslashes in paths. See the thread 'More Windows
1705 questions part 2 - \/ characters revisited' on the iypthon user
1713 questions part 2 - \/ characters revisited' on the iypthon user
1706 list:
1714 list:
1707 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1715 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1708
1716
1709 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1717 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1710
1718
1711 (InteractiveShell.__init__): change threaded shells to not use the
1719 (InteractiveShell.__init__): change threaded shells to not use the
1712 ipython crash handler. This was causing more problems than not,
1720 ipython crash handler. This was causing more problems than not,
1713 as exceptions in the main thread (GUI code, typically) would
1721 as exceptions in the main thread (GUI code, typically) would
1714 always show up as a 'crash', when they really weren't.
1722 always show up as a 'crash', when they really weren't.
1715
1723
1716 The colors and exception mode commands (%colors/%xmode) have been
1724 The colors and exception mode commands (%colors/%xmode) have been
1717 synchronized to also take this into account, so users can get
1725 synchronized to also take this into account, so users can get
1718 verbose exceptions for their threaded code as well. I also added
1726 verbose exceptions for their threaded code as well. I also added
1719 support for activating pdb inside this exception handler as well,
1727 support for activating pdb inside this exception handler as well,
1720 so now GUI authors can use IPython's enhanced pdb at runtime.
1728 so now GUI authors can use IPython's enhanced pdb at runtime.
1721
1729
1722 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1730 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1723 true by default, and add it to the shipped ipythonrc file. Since
1731 true by default, and add it to the shipped ipythonrc file. Since
1724 this asks the user before proceeding, I think it's OK to make it
1732 this asks the user before proceeding, I think it's OK to make it
1725 true by default.
1733 true by default.
1726
1734
1727 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1735 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1728 of the previous special-casing of input in the eval loop. I think
1736 of the previous special-casing of input in the eval loop. I think
1729 this is cleaner, as they really are commands and shouldn't have
1737 this is cleaner, as they really are commands and shouldn't have
1730 a special role in the middle of the core code.
1738 a special role in the middle of the core code.
1731
1739
1732 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1740 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1733
1741
1734 * IPython/iplib.py (edit_syntax_error): added support for
1742 * IPython/iplib.py (edit_syntax_error): added support for
1735 automatically reopening the editor if the file had a syntax error
1743 automatically reopening the editor if the file had a syntax error
1736 in it. Thanks to scottt who provided the patch at:
1744 in it. Thanks to scottt who provided the patch at:
1737 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1745 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1738 version committed).
1746 version committed).
1739
1747
1740 * IPython/iplib.py (handle_normal): add suport for multi-line
1748 * IPython/iplib.py (handle_normal): add suport for multi-line
1741 input with emtpy lines. This fixes
1749 input with emtpy lines. This fixes
1742 http://www.scipy.net/roundup/ipython/issue43 and a similar
1750 http://www.scipy.net/roundup/ipython/issue43 and a similar
1743 discussion on the user list.
1751 discussion on the user list.
1744
1752
1745 WARNING: a behavior change is necessarily introduced to support
1753 WARNING: a behavior change is necessarily introduced to support
1746 blank lines: now a single blank line with whitespace does NOT
1754 blank lines: now a single blank line with whitespace does NOT
1747 break the input loop, which means that when autoindent is on, by
1755 break the input loop, which means that when autoindent is on, by
1748 default hitting return on the next (indented) line does NOT exit.
1756 default hitting return on the next (indented) line does NOT exit.
1749
1757
1750 Instead, to exit a multiline input you can either have:
1758 Instead, to exit a multiline input you can either have:
1751
1759
1752 - TWO whitespace lines (just hit return again), or
1760 - TWO whitespace lines (just hit return again), or
1753 - a single whitespace line of a different length than provided
1761 - a single whitespace line of a different length than provided
1754 by the autoindent (add or remove a space).
1762 by the autoindent (add or remove a space).
1755
1763
1756 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1764 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1757 module to better organize all readline-related functionality.
1765 module to better organize all readline-related functionality.
1758 I've deleted FlexCompleter and put all completion clases here.
1766 I've deleted FlexCompleter and put all completion clases here.
1759
1767
1760 * IPython/iplib.py (raw_input): improve indentation management.
1768 * IPython/iplib.py (raw_input): improve indentation management.
1761 It is now possible to paste indented code with autoindent on, and
1769 It is now possible to paste indented code with autoindent on, and
1762 the code is interpreted correctly (though it still looks bad on
1770 the code is interpreted correctly (though it still looks bad on
1763 screen, due to the line-oriented nature of ipython).
1771 screen, due to the line-oriented nature of ipython).
1764 (MagicCompleter.complete): change behavior so that a TAB key on an
1772 (MagicCompleter.complete): change behavior so that a TAB key on an
1765 otherwise empty line actually inserts a tab, instead of completing
1773 otherwise empty line actually inserts a tab, instead of completing
1766 on the entire global namespace. This makes it easier to use the
1774 on the entire global namespace. This makes it easier to use the
1767 TAB key for indentation. After a request by Hans Meine
1775 TAB key for indentation. After a request by Hans Meine
1768 <hans_meine-AT-gmx.net>
1776 <hans_meine-AT-gmx.net>
1769 (_prefilter): add support so that typing plain 'exit' or 'quit'
1777 (_prefilter): add support so that typing plain 'exit' or 'quit'
1770 does a sensible thing. Originally I tried to deviate as little as
1778 does a sensible thing. Originally I tried to deviate as little as
1771 possible from the default python behavior, but even that one may
1779 possible from the default python behavior, but even that one may
1772 change in this direction (thread on python-dev to that effect).
1780 change in this direction (thread on python-dev to that effect).
1773 Regardless, ipython should do the right thing even if CPython's
1781 Regardless, ipython should do the right thing even if CPython's
1774 '>>>' prompt doesn't.
1782 '>>>' prompt doesn't.
1775 (InteractiveShell): removed subclassing code.InteractiveConsole
1783 (InteractiveShell): removed subclassing code.InteractiveConsole
1776 class. By now we'd overridden just about all of its methods: I've
1784 class. By now we'd overridden just about all of its methods: I've
1777 copied the remaining two over, and now ipython is a standalone
1785 copied the remaining two over, and now ipython is a standalone
1778 class. This will provide a clearer picture for the chainsaw
1786 class. This will provide a clearer picture for the chainsaw
1779 branch refactoring.
1787 branch refactoring.
1780
1788
1781 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1789 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1782
1790
1783 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1791 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1784 failures for objects which break when dir() is called on them.
1792 failures for objects which break when dir() is called on them.
1785
1793
1786 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1794 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1787 distinct local and global namespaces in the completer API. This
1795 distinct local and global namespaces in the completer API. This
1788 change allows us to properly handle completion with distinct
1796 change allows us to properly handle completion with distinct
1789 scopes, including in embedded instances (this had never really
1797 scopes, including in embedded instances (this had never really
1790 worked correctly).
1798 worked correctly).
1791
1799
1792 Note: this introduces a change in the constructor for
1800 Note: this introduces a change in the constructor for
1793 MagicCompleter, as a new global_namespace parameter is now the
1801 MagicCompleter, as a new global_namespace parameter is now the
1794 second argument (the others were bumped one position).
1802 second argument (the others were bumped one position).
1795
1803
1796 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1804 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1797
1805
1798 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1806 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1799 embedded instances (which can be done now thanks to Vivian's
1807 embedded instances (which can be done now thanks to Vivian's
1800 frame-handling fixes for pdb).
1808 frame-handling fixes for pdb).
1801 (InteractiveShell.__init__): Fix namespace handling problem in
1809 (InteractiveShell.__init__): Fix namespace handling problem in
1802 embedded instances. We were overwriting __main__ unconditionally,
1810 embedded instances. We were overwriting __main__ unconditionally,
1803 and this should only be done for 'full' (non-embedded) IPython;
1811 and this should only be done for 'full' (non-embedded) IPython;
1804 embedded instances must respect the caller's __main__. Thanks to
1812 embedded instances must respect the caller's __main__. Thanks to
1805 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1813 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1806
1814
1807 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1808
1816
1809 * setup.py: added download_url to setup(). This registers the
1817 * setup.py: added download_url to setup(). This registers the
1810 download address at PyPI, which is not only useful to humans
1818 download address at PyPI, which is not only useful to humans
1811 browsing the site, but is also picked up by setuptools (the Eggs
1819 browsing the site, but is also picked up by setuptools (the Eggs
1812 machinery). Thanks to Ville and R. Kern for the info/discussion
1820 machinery). Thanks to Ville and R. Kern for the info/discussion
1813 on this.
1821 on this.
1814
1822
1815 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1823 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1816
1824
1817 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1825 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1818 This brings a lot of nice functionality to the pdb mode, which now
1826 This brings a lot of nice functionality to the pdb mode, which now
1819 has tab-completion, syntax highlighting, and better stack handling
1827 has tab-completion, syntax highlighting, and better stack handling
1820 than before. Many thanks to Vivian De Smedt
1828 than before. Many thanks to Vivian De Smedt
1821 <vivian-AT-vdesmedt.com> for the original patches.
1829 <vivian-AT-vdesmedt.com> for the original patches.
1822
1830
1823 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1831 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1824
1832
1825 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1833 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1826 sequence to consistently accept the banner argument. The
1834 sequence to consistently accept the banner argument. The
1827 inconsistency was tripping SAGE, thanks to Gary Zablackis
1835 inconsistency was tripping SAGE, thanks to Gary Zablackis
1828 <gzabl-AT-yahoo.com> for the report.
1836 <gzabl-AT-yahoo.com> for the report.
1829
1837
1830 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1838 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1831
1839
1832 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1840 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1833 Fix bug where a naked 'alias' call in the ipythonrc file would
1841 Fix bug where a naked 'alias' call in the ipythonrc file would
1834 cause a crash. Bug reported by Jorgen Stenarson.
1842 cause a crash. Bug reported by Jorgen Stenarson.
1835
1843
1836 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1844 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1837
1845
1838 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1846 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1839 startup time.
1847 startup time.
1840
1848
1841 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1849 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1842 instances had introduced a bug with globals in normal code. Now
1850 instances had introduced a bug with globals in normal code. Now
1843 it's working in all cases.
1851 it's working in all cases.
1844
1852
1845 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1853 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1846 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1854 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1847 has been introduced to set the default case sensitivity of the
1855 has been introduced to set the default case sensitivity of the
1848 searches. Users can still select either mode at runtime on a
1856 searches. Users can still select either mode at runtime on a
1849 per-search basis.
1857 per-search basis.
1850
1858
1851 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1859 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1852
1860
1853 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1861 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1854 attributes in wildcard searches for subclasses. Modified version
1862 attributes in wildcard searches for subclasses. Modified version
1855 of a patch by Jorgen.
1863 of a patch by Jorgen.
1856
1864
1857 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1865 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1858
1866
1859 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1867 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1860 embedded instances. I added a user_global_ns attribute to the
1868 embedded instances. I added a user_global_ns attribute to the
1861 InteractiveShell class to handle this.
1869 InteractiveShell class to handle this.
1862
1870
1863 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1871 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1864
1872
1865 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1873 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1866 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1874 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1867 (reported under win32, but may happen also in other platforms).
1875 (reported under win32, but may happen also in other platforms).
1868 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1876 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1869
1877
1870 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1878 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1871
1879
1872 * IPython/Magic.py (magic_psearch): new support for wildcard
1880 * IPython/Magic.py (magic_psearch): new support for wildcard
1873 patterns. Now, typing ?a*b will list all names which begin with a
1881 patterns. Now, typing ?a*b will list all names which begin with a
1874 and end in b, for example. The %psearch magic has full
1882 and end in b, for example. The %psearch magic has full
1875 docstrings. Many thanks to JΓΆrgen Stenarson
1883 docstrings. Many thanks to JΓΆrgen Stenarson
1876 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1884 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1877 implementing this functionality.
1885 implementing this functionality.
1878
1886
1879 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1887 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1880
1888
1881 * Manual: fixed long-standing annoyance of double-dashes (as in
1889 * Manual: fixed long-standing annoyance of double-dashes (as in
1882 --prefix=~, for example) being stripped in the HTML version. This
1890 --prefix=~, for example) being stripped in the HTML version. This
1883 is a latex2html bug, but a workaround was provided. Many thanks
1891 is a latex2html bug, but a workaround was provided. Many thanks
1884 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1892 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1885 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1893 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1886 rolling. This seemingly small issue had tripped a number of users
1894 rolling. This seemingly small issue had tripped a number of users
1887 when first installing, so I'm glad to see it gone.
1895 when first installing, so I'm glad to see it gone.
1888
1896
1889 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1897 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1890
1898
1891 * IPython/Extensions/numeric_formats.py: fix missing import,
1899 * IPython/Extensions/numeric_formats.py: fix missing import,
1892 reported by Stephen Walton.
1900 reported by Stephen Walton.
1893
1901
1894 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1895
1903
1896 * IPython/demo.py: finish demo module, fully documented now.
1904 * IPython/demo.py: finish demo module, fully documented now.
1897
1905
1898 * IPython/genutils.py (file_read): simple little utility to read a
1906 * IPython/genutils.py (file_read): simple little utility to read a
1899 file and ensure it's closed afterwards.
1907 file and ensure it's closed afterwards.
1900
1908
1901 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1909 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1902
1910
1903 * IPython/demo.py (Demo.__init__): added support for individually
1911 * IPython/demo.py (Demo.__init__): added support for individually
1904 tagging blocks for automatic execution.
1912 tagging blocks for automatic execution.
1905
1913
1906 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1914 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1907 syntax-highlighted python sources, requested by John.
1915 syntax-highlighted python sources, requested by John.
1908
1916
1909 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1917 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1910
1918
1911 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1919 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1912 finishing.
1920 finishing.
1913
1921
1914 * IPython/genutils.py (shlex_split): moved from Magic to here,
1922 * IPython/genutils.py (shlex_split): moved from Magic to here,
1915 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1923 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1916
1924
1917 * IPython/demo.py (Demo.__init__): added support for silent
1925 * IPython/demo.py (Demo.__init__): added support for silent
1918 blocks, improved marks as regexps, docstrings written.
1926 blocks, improved marks as regexps, docstrings written.
1919 (Demo.__init__): better docstring, added support for sys.argv.
1927 (Demo.__init__): better docstring, added support for sys.argv.
1920
1928
1921 * IPython/genutils.py (marquee): little utility used by the demo
1929 * IPython/genutils.py (marquee): little utility used by the demo
1922 code, handy in general.
1930 code, handy in general.
1923
1931
1924 * IPython/demo.py (Demo.__init__): new class for interactive
1932 * IPython/demo.py (Demo.__init__): new class for interactive
1925 demos. Not documented yet, I just wrote it in a hurry for
1933 demos. Not documented yet, I just wrote it in a hurry for
1926 scipy'05. Will docstring later.
1934 scipy'05. Will docstring later.
1927
1935
1928 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1936 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1929
1937
1930 * IPython/Shell.py (sigint_handler): Drastic simplification which
1938 * IPython/Shell.py (sigint_handler): Drastic simplification which
1931 also seems to make Ctrl-C work correctly across threads! This is
1939 also seems to make Ctrl-C work correctly across threads! This is
1932 so simple, that I can't beleive I'd missed it before. Needs more
1940 so simple, that I can't beleive I'd missed it before. Needs more
1933 testing, though.
1941 testing, though.
1934 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1942 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1935 like this before...
1943 like this before...
1936
1944
1937 * IPython/genutils.py (get_home_dir): add protection against
1945 * IPython/genutils.py (get_home_dir): add protection against
1938 non-dirs in win32 registry.
1946 non-dirs in win32 registry.
1939
1947
1940 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1948 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1941 bug where dict was mutated while iterating (pysh crash).
1949 bug where dict was mutated while iterating (pysh crash).
1942
1950
1943 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1951 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1944
1952
1945 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1953 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1946 spurious newlines added by this routine. After a report by
1954 spurious newlines added by this routine. After a report by
1947 F. Mantegazza.
1955 F. Mantegazza.
1948
1956
1949 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1957 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1950
1958
1951 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1959 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1952 calls. These were a leftover from the GTK 1.x days, and can cause
1960 calls. These were a leftover from the GTK 1.x days, and can cause
1953 problems in certain cases (after a report by John Hunter).
1961 problems in certain cases (after a report by John Hunter).
1954
1962
1955 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1963 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1956 os.getcwd() fails at init time. Thanks to patch from David Remahl
1964 os.getcwd() fails at init time. Thanks to patch from David Remahl
1957 <chmod007-AT-mac.com>.
1965 <chmod007-AT-mac.com>.
1958 (InteractiveShell.__init__): prevent certain special magics from
1966 (InteractiveShell.__init__): prevent certain special magics from
1959 being shadowed by aliases. Closes
1967 being shadowed by aliases. Closes
1960 http://www.scipy.net/roundup/ipython/issue41.
1968 http://www.scipy.net/roundup/ipython/issue41.
1961
1969
1962 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1970 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1963
1971
1964 * IPython/iplib.py (InteractiveShell.complete): Added new
1972 * IPython/iplib.py (InteractiveShell.complete): Added new
1965 top-level completion method to expose the completion mechanism
1973 top-level completion method to expose the completion mechanism
1966 beyond readline-based environments.
1974 beyond readline-based environments.
1967
1975
1968 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1976 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1969
1977
1970 * tools/ipsvnc (svnversion): fix svnversion capture.
1978 * tools/ipsvnc (svnversion): fix svnversion capture.
1971
1979
1972 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1980 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1973 attribute to self, which was missing. Before, it was set by a
1981 attribute to self, which was missing. Before, it was set by a
1974 routine which in certain cases wasn't being called, so the
1982 routine which in certain cases wasn't being called, so the
1975 instance could end up missing the attribute. This caused a crash.
1983 instance could end up missing the attribute. This caused a crash.
1976 Closes http://www.scipy.net/roundup/ipython/issue40.
1984 Closes http://www.scipy.net/roundup/ipython/issue40.
1977
1985
1978 2005-08-16 Fernando Perez <fperez@colorado.edu>
1986 2005-08-16 Fernando Perez <fperez@colorado.edu>
1979
1987
1980 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1988 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1981 contains non-string attribute. Closes
1989 contains non-string attribute. Closes
1982 http://www.scipy.net/roundup/ipython/issue38.
1990 http://www.scipy.net/roundup/ipython/issue38.
1983
1991
1984 2005-08-14 Fernando Perez <fperez@colorado.edu>
1992 2005-08-14 Fernando Perez <fperez@colorado.edu>
1985
1993
1986 * tools/ipsvnc: Minor improvements, to add changeset info.
1994 * tools/ipsvnc: Minor improvements, to add changeset info.
1987
1995
1988 2005-08-12 Fernando Perez <fperez@colorado.edu>
1996 2005-08-12 Fernando Perez <fperez@colorado.edu>
1989
1997
1990 * IPython/iplib.py (runsource): remove self.code_to_run_src
1998 * IPython/iplib.py (runsource): remove self.code_to_run_src
1991 attribute. I realized this is nothing more than
1999 attribute. I realized this is nothing more than
1992 '\n'.join(self.buffer), and having the same data in two different
2000 '\n'.join(self.buffer), and having the same data in two different
1993 places is just asking for synchronization bugs. This may impact
2001 places is just asking for synchronization bugs. This may impact
1994 people who have custom exception handlers, so I need to warn
2002 people who have custom exception handlers, so I need to warn
1995 ipython-dev about it (F. Mantegazza may use them).
2003 ipython-dev about it (F. Mantegazza may use them).
1996
2004
1997 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2005 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1998
2006
1999 * IPython/genutils.py: fix 2.2 compatibility (generators)
2007 * IPython/genutils.py: fix 2.2 compatibility (generators)
2000
2008
2001 2005-07-18 Fernando Perez <fperez@colorado.edu>
2009 2005-07-18 Fernando Perez <fperez@colorado.edu>
2002
2010
2003 * IPython/genutils.py (get_home_dir): fix to help users with
2011 * IPython/genutils.py (get_home_dir): fix to help users with
2004 invalid $HOME under win32.
2012 invalid $HOME under win32.
2005
2013
2006 2005-07-17 Fernando Perez <fperez@colorado.edu>
2014 2005-07-17 Fernando Perez <fperez@colorado.edu>
2007
2015
2008 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2016 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2009 some old hacks and clean up a bit other routines; code should be
2017 some old hacks and clean up a bit other routines; code should be
2010 simpler and a bit faster.
2018 simpler and a bit faster.
2011
2019
2012 * IPython/iplib.py (interact): removed some last-resort attempts
2020 * IPython/iplib.py (interact): removed some last-resort attempts
2013 to survive broken stdout/stderr. That code was only making it
2021 to survive broken stdout/stderr. That code was only making it
2014 harder to abstract out the i/o (necessary for gui integration),
2022 harder to abstract out the i/o (necessary for gui integration),
2015 and the crashes it could prevent were extremely rare in practice
2023 and the crashes it could prevent were extremely rare in practice
2016 (besides being fully user-induced in a pretty violent manner).
2024 (besides being fully user-induced in a pretty violent manner).
2017
2025
2018 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2026 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2019 Nothing major yet, but the code is simpler to read; this should
2027 Nothing major yet, but the code is simpler to read; this should
2020 make it easier to do more serious modifications in the future.
2028 make it easier to do more serious modifications in the future.
2021
2029
2022 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2030 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2023 which broke in .15 (thanks to a report by Ville).
2031 which broke in .15 (thanks to a report by Ville).
2024
2032
2025 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2033 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2026 be quite correct, I know next to nothing about unicode). This
2034 be quite correct, I know next to nothing about unicode). This
2027 will allow unicode strings to be used in prompts, amongst other
2035 will allow unicode strings to be used in prompts, amongst other
2028 cases. It also will prevent ipython from crashing when unicode
2036 cases. It also will prevent ipython from crashing when unicode
2029 shows up unexpectedly in many places. If ascii encoding fails, we
2037 shows up unexpectedly in many places. If ascii encoding fails, we
2030 assume utf_8. Currently the encoding is not a user-visible
2038 assume utf_8. Currently the encoding is not a user-visible
2031 setting, though it could be made so if there is demand for it.
2039 setting, though it could be made so if there is demand for it.
2032
2040
2033 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2041 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2034
2042
2035 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2043 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2036
2044
2037 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2045 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2038
2046
2039 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2047 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2040 code can work transparently for 2.2/2.3.
2048 code can work transparently for 2.2/2.3.
2041
2049
2042 2005-07-16 Fernando Perez <fperez@colorado.edu>
2050 2005-07-16 Fernando Perez <fperez@colorado.edu>
2043
2051
2044 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2052 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2045 out of the color scheme table used for coloring exception
2053 out of the color scheme table used for coloring exception
2046 tracebacks. This allows user code to add new schemes at runtime.
2054 tracebacks. This allows user code to add new schemes at runtime.
2047 This is a minimally modified version of the patch at
2055 This is a minimally modified version of the patch at
2048 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2056 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2049 for the contribution.
2057 for the contribution.
2050
2058
2051 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2059 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2052 slightly modified version of the patch in
2060 slightly modified version of the patch in
2053 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2061 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2054 to remove the previous try/except solution (which was costlier).
2062 to remove the previous try/except solution (which was costlier).
2055 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2063 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2056
2064
2057 2005-06-08 Fernando Perez <fperez@colorado.edu>
2065 2005-06-08 Fernando Perez <fperez@colorado.edu>
2058
2066
2059 * IPython/iplib.py (write/write_err): Add methods to abstract all
2067 * IPython/iplib.py (write/write_err): Add methods to abstract all
2060 I/O a bit more.
2068 I/O a bit more.
2061
2069
2062 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2070 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2063 warning, reported by Aric Hagberg, fix by JD Hunter.
2071 warning, reported by Aric Hagberg, fix by JD Hunter.
2064
2072
2065 2005-06-02 *** Released version 0.6.15
2073 2005-06-02 *** Released version 0.6.15
2066
2074
2067 2005-06-01 Fernando Perez <fperez@colorado.edu>
2075 2005-06-01 Fernando Perez <fperez@colorado.edu>
2068
2076
2069 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2077 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2070 tab-completion of filenames within open-quoted strings. Note that
2078 tab-completion of filenames within open-quoted strings. Note that
2071 this requires that in ~/.ipython/ipythonrc, users change the
2079 this requires that in ~/.ipython/ipythonrc, users change the
2072 readline delimiters configuration to read:
2080 readline delimiters configuration to read:
2073
2081
2074 readline_remove_delims -/~
2082 readline_remove_delims -/~
2075
2083
2076
2084
2077 2005-05-31 *** Released version 0.6.14
2085 2005-05-31 *** Released version 0.6.14
2078
2086
2079 2005-05-29 Fernando Perez <fperez@colorado.edu>
2087 2005-05-29 Fernando Perez <fperez@colorado.edu>
2080
2088
2081 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2089 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2082 with files not on the filesystem. Reported by Eliyahu Sandler
2090 with files not on the filesystem. Reported by Eliyahu Sandler
2083 <eli@gondolin.net>
2091 <eli@gondolin.net>
2084
2092
2085 2005-05-22 Fernando Perez <fperez@colorado.edu>
2093 2005-05-22 Fernando Perez <fperez@colorado.edu>
2086
2094
2087 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2095 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2088 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2096 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2089
2097
2090 2005-05-19 Fernando Perez <fperez@colorado.edu>
2098 2005-05-19 Fernando Perez <fperez@colorado.edu>
2091
2099
2092 * IPython/iplib.py (safe_execfile): close a file which could be
2100 * IPython/iplib.py (safe_execfile): close a file which could be
2093 left open (causing problems in win32, which locks open files).
2101 left open (causing problems in win32, which locks open files).
2094 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2102 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2095
2103
2096 2005-05-18 Fernando Perez <fperez@colorado.edu>
2104 2005-05-18 Fernando Perez <fperez@colorado.edu>
2097
2105
2098 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2106 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2099 keyword arguments correctly to safe_execfile().
2107 keyword arguments correctly to safe_execfile().
2100
2108
2101 2005-05-13 Fernando Perez <fperez@colorado.edu>
2109 2005-05-13 Fernando Perez <fperez@colorado.edu>
2102
2110
2103 * ipython.1: Added info about Qt to manpage, and threads warning
2111 * ipython.1: Added info about Qt to manpage, and threads warning
2104 to usage page (invoked with --help).
2112 to usage page (invoked with --help).
2105
2113
2106 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2114 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2107 new matcher (it goes at the end of the priority list) to do
2115 new matcher (it goes at the end of the priority list) to do
2108 tab-completion on named function arguments. Submitted by George
2116 tab-completion on named function arguments. Submitted by George
2109 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2117 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2110 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2118 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2111 for more details.
2119 for more details.
2112
2120
2113 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2121 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2114 SystemExit exceptions in the script being run. Thanks to a report
2122 SystemExit exceptions in the script being run. Thanks to a report
2115 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2123 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2116 producing very annoying behavior when running unit tests.
2124 producing very annoying behavior when running unit tests.
2117
2125
2118 2005-05-12 Fernando Perez <fperez@colorado.edu>
2126 2005-05-12 Fernando Perez <fperez@colorado.edu>
2119
2127
2120 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2128 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2121 which I'd broken (again) due to a changed regexp. In the process,
2129 which I'd broken (again) due to a changed regexp. In the process,
2122 added ';' as an escape to auto-quote the whole line without
2130 added ';' as an escape to auto-quote the whole line without
2123 splitting its arguments. Thanks to a report by Jerry McRae
2131 splitting its arguments. Thanks to a report by Jerry McRae
2124 <qrs0xyc02-AT-sneakemail.com>.
2132 <qrs0xyc02-AT-sneakemail.com>.
2125
2133
2126 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2134 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2127 possible crashes caused by a TokenError. Reported by Ed Schofield
2135 possible crashes caused by a TokenError. Reported by Ed Schofield
2128 <schofield-AT-ftw.at>.
2136 <schofield-AT-ftw.at>.
2129
2137
2130 2005-05-06 Fernando Perez <fperez@colorado.edu>
2138 2005-05-06 Fernando Perez <fperez@colorado.edu>
2131
2139
2132 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2140 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2133
2141
2134 2005-04-29 Fernando Perez <fperez@colorado.edu>
2142 2005-04-29 Fernando Perez <fperez@colorado.edu>
2135
2143
2136 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2144 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2137 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2145 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2138 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2146 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2139 which provides support for Qt interactive usage (similar to the
2147 which provides support for Qt interactive usage (similar to the
2140 existing one for WX and GTK). This had been often requested.
2148 existing one for WX and GTK). This had been often requested.
2141
2149
2142 2005-04-14 *** Released version 0.6.13
2150 2005-04-14 *** Released version 0.6.13
2143
2151
2144 2005-04-08 Fernando Perez <fperez@colorado.edu>
2152 2005-04-08 Fernando Perez <fperez@colorado.edu>
2145
2153
2146 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2154 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2147 from _ofind, which gets called on almost every input line. Now,
2155 from _ofind, which gets called on almost every input line. Now,
2148 we only try to get docstrings if they are actually going to be
2156 we only try to get docstrings if they are actually going to be
2149 used (the overhead of fetching unnecessary docstrings can be
2157 used (the overhead of fetching unnecessary docstrings can be
2150 noticeable for certain objects, such as Pyro proxies).
2158 noticeable for certain objects, such as Pyro proxies).
2151
2159
2152 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2160 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2153 for completers. For some reason I had been passing them the state
2161 for completers. For some reason I had been passing them the state
2154 variable, which completers never actually need, and was in
2162 variable, which completers never actually need, and was in
2155 conflict with the rlcompleter API. Custom completers ONLY need to
2163 conflict with the rlcompleter API. Custom completers ONLY need to
2156 take the text parameter.
2164 take the text parameter.
2157
2165
2158 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2166 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2159 work correctly in pysh. I've also moved all the logic which used
2167 work correctly in pysh. I've also moved all the logic which used
2160 to be in pysh.py here, which will prevent problems with future
2168 to be in pysh.py here, which will prevent problems with future
2161 upgrades. However, this time I must warn users to update their
2169 upgrades. However, this time I must warn users to update their
2162 pysh profile to include the line
2170 pysh profile to include the line
2163
2171
2164 import_all IPython.Extensions.InterpreterExec
2172 import_all IPython.Extensions.InterpreterExec
2165
2173
2166 because otherwise things won't work for them. They MUST also
2174 because otherwise things won't work for them. They MUST also
2167 delete pysh.py and the line
2175 delete pysh.py and the line
2168
2176
2169 execfile pysh.py
2177 execfile pysh.py
2170
2178
2171 from their ipythonrc-pysh.
2179 from their ipythonrc-pysh.
2172
2180
2173 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2181 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2174 robust in the face of objects whose dir() returns non-strings
2182 robust in the face of objects whose dir() returns non-strings
2175 (which it shouldn't, but some broken libs like ITK do). Thanks to
2183 (which it shouldn't, but some broken libs like ITK do). Thanks to
2176 a patch by John Hunter (implemented differently, though). Also
2184 a patch by John Hunter (implemented differently, though). Also
2177 minor improvements by using .extend instead of + on lists.
2185 minor improvements by using .extend instead of + on lists.
2178
2186
2179 * pysh.py:
2187 * pysh.py:
2180
2188
2181 2005-04-06 Fernando Perez <fperez@colorado.edu>
2189 2005-04-06 Fernando Perez <fperez@colorado.edu>
2182
2190
2183 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2191 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2184 by default, so that all users benefit from it. Those who don't
2192 by default, so that all users benefit from it. Those who don't
2185 want it can still turn it off.
2193 want it can still turn it off.
2186
2194
2187 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2195 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2188 config file, I'd forgotten about this, so users were getting it
2196 config file, I'd forgotten about this, so users were getting it
2189 off by default.
2197 off by default.
2190
2198
2191 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2199 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2192 consistency. Now magics can be called in multiline statements,
2200 consistency. Now magics can be called in multiline statements,
2193 and python variables can be expanded in magic calls via $var.
2201 and python variables can be expanded in magic calls via $var.
2194 This makes the magic system behave just like aliases or !system
2202 This makes the magic system behave just like aliases or !system
2195 calls.
2203 calls.
2196
2204
2197 2005-03-28 Fernando Perez <fperez@colorado.edu>
2205 2005-03-28 Fernando Perez <fperez@colorado.edu>
2198
2206
2199 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2207 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2200 expensive string additions for building command. Add support for
2208 expensive string additions for building command. Add support for
2201 trailing ';' when autocall is used.
2209 trailing ';' when autocall is used.
2202
2210
2203 2005-03-26 Fernando Perez <fperez@colorado.edu>
2211 2005-03-26 Fernando Perez <fperez@colorado.edu>
2204
2212
2205 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2213 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2206 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2214 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2207 ipython.el robust against prompts with any number of spaces
2215 ipython.el robust against prompts with any number of spaces
2208 (including 0) after the ':' character.
2216 (including 0) after the ':' character.
2209
2217
2210 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2218 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2211 continuation prompt, which misled users to think the line was
2219 continuation prompt, which misled users to think the line was
2212 already indented. Closes debian Bug#300847, reported to me by
2220 already indented. Closes debian Bug#300847, reported to me by
2213 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2221 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2214
2222
2215 2005-03-23 Fernando Perez <fperez@colorado.edu>
2223 2005-03-23 Fernando Perez <fperez@colorado.edu>
2216
2224
2217 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2225 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2218 properly aligned if they have embedded newlines.
2226 properly aligned if they have embedded newlines.
2219
2227
2220 * IPython/iplib.py (runlines): Add a public method to expose
2228 * IPython/iplib.py (runlines): Add a public method to expose
2221 IPython's code execution machinery, so that users can run strings
2229 IPython's code execution machinery, so that users can run strings
2222 as if they had been typed at the prompt interactively.
2230 as if they had been typed at the prompt interactively.
2223 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2231 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2224 methods which can call the system shell, but with python variable
2232 methods which can call the system shell, but with python variable
2225 expansion. The three such methods are: __IPYTHON__.system,
2233 expansion. The three such methods are: __IPYTHON__.system,
2226 .getoutput and .getoutputerror. These need to be documented in a
2234 .getoutput and .getoutputerror. These need to be documented in a
2227 'public API' section (to be written) of the manual.
2235 'public API' section (to be written) of the manual.
2228
2236
2229 2005-03-20 Fernando Perez <fperez@colorado.edu>
2237 2005-03-20 Fernando Perez <fperez@colorado.edu>
2230
2238
2231 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2239 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2232 for custom exception handling. This is quite powerful, and it
2240 for custom exception handling. This is quite powerful, and it
2233 allows for user-installable exception handlers which can trap
2241 allows for user-installable exception handlers which can trap
2234 custom exceptions at runtime and treat them separately from
2242 custom exceptions at runtime and treat them separately from
2235 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2243 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2236 Mantegazza <mantegazza-AT-ill.fr>.
2244 Mantegazza <mantegazza-AT-ill.fr>.
2237 (InteractiveShell.set_custom_completer): public API function to
2245 (InteractiveShell.set_custom_completer): public API function to
2238 add new completers at runtime.
2246 add new completers at runtime.
2239
2247
2240 2005-03-19 Fernando Perez <fperez@colorado.edu>
2248 2005-03-19 Fernando Perez <fperez@colorado.edu>
2241
2249
2242 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2250 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2243 allow objects which provide their docstrings via non-standard
2251 allow objects which provide their docstrings via non-standard
2244 mechanisms (like Pyro proxies) to still be inspected by ipython's
2252 mechanisms (like Pyro proxies) to still be inspected by ipython's
2245 ? system.
2253 ? system.
2246
2254
2247 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2255 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2248 automatic capture system. I tried quite hard to make it work
2256 automatic capture system. I tried quite hard to make it work
2249 reliably, and simply failed. I tried many combinations with the
2257 reliably, and simply failed. I tried many combinations with the
2250 subprocess module, but eventually nothing worked in all needed
2258 subprocess module, but eventually nothing worked in all needed
2251 cases (not blocking stdin for the child, duplicating stdout
2259 cases (not blocking stdin for the child, duplicating stdout
2252 without blocking, etc). The new %sc/%sx still do capture to these
2260 without blocking, etc). The new %sc/%sx still do capture to these
2253 magical list/string objects which make shell use much more
2261 magical list/string objects which make shell use much more
2254 conveninent, so not all is lost.
2262 conveninent, so not all is lost.
2255
2263
2256 XXX - FIX MANUAL for the change above!
2264 XXX - FIX MANUAL for the change above!
2257
2265
2258 (runsource): I copied code.py's runsource() into ipython to modify
2266 (runsource): I copied code.py's runsource() into ipython to modify
2259 it a bit. Now the code object and source to be executed are
2267 it a bit. Now the code object and source to be executed are
2260 stored in ipython. This makes this info accessible to third-party
2268 stored in ipython. This makes this info accessible to third-party
2261 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2269 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2262 Mantegazza <mantegazza-AT-ill.fr>.
2270 Mantegazza <mantegazza-AT-ill.fr>.
2263
2271
2264 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2272 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2265 history-search via readline (like C-p/C-n). I'd wanted this for a
2273 history-search via readline (like C-p/C-n). I'd wanted this for a
2266 long time, but only recently found out how to do it. For users
2274 long time, but only recently found out how to do it. For users
2267 who already have their ipythonrc files made and want this, just
2275 who already have their ipythonrc files made and want this, just
2268 add:
2276 add:
2269
2277
2270 readline_parse_and_bind "\e[A": history-search-backward
2278 readline_parse_and_bind "\e[A": history-search-backward
2271 readline_parse_and_bind "\e[B": history-search-forward
2279 readline_parse_and_bind "\e[B": history-search-forward
2272
2280
2273 2005-03-18 Fernando Perez <fperez@colorado.edu>
2281 2005-03-18 Fernando Perez <fperez@colorado.edu>
2274
2282
2275 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2283 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2276 LSString and SList classes which allow transparent conversions
2284 LSString and SList classes which allow transparent conversions
2277 between list mode and whitespace-separated string.
2285 between list mode and whitespace-separated string.
2278 (magic_r): Fix recursion problem in %r.
2286 (magic_r): Fix recursion problem in %r.
2279
2287
2280 * IPython/genutils.py (LSString): New class to be used for
2288 * IPython/genutils.py (LSString): New class to be used for
2281 automatic storage of the results of all alias/system calls in _o
2289 automatic storage of the results of all alias/system calls in _o
2282 and _e (stdout/err). These provide a .l/.list attribute which
2290 and _e (stdout/err). These provide a .l/.list attribute which
2283 does automatic splitting on newlines. This means that for most
2291 does automatic splitting on newlines. This means that for most
2284 uses, you'll never need to do capturing of output with %sc/%sx
2292 uses, you'll never need to do capturing of output with %sc/%sx
2285 anymore, since ipython keeps this always done for you. Note that
2293 anymore, since ipython keeps this always done for you. Note that
2286 only the LAST results are stored, the _o/e variables are
2294 only the LAST results are stored, the _o/e variables are
2287 overwritten on each call. If you need to save their contents
2295 overwritten on each call. If you need to save their contents
2288 further, simply bind them to any other name.
2296 further, simply bind them to any other name.
2289
2297
2290 2005-03-17 Fernando Perez <fperez@colorado.edu>
2298 2005-03-17 Fernando Perez <fperez@colorado.edu>
2291
2299
2292 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2300 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2293 prompt namespace handling.
2301 prompt namespace handling.
2294
2302
2295 2005-03-16 Fernando Perez <fperez@colorado.edu>
2303 2005-03-16 Fernando Perez <fperez@colorado.edu>
2296
2304
2297 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2305 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2298 classic prompts to be '>>> ' (final space was missing, and it
2306 classic prompts to be '>>> ' (final space was missing, and it
2299 trips the emacs python mode).
2307 trips the emacs python mode).
2300 (BasePrompt.__str__): Added safe support for dynamic prompt
2308 (BasePrompt.__str__): Added safe support for dynamic prompt
2301 strings. Now you can set your prompt string to be '$x', and the
2309 strings. Now you can set your prompt string to be '$x', and the
2302 value of x will be printed from your interactive namespace. The
2310 value of x will be printed from your interactive namespace. The
2303 interpolation syntax includes the full Itpl support, so
2311 interpolation syntax includes the full Itpl support, so
2304 ${foo()+x+bar()} is a valid prompt string now, and the function
2312 ${foo()+x+bar()} is a valid prompt string now, and the function
2305 calls will be made at runtime.
2313 calls will be made at runtime.
2306
2314
2307 2005-03-15 Fernando Perez <fperez@colorado.edu>
2315 2005-03-15 Fernando Perez <fperez@colorado.edu>
2308
2316
2309 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2317 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2310 avoid name clashes in pylab. %hist still works, it just forwards
2318 avoid name clashes in pylab. %hist still works, it just forwards
2311 the call to %history.
2319 the call to %history.
2312
2320
2313 2005-03-02 *** Released version 0.6.12
2321 2005-03-02 *** Released version 0.6.12
2314
2322
2315 2005-03-02 Fernando Perez <fperez@colorado.edu>
2323 2005-03-02 Fernando Perez <fperez@colorado.edu>
2316
2324
2317 * IPython/iplib.py (handle_magic): log magic calls properly as
2325 * IPython/iplib.py (handle_magic): log magic calls properly as
2318 ipmagic() function calls.
2326 ipmagic() function calls.
2319
2327
2320 * IPython/Magic.py (magic_time): Improved %time to support
2328 * IPython/Magic.py (magic_time): Improved %time to support
2321 statements and provide wall-clock as well as CPU time.
2329 statements and provide wall-clock as well as CPU time.
2322
2330
2323 2005-02-27 Fernando Perez <fperez@colorado.edu>
2331 2005-02-27 Fernando Perez <fperez@colorado.edu>
2324
2332
2325 * IPython/hooks.py: New hooks module, to expose user-modifiable
2333 * IPython/hooks.py: New hooks module, to expose user-modifiable
2326 IPython functionality in a clean manner. For now only the editor
2334 IPython functionality in a clean manner. For now only the editor
2327 hook is actually written, and other thigns which I intend to turn
2335 hook is actually written, and other thigns which I intend to turn
2328 into proper hooks aren't yet there. The display and prefilter
2336 into proper hooks aren't yet there. The display and prefilter
2329 stuff, for example, should be hooks. But at least now the
2337 stuff, for example, should be hooks. But at least now the
2330 framework is in place, and the rest can be moved here with more
2338 framework is in place, and the rest can be moved here with more
2331 time later. IPython had had a .hooks variable for a long time for
2339 time later. IPython had had a .hooks variable for a long time for
2332 this purpose, but I'd never actually used it for anything.
2340 this purpose, but I'd never actually used it for anything.
2333
2341
2334 2005-02-26 Fernando Perez <fperez@colorado.edu>
2342 2005-02-26 Fernando Perez <fperez@colorado.edu>
2335
2343
2336 * IPython/ipmaker.py (make_IPython): make the default ipython
2344 * IPython/ipmaker.py (make_IPython): make the default ipython
2337 directory be called _ipython under win32, to follow more the
2345 directory be called _ipython under win32, to follow more the
2338 naming peculiarities of that platform (where buggy software like
2346 naming peculiarities of that platform (where buggy software like
2339 Visual Sourcesafe breaks with .named directories). Reported by
2347 Visual Sourcesafe breaks with .named directories). Reported by
2340 Ville Vainio.
2348 Ville Vainio.
2341
2349
2342 2005-02-23 Fernando Perez <fperez@colorado.edu>
2350 2005-02-23 Fernando Perez <fperez@colorado.edu>
2343
2351
2344 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2352 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2345 auto_aliases for win32 which were causing problems. Users can
2353 auto_aliases for win32 which were causing problems. Users can
2346 define the ones they personally like.
2354 define the ones they personally like.
2347
2355
2348 2005-02-21 Fernando Perez <fperez@colorado.edu>
2356 2005-02-21 Fernando Perez <fperez@colorado.edu>
2349
2357
2350 * IPython/Magic.py (magic_time): new magic to time execution of
2358 * IPython/Magic.py (magic_time): new magic to time execution of
2351 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2359 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2352
2360
2353 2005-02-19 Fernando Perez <fperez@colorado.edu>
2361 2005-02-19 Fernando Perez <fperez@colorado.edu>
2354
2362
2355 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2363 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2356 into keys (for prompts, for example).
2364 into keys (for prompts, for example).
2357
2365
2358 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2366 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2359 prompts in case users want them. This introduces a small behavior
2367 prompts in case users want them. This introduces a small behavior
2360 change: ipython does not automatically add a space to all prompts
2368 change: ipython does not automatically add a space to all prompts
2361 anymore. To get the old prompts with a space, users should add it
2369 anymore. To get the old prompts with a space, users should add it
2362 manually to their ipythonrc file, so for example prompt_in1 should
2370 manually to their ipythonrc file, so for example prompt_in1 should
2363 now read 'In [\#]: ' instead of 'In [\#]:'.
2371 now read 'In [\#]: ' instead of 'In [\#]:'.
2364 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2372 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2365 file) to control left-padding of secondary prompts.
2373 file) to control left-padding of secondary prompts.
2366
2374
2367 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2375 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2368 the profiler can't be imported. Fix for Debian, which removed
2376 the profiler can't be imported. Fix for Debian, which removed
2369 profile.py because of License issues. I applied a slightly
2377 profile.py because of License issues. I applied a slightly
2370 modified version of the original Debian patch at
2378 modified version of the original Debian patch at
2371 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2379 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2372
2380
2373 2005-02-17 Fernando Perez <fperez@colorado.edu>
2381 2005-02-17 Fernando Perez <fperez@colorado.edu>
2374
2382
2375 * IPython/genutils.py (native_line_ends): Fix bug which would
2383 * IPython/genutils.py (native_line_ends): Fix bug which would
2376 cause improper line-ends under win32 b/c I was not opening files
2384 cause improper line-ends under win32 b/c I was not opening files
2377 in binary mode. Bug report and fix thanks to Ville.
2385 in binary mode. Bug report and fix thanks to Ville.
2378
2386
2379 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2387 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2380 trying to catch spurious foo[1] autocalls. My fix actually broke
2388 trying to catch spurious foo[1] autocalls. My fix actually broke
2381 ',/' autoquote/call with explicit escape (bad regexp).
2389 ',/' autoquote/call with explicit escape (bad regexp).
2382
2390
2383 2005-02-15 *** Released version 0.6.11
2391 2005-02-15 *** Released version 0.6.11
2384
2392
2385 2005-02-14 Fernando Perez <fperez@colorado.edu>
2393 2005-02-14 Fernando Perez <fperez@colorado.edu>
2386
2394
2387 * IPython/background_jobs.py: New background job management
2395 * IPython/background_jobs.py: New background job management
2388 subsystem. This is implemented via a new set of classes, and
2396 subsystem. This is implemented via a new set of classes, and
2389 IPython now provides a builtin 'jobs' object for background job
2397 IPython now provides a builtin 'jobs' object for background job
2390 execution. A convenience %bg magic serves as a lightweight
2398 execution. A convenience %bg magic serves as a lightweight
2391 frontend for starting the more common type of calls. This was
2399 frontend for starting the more common type of calls. This was
2392 inspired by discussions with B. Granger and the BackgroundCommand
2400 inspired by discussions with B. Granger and the BackgroundCommand
2393 class described in the book Python Scripting for Computational
2401 class described in the book Python Scripting for Computational
2394 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2402 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2395 (although ultimately no code from this text was used, as IPython's
2403 (although ultimately no code from this text was used, as IPython's
2396 system is a separate implementation).
2404 system is a separate implementation).
2397
2405
2398 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2406 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2399 to control the completion of single/double underscore names
2407 to control the completion of single/double underscore names
2400 separately. As documented in the example ipytonrc file, the
2408 separately. As documented in the example ipytonrc file, the
2401 readline_omit__names variable can now be set to 2, to omit even
2409 readline_omit__names variable can now be set to 2, to omit even
2402 single underscore names. Thanks to a patch by Brian Wong
2410 single underscore names. Thanks to a patch by Brian Wong
2403 <BrianWong-AT-AirgoNetworks.Com>.
2411 <BrianWong-AT-AirgoNetworks.Com>.
2404 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2412 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2405 be autocalled as foo([1]) if foo were callable. A problem for
2413 be autocalled as foo([1]) if foo were callable. A problem for
2406 things which are both callable and implement __getitem__.
2414 things which are both callable and implement __getitem__.
2407 (init_readline): Fix autoindentation for win32. Thanks to a patch
2415 (init_readline): Fix autoindentation for win32. Thanks to a patch
2408 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2416 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2409
2417
2410 2005-02-12 Fernando Perez <fperez@colorado.edu>
2418 2005-02-12 Fernando Perez <fperez@colorado.edu>
2411
2419
2412 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2420 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2413 which I had written long ago to sort out user error messages which
2421 which I had written long ago to sort out user error messages which
2414 may occur during startup. This seemed like a good idea initially,
2422 may occur during startup. This seemed like a good idea initially,
2415 but it has proven a disaster in retrospect. I don't want to
2423 but it has proven a disaster in retrospect. I don't want to
2416 change much code for now, so my fix is to set the internal 'debug'
2424 change much code for now, so my fix is to set the internal 'debug'
2417 flag to true everywhere, whose only job was precisely to control
2425 flag to true everywhere, whose only job was precisely to control
2418 this subsystem. This closes issue 28 (as well as avoiding all
2426 this subsystem. This closes issue 28 (as well as avoiding all
2419 sorts of strange hangups which occur from time to time).
2427 sorts of strange hangups which occur from time to time).
2420
2428
2421 2005-02-07 Fernando Perez <fperez@colorado.edu>
2429 2005-02-07 Fernando Perez <fperez@colorado.edu>
2422
2430
2423 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2431 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2424 previous call produced a syntax error.
2432 previous call produced a syntax error.
2425
2433
2426 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2434 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2427 classes without constructor.
2435 classes without constructor.
2428
2436
2429 2005-02-06 Fernando Perez <fperez@colorado.edu>
2437 2005-02-06 Fernando Perez <fperez@colorado.edu>
2430
2438
2431 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2439 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2432 completions with the results of each matcher, so we return results
2440 completions with the results of each matcher, so we return results
2433 to the user from all namespaces. This breaks with ipython
2441 to the user from all namespaces. This breaks with ipython
2434 tradition, but I think it's a nicer behavior. Now you get all
2442 tradition, but I think it's a nicer behavior. Now you get all
2435 possible completions listed, from all possible namespaces (python,
2443 possible completions listed, from all possible namespaces (python,
2436 filesystem, magics...) After a request by John Hunter
2444 filesystem, magics...) After a request by John Hunter
2437 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2445 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2438
2446
2439 2005-02-05 Fernando Perez <fperez@colorado.edu>
2447 2005-02-05 Fernando Perez <fperez@colorado.edu>
2440
2448
2441 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2449 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2442 the call had quote characters in it (the quotes were stripped).
2450 the call had quote characters in it (the quotes were stripped).
2443
2451
2444 2005-01-31 Fernando Perez <fperez@colorado.edu>
2452 2005-01-31 Fernando Perez <fperez@colorado.edu>
2445
2453
2446 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2454 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2447 Itpl.itpl() to make the code more robust against psyco
2455 Itpl.itpl() to make the code more robust against psyco
2448 optimizations.
2456 optimizations.
2449
2457
2450 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2458 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2451 of causing an exception. Quicker, cleaner.
2459 of causing an exception. Quicker, cleaner.
2452
2460
2453 2005-01-28 Fernando Perez <fperez@colorado.edu>
2461 2005-01-28 Fernando Perez <fperez@colorado.edu>
2454
2462
2455 * scripts/ipython_win_post_install.py (install): hardcode
2463 * scripts/ipython_win_post_install.py (install): hardcode
2456 sys.prefix+'python.exe' as the executable path. It turns out that
2464 sys.prefix+'python.exe' as the executable path. It turns out that
2457 during the post-installation run, sys.executable resolves to the
2465 during the post-installation run, sys.executable resolves to the
2458 name of the binary installer! I should report this as a distutils
2466 name of the binary installer! I should report this as a distutils
2459 bug, I think. I updated the .10 release with this tiny fix, to
2467 bug, I think. I updated the .10 release with this tiny fix, to
2460 avoid annoying the lists further.
2468 avoid annoying the lists further.
2461
2469
2462 2005-01-27 *** Released version 0.6.10
2470 2005-01-27 *** Released version 0.6.10
2463
2471
2464 2005-01-27 Fernando Perez <fperez@colorado.edu>
2472 2005-01-27 Fernando Perez <fperez@colorado.edu>
2465
2473
2466 * IPython/numutils.py (norm): Added 'inf' as optional name for
2474 * IPython/numutils.py (norm): Added 'inf' as optional name for
2467 L-infinity norm, included references to mathworld.com for vector
2475 L-infinity norm, included references to mathworld.com for vector
2468 norm definitions.
2476 norm definitions.
2469 (amin/amax): added amin/amax for array min/max. Similar to what
2477 (amin/amax): added amin/amax for array min/max. Similar to what
2470 pylab ships with after the recent reorganization of names.
2478 pylab ships with after the recent reorganization of names.
2471 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2479 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2472
2480
2473 * ipython.el: committed Alex's recent fixes and improvements.
2481 * ipython.el: committed Alex's recent fixes and improvements.
2474 Tested with python-mode from CVS, and it looks excellent. Since
2482 Tested with python-mode from CVS, and it looks excellent. Since
2475 python-mode hasn't released anything in a while, I'm temporarily
2483 python-mode hasn't released anything in a while, I'm temporarily
2476 putting a copy of today's CVS (v 4.70) of python-mode in:
2484 putting a copy of today's CVS (v 4.70) of python-mode in:
2477 http://ipython.scipy.org/tmp/python-mode.el
2485 http://ipython.scipy.org/tmp/python-mode.el
2478
2486
2479 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2487 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2480 sys.executable for the executable name, instead of assuming it's
2488 sys.executable for the executable name, instead of assuming it's
2481 called 'python.exe' (the post-installer would have produced broken
2489 called 'python.exe' (the post-installer would have produced broken
2482 setups on systems with a differently named python binary).
2490 setups on systems with a differently named python binary).
2483
2491
2484 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2492 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2485 references to os.linesep, to make the code more
2493 references to os.linesep, to make the code more
2486 platform-independent. This is also part of the win32 coloring
2494 platform-independent. This is also part of the win32 coloring
2487 fixes.
2495 fixes.
2488
2496
2489 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2497 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2490 lines, which actually cause coloring bugs because the length of
2498 lines, which actually cause coloring bugs because the length of
2491 the line is very difficult to correctly compute with embedded
2499 the line is very difficult to correctly compute with embedded
2492 escapes. This was the source of all the coloring problems under
2500 escapes. This was the source of all the coloring problems under
2493 Win32. I think that _finally_, Win32 users have a properly
2501 Win32. I think that _finally_, Win32 users have a properly
2494 working ipython in all respects. This would never have happened
2502 working ipython in all respects. This would never have happened
2495 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2503 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2496
2504
2497 2005-01-26 *** Released version 0.6.9
2505 2005-01-26 *** Released version 0.6.9
2498
2506
2499 2005-01-25 Fernando Perez <fperez@colorado.edu>
2507 2005-01-25 Fernando Perez <fperez@colorado.edu>
2500
2508
2501 * setup.py: finally, we have a true Windows installer, thanks to
2509 * setup.py: finally, we have a true Windows installer, thanks to
2502 the excellent work of Viktor Ransmayr
2510 the excellent work of Viktor Ransmayr
2503 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2511 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2504 Windows users. The setup routine is quite a bit cleaner thanks to
2512 Windows users. The setup routine is quite a bit cleaner thanks to
2505 this, and the post-install script uses the proper functions to
2513 this, and the post-install script uses the proper functions to
2506 allow a clean de-installation using the standard Windows Control
2514 allow a clean de-installation using the standard Windows Control
2507 Panel.
2515 Panel.
2508
2516
2509 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2517 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2510 environment variable under all OSes (including win32) if
2518 environment variable under all OSes (including win32) if
2511 available. This will give consistency to win32 users who have set
2519 available. This will give consistency to win32 users who have set
2512 this variable for any reason. If os.environ['HOME'] fails, the
2520 this variable for any reason. If os.environ['HOME'] fails, the
2513 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2521 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2514
2522
2515 2005-01-24 Fernando Perez <fperez@colorado.edu>
2523 2005-01-24 Fernando Perez <fperez@colorado.edu>
2516
2524
2517 * IPython/numutils.py (empty_like): add empty_like(), similar to
2525 * IPython/numutils.py (empty_like): add empty_like(), similar to
2518 zeros_like() but taking advantage of the new empty() Numeric routine.
2526 zeros_like() but taking advantage of the new empty() Numeric routine.
2519
2527
2520 2005-01-23 *** Released version 0.6.8
2528 2005-01-23 *** Released version 0.6.8
2521
2529
2522 2005-01-22 Fernando Perez <fperez@colorado.edu>
2530 2005-01-22 Fernando Perez <fperez@colorado.edu>
2523
2531
2524 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2532 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2525 automatic show() calls. After discussing things with JDH, it
2533 automatic show() calls. After discussing things with JDH, it
2526 turns out there are too many corner cases where this can go wrong.
2534 turns out there are too many corner cases where this can go wrong.
2527 It's best not to try to be 'too smart', and simply have ipython
2535 It's best not to try to be 'too smart', and simply have ipython
2528 reproduce as much as possible the default behavior of a normal
2536 reproduce as much as possible the default behavior of a normal
2529 python shell.
2537 python shell.
2530
2538
2531 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2539 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2532 line-splitting regexp and _prefilter() to avoid calling getattr()
2540 line-splitting regexp and _prefilter() to avoid calling getattr()
2533 on assignments. This closes
2541 on assignments. This closes
2534 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2542 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2535 readline uses getattr(), so a simple <TAB> keypress is still
2543 readline uses getattr(), so a simple <TAB> keypress is still
2536 enough to trigger getattr() calls on an object.
2544 enough to trigger getattr() calls on an object.
2537
2545
2538 2005-01-21 Fernando Perez <fperez@colorado.edu>
2546 2005-01-21 Fernando Perez <fperez@colorado.edu>
2539
2547
2540 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2548 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2541 docstring under pylab so it doesn't mask the original.
2549 docstring under pylab so it doesn't mask the original.
2542
2550
2543 2005-01-21 *** Released version 0.6.7
2551 2005-01-21 *** Released version 0.6.7
2544
2552
2545 2005-01-21 Fernando Perez <fperez@colorado.edu>
2553 2005-01-21 Fernando Perez <fperez@colorado.edu>
2546
2554
2547 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2555 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2548 signal handling for win32 users in multithreaded mode.
2556 signal handling for win32 users in multithreaded mode.
2549
2557
2550 2005-01-17 Fernando Perez <fperez@colorado.edu>
2558 2005-01-17 Fernando Perez <fperez@colorado.edu>
2551
2559
2552 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2560 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2553 instances with no __init__. After a crash report by Norbert Nemec
2561 instances with no __init__. After a crash report by Norbert Nemec
2554 <Norbert-AT-nemec-online.de>.
2562 <Norbert-AT-nemec-online.de>.
2555
2563
2556 2005-01-14 Fernando Perez <fperez@colorado.edu>
2564 2005-01-14 Fernando Perez <fperez@colorado.edu>
2557
2565
2558 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2566 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2559 names for verbose exceptions, when multiple dotted names and the
2567 names for verbose exceptions, when multiple dotted names and the
2560 'parent' object were present on the same line.
2568 'parent' object were present on the same line.
2561
2569
2562 2005-01-11 Fernando Perez <fperez@colorado.edu>
2570 2005-01-11 Fernando Perez <fperez@colorado.edu>
2563
2571
2564 * IPython/genutils.py (flag_calls): new utility to trap and flag
2572 * IPython/genutils.py (flag_calls): new utility to trap and flag
2565 calls in functions. I need it to clean up matplotlib support.
2573 calls in functions. I need it to clean up matplotlib support.
2566 Also removed some deprecated code in genutils.
2574 Also removed some deprecated code in genutils.
2567
2575
2568 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2576 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2569 that matplotlib scripts called with %run, which don't call show()
2577 that matplotlib scripts called with %run, which don't call show()
2570 themselves, still have their plotting windows open.
2578 themselves, still have their plotting windows open.
2571
2579
2572 2005-01-05 Fernando Perez <fperez@colorado.edu>
2580 2005-01-05 Fernando Perez <fperez@colorado.edu>
2573
2581
2574 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2582 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2575 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2583 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2576
2584
2577 2004-12-19 Fernando Perez <fperez@colorado.edu>
2585 2004-12-19 Fernando Perez <fperez@colorado.edu>
2578
2586
2579 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2587 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2580 parent_runcode, which was an eyesore. The same result can be
2588 parent_runcode, which was an eyesore. The same result can be
2581 obtained with Python's regular superclass mechanisms.
2589 obtained with Python's regular superclass mechanisms.
2582
2590
2583 2004-12-17 Fernando Perez <fperez@colorado.edu>
2591 2004-12-17 Fernando Perez <fperez@colorado.edu>
2584
2592
2585 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2593 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2586 reported by Prabhu.
2594 reported by Prabhu.
2587 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2595 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2588 sys.stderr) instead of explicitly calling sys.stderr. This helps
2596 sys.stderr) instead of explicitly calling sys.stderr. This helps
2589 maintain our I/O abstractions clean, for future GUI embeddings.
2597 maintain our I/O abstractions clean, for future GUI embeddings.
2590
2598
2591 * IPython/genutils.py (info): added new utility for sys.stderr
2599 * IPython/genutils.py (info): added new utility for sys.stderr
2592 unified info message handling (thin wrapper around warn()).
2600 unified info message handling (thin wrapper around warn()).
2593
2601
2594 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2602 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2595 composite (dotted) names on verbose exceptions.
2603 composite (dotted) names on verbose exceptions.
2596 (VerboseTB.nullrepr): harden against another kind of errors which
2604 (VerboseTB.nullrepr): harden against another kind of errors which
2597 Python's inspect module can trigger, and which were crashing
2605 Python's inspect module can trigger, and which were crashing
2598 IPython. Thanks to a report by Marco Lombardi
2606 IPython. Thanks to a report by Marco Lombardi
2599 <mlombard-AT-ma010192.hq.eso.org>.
2607 <mlombard-AT-ma010192.hq.eso.org>.
2600
2608
2601 2004-12-13 *** Released version 0.6.6
2609 2004-12-13 *** Released version 0.6.6
2602
2610
2603 2004-12-12 Fernando Perez <fperez@colorado.edu>
2611 2004-12-12 Fernando Perez <fperez@colorado.edu>
2604
2612
2605 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2613 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2606 generated by pygtk upon initialization if it was built without
2614 generated by pygtk upon initialization if it was built without
2607 threads (for matplotlib users). After a crash reported by
2615 threads (for matplotlib users). After a crash reported by
2608 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2616 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2609
2617
2610 * IPython/ipmaker.py (make_IPython): fix small bug in the
2618 * IPython/ipmaker.py (make_IPython): fix small bug in the
2611 import_some parameter for multiple imports.
2619 import_some parameter for multiple imports.
2612
2620
2613 * IPython/iplib.py (ipmagic): simplified the interface of
2621 * IPython/iplib.py (ipmagic): simplified the interface of
2614 ipmagic() to take a single string argument, just as it would be
2622 ipmagic() to take a single string argument, just as it would be
2615 typed at the IPython cmd line.
2623 typed at the IPython cmd line.
2616 (ipalias): Added new ipalias() with an interface identical to
2624 (ipalias): Added new ipalias() with an interface identical to
2617 ipmagic(). This completes exposing a pure python interface to the
2625 ipmagic(). This completes exposing a pure python interface to the
2618 alias and magic system, which can be used in loops or more complex
2626 alias and magic system, which can be used in loops or more complex
2619 code where IPython's automatic line mangling is not active.
2627 code where IPython's automatic line mangling is not active.
2620
2628
2621 * IPython/genutils.py (timing): changed interface of timing to
2629 * IPython/genutils.py (timing): changed interface of timing to
2622 simply run code once, which is the most common case. timings()
2630 simply run code once, which is the most common case. timings()
2623 remains unchanged, for the cases where you want multiple runs.
2631 remains unchanged, for the cases where you want multiple runs.
2624
2632
2625 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2633 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2626 bug where Python2.2 crashes with exec'ing code which does not end
2634 bug where Python2.2 crashes with exec'ing code which does not end
2627 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2635 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2628 before.
2636 before.
2629
2637
2630 2004-12-10 Fernando Perez <fperez@colorado.edu>
2638 2004-12-10 Fernando Perez <fperez@colorado.edu>
2631
2639
2632 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2640 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2633 -t to -T, to accomodate the new -t flag in %run (the %run and
2641 -t to -T, to accomodate the new -t flag in %run (the %run and
2634 %prun options are kind of intermixed, and it's not easy to change
2642 %prun options are kind of intermixed, and it's not easy to change
2635 this with the limitations of python's getopt).
2643 this with the limitations of python's getopt).
2636
2644
2637 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2645 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2638 the execution of scripts. It's not as fine-tuned as timeit.py,
2646 the execution of scripts. It's not as fine-tuned as timeit.py,
2639 but it works from inside ipython (and under 2.2, which lacks
2647 but it works from inside ipython (and under 2.2, which lacks
2640 timeit.py). Optionally a number of runs > 1 can be given for
2648 timeit.py). Optionally a number of runs > 1 can be given for
2641 timing very short-running code.
2649 timing very short-running code.
2642
2650
2643 * IPython/genutils.py (uniq_stable): new routine which returns a
2651 * IPython/genutils.py (uniq_stable): new routine which returns a
2644 list of unique elements in any iterable, but in stable order of
2652 list of unique elements in any iterable, but in stable order of
2645 appearance. I needed this for the ultraTB fixes, and it's a handy
2653 appearance. I needed this for the ultraTB fixes, and it's a handy
2646 utility.
2654 utility.
2647
2655
2648 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2656 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2649 dotted names in Verbose exceptions. This had been broken since
2657 dotted names in Verbose exceptions. This had been broken since
2650 the very start, now x.y will properly be printed in a Verbose
2658 the very start, now x.y will properly be printed in a Verbose
2651 traceback, instead of x being shown and y appearing always as an
2659 traceback, instead of x being shown and y appearing always as an
2652 'undefined global'. Getting this to work was a bit tricky,
2660 'undefined global'. Getting this to work was a bit tricky,
2653 because by default python tokenizers are stateless. Saved by
2661 because by default python tokenizers are stateless. Saved by
2654 python's ability to easily add a bit of state to an arbitrary
2662 python's ability to easily add a bit of state to an arbitrary
2655 function (without needing to build a full-blown callable object).
2663 function (without needing to build a full-blown callable object).
2656
2664
2657 Also big cleanup of this code, which had horrendous runtime
2665 Also big cleanup of this code, which had horrendous runtime
2658 lookups of zillions of attributes for colorization. Moved all
2666 lookups of zillions of attributes for colorization. Moved all
2659 this code into a few templates, which make it cleaner and quicker.
2667 this code into a few templates, which make it cleaner and quicker.
2660
2668
2661 Printout quality was also improved for Verbose exceptions: one
2669 Printout quality was also improved for Verbose exceptions: one
2662 variable per line, and memory addresses are printed (this can be
2670 variable per line, and memory addresses are printed (this can be
2663 quite handy in nasty debugging situations, which is what Verbose
2671 quite handy in nasty debugging situations, which is what Verbose
2664 is for).
2672 is for).
2665
2673
2666 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2674 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2667 the command line as scripts to be loaded by embedded instances.
2675 the command line as scripts to be loaded by embedded instances.
2668 Doing so has the potential for an infinite recursion if there are
2676 Doing so has the potential for an infinite recursion if there are
2669 exceptions thrown in the process. This fixes a strange crash
2677 exceptions thrown in the process. This fixes a strange crash
2670 reported by Philippe MULLER <muller-AT-irit.fr>.
2678 reported by Philippe MULLER <muller-AT-irit.fr>.
2671
2679
2672 2004-12-09 Fernando Perez <fperez@colorado.edu>
2680 2004-12-09 Fernando Perez <fperez@colorado.edu>
2673
2681
2674 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2682 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2675 to reflect new names in matplotlib, which now expose the
2683 to reflect new names in matplotlib, which now expose the
2676 matlab-compatible interface via a pylab module instead of the
2684 matlab-compatible interface via a pylab module instead of the
2677 'matlab' name. The new code is backwards compatible, so users of
2685 'matlab' name. The new code is backwards compatible, so users of
2678 all matplotlib versions are OK. Patch by J. Hunter.
2686 all matplotlib versions are OK. Patch by J. Hunter.
2679
2687
2680 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2688 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2681 of __init__ docstrings for instances (class docstrings are already
2689 of __init__ docstrings for instances (class docstrings are already
2682 automatically printed). Instances with customized docstrings
2690 automatically printed). Instances with customized docstrings
2683 (indep. of the class) are also recognized and all 3 separate
2691 (indep. of the class) are also recognized and all 3 separate
2684 docstrings are printed (instance, class, constructor). After some
2692 docstrings are printed (instance, class, constructor). After some
2685 comments/suggestions by J. Hunter.
2693 comments/suggestions by J. Hunter.
2686
2694
2687 2004-12-05 Fernando Perez <fperez@colorado.edu>
2695 2004-12-05 Fernando Perez <fperez@colorado.edu>
2688
2696
2689 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2697 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2690 warnings when tab-completion fails and triggers an exception.
2698 warnings when tab-completion fails and triggers an exception.
2691
2699
2692 2004-12-03 Fernando Perez <fperez@colorado.edu>
2700 2004-12-03 Fernando Perez <fperez@colorado.edu>
2693
2701
2694 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2702 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2695 be triggered when using 'run -p'. An incorrect option flag was
2703 be triggered when using 'run -p'. An incorrect option flag was
2696 being set ('d' instead of 'D').
2704 being set ('d' instead of 'D').
2697 (manpage): fix missing escaped \- sign.
2705 (manpage): fix missing escaped \- sign.
2698
2706
2699 2004-11-30 *** Released version 0.6.5
2707 2004-11-30 *** Released version 0.6.5
2700
2708
2701 2004-11-30 Fernando Perez <fperez@colorado.edu>
2709 2004-11-30 Fernando Perez <fperez@colorado.edu>
2702
2710
2703 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2711 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2704 setting with -d option.
2712 setting with -d option.
2705
2713
2706 * setup.py (docfiles): Fix problem where the doc glob I was using
2714 * setup.py (docfiles): Fix problem where the doc glob I was using
2707 was COMPLETELY BROKEN. It was giving the right files by pure
2715 was COMPLETELY BROKEN. It was giving the right files by pure
2708 accident, but failed once I tried to include ipython.el. Note:
2716 accident, but failed once I tried to include ipython.el. Note:
2709 glob() does NOT allow you to do exclusion on multiple endings!
2717 glob() does NOT allow you to do exclusion on multiple endings!
2710
2718
2711 2004-11-29 Fernando Perez <fperez@colorado.edu>
2719 2004-11-29 Fernando Perez <fperez@colorado.edu>
2712
2720
2713 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2721 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2714 the manpage as the source. Better formatting & consistency.
2722 the manpage as the source. Better formatting & consistency.
2715
2723
2716 * IPython/Magic.py (magic_run): Added new -d option, to run
2724 * IPython/Magic.py (magic_run): Added new -d option, to run
2717 scripts under the control of the python pdb debugger. Note that
2725 scripts under the control of the python pdb debugger. Note that
2718 this required changing the %prun option -d to -D, to avoid a clash
2726 this required changing the %prun option -d to -D, to avoid a clash
2719 (since %run must pass options to %prun, and getopt is too dumb to
2727 (since %run must pass options to %prun, and getopt is too dumb to
2720 handle options with string values with embedded spaces). Thanks
2728 handle options with string values with embedded spaces). Thanks
2721 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2729 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2722 (magic_who_ls): added type matching to %who and %whos, so that one
2730 (magic_who_ls): added type matching to %who and %whos, so that one
2723 can filter their output to only include variables of certain
2731 can filter their output to only include variables of certain
2724 types. Another suggestion by Matthew.
2732 types. Another suggestion by Matthew.
2725 (magic_whos): Added memory summaries in kb and Mb for arrays.
2733 (magic_whos): Added memory summaries in kb and Mb for arrays.
2726 (magic_who): Improve formatting (break lines every 9 vars).
2734 (magic_who): Improve formatting (break lines every 9 vars).
2727
2735
2728 2004-11-28 Fernando Perez <fperez@colorado.edu>
2736 2004-11-28 Fernando Perez <fperez@colorado.edu>
2729
2737
2730 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2738 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2731 cache when empty lines were present.
2739 cache when empty lines were present.
2732
2740
2733 2004-11-24 Fernando Perez <fperez@colorado.edu>
2741 2004-11-24 Fernando Perez <fperez@colorado.edu>
2734
2742
2735 * IPython/usage.py (__doc__): document the re-activated threading
2743 * IPython/usage.py (__doc__): document the re-activated threading
2736 options for WX and GTK.
2744 options for WX and GTK.
2737
2745
2738 2004-11-23 Fernando Perez <fperez@colorado.edu>
2746 2004-11-23 Fernando Perez <fperez@colorado.edu>
2739
2747
2740 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2748 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2741 the -wthread and -gthread options, along with a new -tk one to try
2749 the -wthread and -gthread options, along with a new -tk one to try
2742 and coordinate Tk threading with wx/gtk. The tk support is very
2750 and coordinate Tk threading with wx/gtk. The tk support is very
2743 platform dependent, since it seems to require Tcl and Tk to be
2751 platform dependent, since it seems to require Tcl and Tk to be
2744 built with threads (Fedora1/2 appears NOT to have it, but in
2752 built with threads (Fedora1/2 appears NOT to have it, but in
2745 Prabhu's Debian boxes it works OK). But even with some Tk
2753 Prabhu's Debian boxes it works OK). But even with some Tk
2746 limitations, this is a great improvement.
2754 limitations, this is a great improvement.
2747
2755
2748 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2756 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2749 info in user prompts. Patch by Prabhu.
2757 info in user prompts. Patch by Prabhu.
2750
2758
2751 2004-11-18 Fernando Perez <fperez@colorado.edu>
2759 2004-11-18 Fernando Perez <fperez@colorado.edu>
2752
2760
2753 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2761 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2754 EOFErrors and bail, to avoid infinite loops if a non-terminating
2762 EOFErrors and bail, to avoid infinite loops if a non-terminating
2755 file is fed into ipython. Patch submitted in issue 19 by user,
2763 file is fed into ipython. Patch submitted in issue 19 by user,
2756 many thanks.
2764 many thanks.
2757
2765
2758 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2766 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2759 autoquote/parens in continuation prompts, which can cause lots of
2767 autoquote/parens in continuation prompts, which can cause lots of
2760 problems. Closes roundup issue 20.
2768 problems. Closes roundup issue 20.
2761
2769
2762 2004-11-17 Fernando Perez <fperez@colorado.edu>
2770 2004-11-17 Fernando Perez <fperez@colorado.edu>
2763
2771
2764 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2772 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2765 reported as debian bug #280505. I'm not sure my local changelog
2773 reported as debian bug #280505. I'm not sure my local changelog
2766 entry has the proper debian format (Jack?).
2774 entry has the proper debian format (Jack?).
2767
2775
2768 2004-11-08 *** Released version 0.6.4
2776 2004-11-08 *** Released version 0.6.4
2769
2777
2770 2004-11-08 Fernando Perez <fperez@colorado.edu>
2778 2004-11-08 Fernando Perez <fperez@colorado.edu>
2771
2779
2772 * IPython/iplib.py (init_readline): Fix exit message for Windows
2780 * IPython/iplib.py (init_readline): Fix exit message for Windows
2773 when readline is active. Thanks to a report by Eric Jones
2781 when readline is active. Thanks to a report by Eric Jones
2774 <eric-AT-enthought.com>.
2782 <eric-AT-enthought.com>.
2775
2783
2776 2004-11-07 Fernando Perez <fperez@colorado.edu>
2784 2004-11-07 Fernando Perez <fperez@colorado.edu>
2777
2785
2778 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2786 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2779 sometimes seen by win2k/cygwin users.
2787 sometimes seen by win2k/cygwin users.
2780
2788
2781 2004-11-06 Fernando Perez <fperez@colorado.edu>
2789 2004-11-06 Fernando Perez <fperez@colorado.edu>
2782
2790
2783 * IPython/iplib.py (interact): Change the handling of %Exit from
2791 * IPython/iplib.py (interact): Change the handling of %Exit from
2784 trying to propagate a SystemExit to an internal ipython flag.
2792 trying to propagate a SystemExit to an internal ipython flag.
2785 This is less elegant than using Python's exception mechanism, but
2793 This is less elegant than using Python's exception mechanism, but
2786 I can't get that to work reliably with threads, so under -pylab
2794 I can't get that to work reliably with threads, so under -pylab
2787 %Exit was hanging IPython. Cross-thread exception handling is
2795 %Exit was hanging IPython. Cross-thread exception handling is
2788 really a bitch. Thaks to a bug report by Stephen Walton
2796 really a bitch. Thaks to a bug report by Stephen Walton
2789 <stephen.walton-AT-csun.edu>.
2797 <stephen.walton-AT-csun.edu>.
2790
2798
2791 2004-11-04 Fernando Perez <fperez@colorado.edu>
2799 2004-11-04 Fernando Perez <fperez@colorado.edu>
2792
2800
2793 * IPython/iplib.py (raw_input_original): store a pointer to the
2801 * IPython/iplib.py (raw_input_original): store a pointer to the
2794 true raw_input to harden against code which can modify it
2802 true raw_input to harden against code which can modify it
2795 (wx.py.PyShell does this and would otherwise crash ipython).
2803 (wx.py.PyShell does this and would otherwise crash ipython).
2796 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2804 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2797
2805
2798 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2806 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2799 Ctrl-C problem, which does not mess up the input line.
2807 Ctrl-C problem, which does not mess up the input line.
2800
2808
2801 2004-11-03 Fernando Perez <fperez@colorado.edu>
2809 2004-11-03 Fernando Perez <fperez@colorado.edu>
2802
2810
2803 * IPython/Release.py: Changed licensing to BSD, in all files.
2811 * IPython/Release.py: Changed licensing to BSD, in all files.
2804 (name): lowercase name for tarball/RPM release.
2812 (name): lowercase name for tarball/RPM release.
2805
2813
2806 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2814 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2807 use throughout ipython.
2815 use throughout ipython.
2808
2816
2809 * IPython/Magic.py (Magic._ofind): Switch to using the new
2817 * IPython/Magic.py (Magic._ofind): Switch to using the new
2810 OInspect.getdoc() function.
2818 OInspect.getdoc() function.
2811
2819
2812 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2820 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2813 of the line currently being canceled via Ctrl-C. It's extremely
2821 of the line currently being canceled via Ctrl-C. It's extremely
2814 ugly, but I don't know how to do it better (the problem is one of
2822 ugly, but I don't know how to do it better (the problem is one of
2815 handling cross-thread exceptions).
2823 handling cross-thread exceptions).
2816
2824
2817 2004-10-28 Fernando Perez <fperez@colorado.edu>
2825 2004-10-28 Fernando Perez <fperez@colorado.edu>
2818
2826
2819 * IPython/Shell.py (signal_handler): add signal handlers to trap
2827 * IPython/Shell.py (signal_handler): add signal handlers to trap
2820 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2828 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2821 report by Francesc Alted.
2829 report by Francesc Alted.
2822
2830
2823 2004-10-21 Fernando Perez <fperez@colorado.edu>
2831 2004-10-21 Fernando Perez <fperez@colorado.edu>
2824
2832
2825 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2833 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2826 to % for pysh syntax extensions.
2834 to % for pysh syntax extensions.
2827
2835
2828 2004-10-09 Fernando Perez <fperez@colorado.edu>
2836 2004-10-09 Fernando Perez <fperez@colorado.edu>
2829
2837
2830 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2838 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2831 arrays to print a more useful summary, without calling str(arr).
2839 arrays to print a more useful summary, without calling str(arr).
2832 This avoids the problem of extremely lengthy computations which
2840 This avoids the problem of extremely lengthy computations which
2833 occur if arr is large, and appear to the user as a system lockup
2841 occur if arr is large, and appear to the user as a system lockup
2834 with 100% cpu activity. After a suggestion by Kristian Sandberg
2842 with 100% cpu activity. After a suggestion by Kristian Sandberg
2835 <Kristian.Sandberg@colorado.edu>.
2843 <Kristian.Sandberg@colorado.edu>.
2836 (Magic.__init__): fix bug in global magic escapes not being
2844 (Magic.__init__): fix bug in global magic escapes not being
2837 correctly set.
2845 correctly set.
2838
2846
2839 2004-10-08 Fernando Perez <fperez@colorado.edu>
2847 2004-10-08 Fernando Perez <fperez@colorado.edu>
2840
2848
2841 * IPython/Magic.py (__license__): change to absolute imports of
2849 * IPython/Magic.py (__license__): change to absolute imports of
2842 ipython's own internal packages, to start adapting to the absolute
2850 ipython's own internal packages, to start adapting to the absolute
2843 import requirement of PEP-328.
2851 import requirement of PEP-328.
2844
2852
2845 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2853 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2846 files, and standardize author/license marks through the Release
2854 files, and standardize author/license marks through the Release
2847 module instead of having per/file stuff (except for files with
2855 module instead of having per/file stuff (except for files with
2848 particular licenses, like the MIT/PSF-licensed codes).
2856 particular licenses, like the MIT/PSF-licensed codes).
2849
2857
2850 * IPython/Debugger.py: remove dead code for python 2.1
2858 * IPython/Debugger.py: remove dead code for python 2.1
2851
2859
2852 2004-10-04 Fernando Perez <fperez@colorado.edu>
2860 2004-10-04 Fernando Perez <fperez@colorado.edu>
2853
2861
2854 * IPython/iplib.py (ipmagic): New function for accessing magics
2862 * IPython/iplib.py (ipmagic): New function for accessing magics
2855 via a normal python function call.
2863 via a normal python function call.
2856
2864
2857 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2865 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2858 from '@' to '%', to accomodate the new @decorator syntax of python
2866 from '@' to '%', to accomodate the new @decorator syntax of python
2859 2.4.
2867 2.4.
2860
2868
2861 2004-09-29 Fernando Perez <fperez@colorado.edu>
2869 2004-09-29 Fernando Perez <fperez@colorado.edu>
2862
2870
2863 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2871 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2864 matplotlib.use to prevent running scripts which try to switch
2872 matplotlib.use to prevent running scripts which try to switch
2865 interactive backends from within ipython. This will just crash
2873 interactive backends from within ipython. This will just crash
2866 the python interpreter, so we can't allow it (but a detailed error
2874 the python interpreter, so we can't allow it (but a detailed error
2867 is given to the user).
2875 is given to the user).
2868
2876
2869 2004-09-28 Fernando Perez <fperez@colorado.edu>
2877 2004-09-28 Fernando Perez <fperez@colorado.edu>
2870
2878
2871 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2879 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2872 matplotlib-related fixes so that using @run with non-matplotlib
2880 matplotlib-related fixes so that using @run with non-matplotlib
2873 scripts doesn't pop up spurious plot windows. This requires
2881 scripts doesn't pop up spurious plot windows. This requires
2874 matplotlib >= 0.63, where I had to make some changes as well.
2882 matplotlib >= 0.63, where I had to make some changes as well.
2875
2883
2876 * IPython/ipmaker.py (make_IPython): update version requirement to
2884 * IPython/ipmaker.py (make_IPython): update version requirement to
2877 python 2.2.
2885 python 2.2.
2878
2886
2879 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2887 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2880 banner arg for embedded customization.
2888 banner arg for embedded customization.
2881
2889
2882 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2890 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2883 explicit uses of __IP as the IPython's instance name. Now things
2891 explicit uses of __IP as the IPython's instance name. Now things
2884 are properly handled via the shell.name value. The actual code
2892 are properly handled via the shell.name value. The actual code
2885 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2893 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2886 is much better than before. I'll clean things completely when the
2894 is much better than before. I'll clean things completely when the
2887 magic stuff gets a real overhaul.
2895 magic stuff gets a real overhaul.
2888
2896
2889 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2897 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2890 minor changes to debian dir.
2898 minor changes to debian dir.
2891
2899
2892 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2900 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2893 pointer to the shell itself in the interactive namespace even when
2901 pointer to the shell itself in the interactive namespace even when
2894 a user-supplied dict is provided. This is needed for embedding
2902 a user-supplied dict is provided. This is needed for embedding
2895 purposes (found by tests with Michel Sanner).
2903 purposes (found by tests with Michel Sanner).
2896
2904
2897 2004-09-27 Fernando Perez <fperez@colorado.edu>
2905 2004-09-27 Fernando Perez <fperez@colorado.edu>
2898
2906
2899 * IPython/UserConfig/ipythonrc: remove []{} from
2907 * IPython/UserConfig/ipythonrc: remove []{} from
2900 readline_remove_delims, so that things like [modname.<TAB> do
2908 readline_remove_delims, so that things like [modname.<TAB> do
2901 proper completion. This disables [].TAB, but that's a less common
2909 proper completion. This disables [].TAB, but that's a less common
2902 case than module names in list comprehensions, for example.
2910 case than module names in list comprehensions, for example.
2903 Thanks to a report by Andrea Riciputi.
2911 Thanks to a report by Andrea Riciputi.
2904
2912
2905 2004-09-09 Fernando Perez <fperez@colorado.edu>
2913 2004-09-09 Fernando Perez <fperez@colorado.edu>
2906
2914
2907 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2915 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2908 blocking problems in win32 and osx. Fix by John.
2916 blocking problems in win32 and osx. Fix by John.
2909
2917
2910 2004-09-08 Fernando Perez <fperez@colorado.edu>
2918 2004-09-08 Fernando Perez <fperez@colorado.edu>
2911
2919
2912 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2920 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2913 for Win32 and OSX. Fix by John Hunter.
2921 for Win32 and OSX. Fix by John Hunter.
2914
2922
2915 2004-08-30 *** Released version 0.6.3
2923 2004-08-30 *** Released version 0.6.3
2916
2924
2917 2004-08-30 Fernando Perez <fperez@colorado.edu>
2925 2004-08-30 Fernando Perez <fperez@colorado.edu>
2918
2926
2919 * setup.py (isfile): Add manpages to list of dependent files to be
2927 * setup.py (isfile): Add manpages to list of dependent files to be
2920 updated.
2928 updated.
2921
2929
2922 2004-08-27 Fernando Perez <fperez@colorado.edu>
2930 2004-08-27 Fernando Perez <fperez@colorado.edu>
2923
2931
2924 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2932 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2925 for now. They don't really work with standalone WX/GTK code
2933 for now. They don't really work with standalone WX/GTK code
2926 (though matplotlib IS working fine with both of those backends).
2934 (though matplotlib IS working fine with both of those backends).
2927 This will neeed much more testing. I disabled most things with
2935 This will neeed much more testing. I disabled most things with
2928 comments, so turning it back on later should be pretty easy.
2936 comments, so turning it back on later should be pretty easy.
2929
2937
2930 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2938 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2931 autocalling of expressions like r'foo', by modifying the line
2939 autocalling of expressions like r'foo', by modifying the line
2932 split regexp. Closes
2940 split regexp. Closes
2933 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2941 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2934 Riley <ipythonbugs-AT-sabi.net>.
2942 Riley <ipythonbugs-AT-sabi.net>.
2935 (InteractiveShell.mainloop): honor --nobanner with banner
2943 (InteractiveShell.mainloop): honor --nobanner with banner
2936 extensions.
2944 extensions.
2937
2945
2938 * IPython/Shell.py: Significant refactoring of all classes, so
2946 * IPython/Shell.py: Significant refactoring of all classes, so
2939 that we can really support ALL matplotlib backends and threading
2947 that we can really support ALL matplotlib backends and threading
2940 models (John spotted a bug with Tk which required this). Now we
2948 models (John spotted a bug with Tk which required this). Now we
2941 should support single-threaded, WX-threads and GTK-threads, both
2949 should support single-threaded, WX-threads and GTK-threads, both
2942 for generic code and for matplotlib.
2950 for generic code and for matplotlib.
2943
2951
2944 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2952 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2945 -pylab, to simplify things for users. Will also remove the pylab
2953 -pylab, to simplify things for users. Will also remove the pylab
2946 profile, since now all of matplotlib configuration is directly
2954 profile, since now all of matplotlib configuration is directly
2947 handled here. This also reduces startup time.
2955 handled here. This also reduces startup time.
2948
2956
2949 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2957 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2950 shell wasn't being correctly called. Also in IPShellWX.
2958 shell wasn't being correctly called. Also in IPShellWX.
2951
2959
2952 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2960 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2953 fine-tune banner.
2961 fine-tune banner.
2954
2962
2955 * IPython/numutils.py (spike): Deprecate these spike functions,
2963 * IPython/numutils.py (spike): Deprecate these spike functions,
2956 delete (long deprecated) gnuplot_exec handler.
2964 delete (long deprecated) gnuplot_exec handler.
2957
2965
2958 2004-08-26 Fernando Perez <fperez@colorado.edu>
2966 2004-08-26 Fernando Perez <fperez@colorado.edu>
2959
2967
2960 * ipython.1: Update for threading options, plus some others which
2968 * ipython.1: Update for threading options, plus some others which
2961 were missing.
2969 were missing.
2962
2970
2963 * IPython/ipmaker.py (__call__): Added -wthread option for
2971 * IPython/ipmaker.py (__call__): Added -wthread option for
2964 wxpython thread handling. Make sure threading options are only
2972 wxpython thread handling. Make sure threading options are only
2965 valid at the command line.
2973 valid at the command line.
2966
2974
2967 * scripts/ipython: moved shell selection into a factory function
2975 * scripts/ipython: moved shell selection into a factory function
2968 in Shell.py, to keep the starter script to a minimum.
2976 in Shell.py, to keep the starter script to a minimum.
2969
2977
2970 2004-08-25 Fernando Perez <fperez@colorado.edu>
2978 2004-08-25 Fernando Perez <fperez@colorado.edu>
2971
2979
2972 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2980 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2973 John. Along with some recent changes he made to matplotlib, the
2981 John. Along with some recent changes he made to matplotlib, the
2974 next versions of both systems should work very well together.
2982 next versions of both systems should work very well together.
2975
2983
2976 2004-08-24 Fernando Perez <fperez@colorado.edu>
2984 2004-08-24 Fernando Perez <fperez@colorado.edu>
2977
2985
2978 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2986 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2979 tried to switch the profiling to using hotshot, but I'm getting
2987 tried to switch the profiling to using hotshot, but I'm getting
2980 strange errors from prof.runctx() there. I may be misreading the
2988 strange errors from prof.runctx() there. I may be misreading the
2981 docs, but it looks weird. For now the profiling code will
2989 docs, but it looks weird. For now the profiling code will
2982 continue to use the standard profiler.
2990 continue to use the standard profiler.
2983
2991
2984 2004-08-23 Fernando Perez <fperez@colorado.edu>
2992 2004-08-23 Fernando Perez <fperez@colorado.edu>
2985
2993
2986 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2994 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2987 threaded shell, by John Hunter. It's not quite ready yet, but
2995 threaded shell, by John Hunter. It's not quite ready yet, but
2988 close.
2996 close.
2989
2997
2990 2004-08-22 Fernando Perez <fperez@colorado.edu>
2998 2004-08-22 Fernando Perez <fperez@colorado.edu>
2991
2999
2992 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3000 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2993 in Magic and ultraTB.
3001 in Magic and ultraTB.
2994
3002
2995 * ipython.1: document threading options in manpage.
3003 * ipython.1: document threading options in manpage.
2996
3004
2997 * scripts/ipython: Changed name of -thread option to -gthread,
3005 * scripts/ipython: Changed name of -thread option to -gthread,
2998 since this is GTK specific. I want to leave the door open for a
3006 since this is GTK specific. I want to leave the door open for a
2999 -wthread option for WX, which will most likely be necessary. This
3007 -wthread option for WX, which will most likely be necessary. This
3000 change affects usage and ipmaker as well.
3008 change affects usage and ipmaker as well.
3001
3009
3002 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3010 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3003 handle the matplotlib shell issues. Code by John Hunter
3011 handle the matplotlib shell issues. Code by John Hunter
3004 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3012 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3005 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3013 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3006 broken (and disabled for end users) for now, but it puts the
3014 broken (and disabled for end users) for now, but it puts the
3007 infrastructure in place.
3015 infrastructure in place.
3008
3016
3009 2004-08-21 Fernando Perez <fperez@colorado.edu>
3017 2004-08-21 Fernando Perez <fperez@colorado.edu>
3010
3018
3011 * ipythonrc-pylab: Add matplotlib support.
3019 * ipythonrc-pylab: Add matplotlib support.
3012
3020
3013 * matplotlib_config.py: new files for matplotlib support, part of
3021 * matplotlib_config.py: new files for matplotlib support, part of
3014 the pylab profile.
3022 the pylab profile.
3015
3023
3016 * IPython/usage.py (__doc__): documented the threading options.
3024 * IPython/usage.py (__doc__): documented the threading options.
3017
3025
3018 2004-08-20 Fernando Perez <fperez@colorado.edu>
3026 2004-08-20 Fernando Perez <fperez@colorado.edu>
3019
3027
3020 * ipython: Modified the main calling routine to handle the -thread
3028 * ipython: Modified the main calling routine to handle the -thread
3021 and -mpthread options. This needs to be done as a top-level hack,
3029 and -mpthread options. This needs to be done as a top-level hack,
3022 because it determines which class to instantiate for IPython
3030 because it determines which class to instantiate for IPython
3023 itself.
3031 itself.
3024
3032
3025 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3033 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3026 classes to support multithreaded GTK operation without blocking,
3034 classes to support multithreaded GTK operation without blocking,
3027 and matplotlib with all backends. This is a lot of still very
3035 and matplotlib with all backends. This is a lot of still very
3028 experimental code, and threads are tricky. So it may still have a
3036 experimental code, and threads are tricky. So it may still have a
3029 few rough edges... This code owes a lot to
3037 few rough edges... This code owes a lot to
3030 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3038 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3031 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3039 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3032 to John Hunter for all the matplotlib work.
3040 to John Hunter for all the matplotlib work.
3033
3041
3034 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3042 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3035 options for gtk thread and matplotlib support.
3043 options for gtk thread and matplotlib support.
3036
3044
3037 2004-08-16 Fernando Perez <fperez@colorado.edu>
3045 2004-08-16 Fernando Perez <fperez@colorado.edu>
3038
3046
3039 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3047 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3040 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3048 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3041 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3049 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3042
3050
3043 2004-08-11 Fernando Perez <fperez@colorado.edu>
3051 2004-08-11 Fernando Perez <fperez@colorado.edu>
3044
3052
3045 * setup.py (isfile): Fix build so documentation gets updated for
3053 * setup.py (isfile): Fix build so documentation gets updated for
3046 rpms (it was only done for .tgz builds).
3054 rpms (it was only done for .tgz builds).
3047
3055
3048 2004-08-10 Fernando Perez <fperez@colorado.edu>
3056 2004-08-10 Fernando Perez <fperez@colorado.edu>
3049
3057
3050 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3058 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3051
3059
3052 * iplib.py : Silence syntax error exceptions in tab-completion.
3060 * iplib.py : Silence syntax error exceptions in tab-completion.
3053
3061
3054 2004-08-05 Fernando Perez <fperez@colorado.edu>
3062 2004-08-05 Fernando Perez <fperez@colorado.edu>
3055
3063
3056 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3064 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3057 'color off' mark for continuation prompts. This was causing long
3065 'color off' mark for continuation prompts. This was causing long
3058 continuation lines to mis-wrap.
3066 continuation lines to mis-wrap.
3059
3067
3060 2004-08-01 Fernando Perez <fperez@colorado.edu>
3068 2004-08-01 Fernando Perez <fperez@colorado.edu>
3061
3069
3062 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3070 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3063 for building ipython to be a parameter. All this is necessary
3071 for building ipython to be a parameter. All this is necessary
3064 right now to have a multithreaded version, but this insane
3072 right now to have a multithreaded version, but this insane
3065 non-design will be cleaned up soon. For now, it's a hack that
3073 non-design will be cleaned up soon. For now, it's a hack that
3066 works.
3074 works.
3067
3075
3068 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3076 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3069 args in various places. No bugs so far, but it's a dangerous
3077 args in various places. No bugs so far, but it's a dangerous
3070 practice.
3078 practice.
3071
3079
3072 2004-07-31 Fernando Perez <fperez@colorado.edu>
3080 2004-07-31 Fernando Perez <fperez@colorado.edu>
3073
3081
3074 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3082 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3075 fix completion of files with dots in their names under most
3083 fix completion of files with dots in their names under most
3076 profiles (pysh was OK because the completion order is different).
3084 profiles (pysh was OK because the completion order is different).
3077
3085
3078 2004-07-27 Fernando Perez <fperez@colorado.edu>
3086 2004-07-27 Fernando Perez <fperez@colorado.edu>
3079
3087
3080 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3088 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3081 keywords manually, b/c the one in keyword.py was removed in python
3089 keywords manually, b/c the one in keyword.py was removed in python
3082 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3090 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3083 This is NOT a bug under python 2.3 and earlier.
3091 This is NOT a bug under python 2.3 and earlier.
3084
3092
3085 2004-07-26 Fernando Perez <fperez@colorado.edu>
3093 2004-07-26 Fernando Perez <fperez@colorado.edu>
3086
3094
3087 * IPython/ultraTB.py (VerboseTB.text): Add another
3095 * IPython/ultraTB.py (VerboseTB.text): Add another
3088 linecache.checkcache() call to try to prevent inspect.py from
3096 linecache.checkcache() call to try to prevent inspect.py from
3089 crashing under python 2.3. I think this fixes
3097 crashing under python 2.3. I think this fixes
3090 http://www.scipy.net/roundup/ipython/issue17.
3098 http://www.scipy.net/roundup/ipython/issue17.
3091
3099
3092 2004-07-26 *** Released version 0.6.2
3100 2004-07-26 *** Released version 0.6.2
3093
3101
3094 2004-07-26 Fernando Perez <fperez@colorado.edu>
3102 2004-07-26 Fernando Perez <fperez@colorado.edu>
3095
3103
3096 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3104 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3097 fail for any number.
3105 fail for any number.
3098 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3106 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3099 empty bookmarks.
3107 empty bookmarks.
3100
3108
3101 2004-07-26 *** Released version 0.6.1
3109 2004-07-26 *** Released version 0.6.1
3102
3110
3103 2004-07-26 Fernando Perez <fperez@colorado.edu>
3111 2004-07-26 Fernando Perez <fperez@colorado.edu>
3104
3112
3105 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3113 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3106
3114
3107 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3115 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3108 escaping '()[]{}' in filenames.
3116 escaping '()[]{}' in filenames.
3109
3117
3110 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3118 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3111 Python 2.2 users who lack a proper shlex.split.
3119 Python 2.2 users who lack a proper shlex.split.
3112
3120
3113 2004-07-19 Fernando Perez <fperez@colorado.edu>
3121 2004-07-19 Fernando Perez <fperez@colorado.edu>
3114
3122
3115 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3123 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3116 for reading readline's init file. I follow the normal chain:
3124 for reading readline's init file. I follow the normal chain:
3117 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3125 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3118 report by Mike Heeter. This closes
3126 report by Mike Heeter. This closes
3119 http://www.scipy.net/roundup/ipython/issue16.
3127 http://www.scipy.net/roundup/ipython/issue16.
3120
3128
3121 2004-07-18 Fernando Perez <fperez@colorado.edu>
3129 2004-07-18 Fernando Perez <fperez@colorado.edu>
3122
3130
3123 * IPython/iplib.py (__init__): Add better handling of '\' under
3131 * IPython/iplib.py (__init__): Add better handling of '\' under
3124 Win32 for filenames. After a patch by Ville.
3132 Win32 for filenames. After a patch by Ville.
3125
3133
3126 2004-07-17 Fernando Perez <fperez@colorado.edu>
3134 2004-07-17 Fernando Perez <fperez@colorado.edu>
3127
3135
3128 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3136 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3129 autocalling would be triggered for 'foo is bar' if foo is
3137 autocalling would be triggered for 'foo is bar' if foo is
3130 callable. I also cleaned up the autocall detection code to use a
3138 callable. I also cleaned up the autocall detection code to use a
3131 regexp, which is faster. Bug reported by Alexander Schmolck.
3139 regexp, which is faster. Bug reported by Alexander Schmolck.
3132
3140
3133 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3141 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3134 '?' in them would confuse the help system. Reported by Alex
3142 '?' in them would confuse the help system. Reported by Alex
3135 Schmolck.
3143 Schmolck.
3136
3144
3137 2004-07-16 Fernando Perez <fperez@colorado.edu>
3145 2004-07-16 Fernando Perez <fperez@colorado.edu>
3138
3146
3139 * IPython/GnuplotInteractive.py (__all__): added plot2.
3147 * IPython/GnuplotInteractive.py (__all__): added plot2.
3140
3148
3141 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3149 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3142 plotting dictionaries, lists or tuples of 1d arrays.
3150 plotting dictionaries, lists or tuples of 1d arrays.
3143
3151
3144 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3152 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3145 optimizations.
3153 optimizations.
3146
3154
3147 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3155 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3148 the information which was there from Janko's original IPP code:
3156 the information which was there from Janko's original IPP code:
3149
3157
3150 03.05.99 20:53 porto.ifm.uni-kiel.de
3158 03.05.99 20:53 porto.ifm.uni-kiel.de
3151 --Started changelog.
3159 --Started changelog.
3152 --make clear do what it say it does
3160 --make clear do what it say it does
3153 --added pretty output of lines from inputcache
3161 --added pretty output of lines from inputcache
3154 --Made Logger a mixin class, simplifies handling of switches
3162 --Made Logger a mixin class, simplifies handling of switches
3155 --Added own completer class. .string<TAB> expands to last history
3163 --Added own completer class. .string<TAB> expands to last history
3156 line which starts with string. The new expansion is also present
3164 line which starts with string. The new expansion is also present
3157 with Ctrl-r from the readline library. But this shows, who this
3165 with Ctrl-r from the readline library. But this shows, who this
3158 can be done for other cases.
3166 can be done for other cases.
3159 --Added convention that all shell functions should accept a
3167 --Added convention that all shell functions should accept a
3160 parameter_string This opens the door for different behaviour for
3168 parameter_string This opens the door for different behaviour for
3161 each function. @cd is a good example of this.
3169 each function. @cd is a good example of this.
3162
3170
3163 04.05.99 12:12 porto.ifm.uni-kiel.de
3171 04.05.99 12:12 porto.ifm.uni-kiel.de
3164 --added logfile rotation
3172 --added logfile rotation
3165 --added new mainloop method which freezes first the namespace
3173 --added new mainloop method which freezes first the namespace
3166
3174
3167 07.05.99 21:24 porto.ifm.uni-kiel.de
3175 07.05.99 21:24 porto.ifm.uni-kiel.de
3168 --added the docreader classes. Now there is a help system.
3176 --added the docreader classes. Now there is a help system.
3169 -This is only a first try. Currently it's not easy to put new
3177 -This is only a first try. Currently it's not easy to put new
3170 stuff in the indices. But this is the way to go. Info would be
3178 stuff in the indices. But this is the way to go. Info would be
3171 better, but HTML is every where and not everybody has an info
3179 better, but HTML is every where and not everybody has an info
3172 system installed and it's not so easy to change html-docs to info.
3180 system installed and it's not so easy to change html-docs to info.
3173 --added global logfile option
3181 --added global logfile option
3174 --there is now a hook for object inspection method pinfo needs to
3182 --there is now a hook for object inspection method pinfo needs to
3175 be provided for this. Can be reached by two '??'.
3183 be provided for this. Can be reached by two '??'.
3176
3184
3177 08.05.99 20:51 porto.ifm.uni-kiel.de
3185 08.05.99 20:51 porto.ifm.uni-kiel.de
3178 --added a README
3186 --added a README
3179 --bug in rc file. Something has changed so functions in the rc
3187 --bug in rc file. Something has changed so functions in the rc
3180 file need to reference the shell and not self. Not clear if it's a
3188 file need to reference the shell and not self. Not clear if it's a
3181 bug or feature.
3189 bug or feature.
3182 --changed rc file for new behavior
3190 --changed rc file for new behavior
3183
3191
3184 2004-07-15 Fernando Perez <fperez@colorado.edu>
3192 2004-07-15 Fernando Perez <fperez@colorado.edu>
3185
3193
3186 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3194 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3187 cache was falling out of sync in bizarre manners when multi-line
3195 cache was falling out of sync in bizarre manners when multi-line
3188 input was present. Minor optimizations and cleanup.
3196 input was present. Minor optimizations and cleanup.
3189
3197
3190 (Logger): Remove old Changelog info for cleanup. This is the
3198 (Logger): Remove old Changelog info for cleanup. This is the
3191 information which was there from Janko's original code:
3199 information which was there from Janko's original code:
3192
3200
3193 Changes to Logger: - made the default log filename a parameter
3201 Changes to Logger: - made the default log filename a parameter
3194
3202
3195 - put a check for lines beginning with !@? in log(). Needed
3203 - put a check for lines beginning with !@? in log(). Needed
3196 (even if the handlers properly log their lines) for mid-session
3204 (even if the handlers properly log their lines) for mid-session
3197 logging activation to work properly. Without this, lines logged
3205 logging activation to work properly. Without this, lines logged
3198 in mid session, which get read from the cache, would end up
3206 in mid session, which get read from the cache, would end up
3199 'bare' (with !@? in the open) in the log. Now they are caught
3207 'bare' (with !@? in the open) in the log. Now they are caught
3200 and prepended with a #.
3208 and prepended with a #.
3201
3209
3202 * IPython/iplib.py (InteractiveShell.init_readline): added check
3210 * IPython/iplib.py (InteractiveShell.init_readline): added check
3203 in case MagicCompleter fails to be defined, so we don't crash.
3211 in case MagicCompleter fails to be defined, so we don't crash.
3204
3212
3205 2004-07-13 Fernando Perez <fperez@colorado.edu>
3213 2004-07-13 Fernando Perez <fperez@colorado.edu>
3206
3214
3207 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3215 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3208 of EPS if the requested filename ends in '.eps'.
3216 of EPS if the requested filename ends in '.eps'.
3209
3217
3210 2004-07-04 Fernando Perez <fperez@colorado.edu>
3218 2004-07-04 Fernando Perez <fperez@colorado.edu>
3211
3219
3212 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3220 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3213 escaping of quotes when calling the shell.
3221 escaping of quotes when calling the shell.
3214
3222
3215 2004-07-02 Fernando Perez <fperez@colorado.edu>
3223 2004-07-02 Fernando Perez <fperez@colorado.edu>
3216
3224
3217 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3225 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3218 gettext not working because we were clobbering '_'. Fixes
3226 gettext not working because we were clobbering '_'. Fixes
3219 http://www.scipy.net/roundup/ipython/issue6.
3227 http://www.scipy.net/roundup/ipython/issue6.
3220
3228
3221 2004-07-01 Fernando Perez <fperez@colorado.edu>
3229 2004-07-01 Fernando Perez <fperez@colorado.edu>
3222
3230
3223 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3231 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3224 into @cd. Patch by Ville.
3232 into @cd. Patch by Ville.
3225
3233
3226 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3234 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3227 new function to store things after ipmaker runs. Patch by Ville.
3235 new function to store things after ipmaker runs. Patch by Ville.
3228 Eventually this will go away once ipmaker is removed and the class
3236 Eventually this will go away once ipmaker is removed and the class
3229 gets cleaned up, but for now it's ok. Key functionality here is
3237 gets cleaned up, but for now it's ok. Key functionality here is
3230 the addition of the persistent storage mechanism, a dict for
3238 the addition of the persistent storage mechanism, a dict for
3231 keeping data across sessions (for now just bookmarks, but more can
3239 keeping data across sessions (for now just bookmarks, but more can
3232 be implemented later).
3240 be implemented later).
3233
3241
3234 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3242 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3235 persistent across sections. Patch by Ville, I modified it
3243 persistent across sections. Patch by Ville, I modified it
3236 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3244 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3237 added a '-l' option to list all bookmarks.
3245 added a '-l' option to list all bookmarks.
3238
3246
3239 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3247 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3240 center for cleanup. Registered with atexit.register(). I moved
3248 center for cleanup. Registered with atexit.register(). I moved
3241 here the old exit_cleanup(). After a patch by Ville.
3249 here the old exit_cleanup(). After a patch by Ville.
3242
3250
3243 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3251 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3244 characters in the hacked shlex_split for python 2.2.
3252 characters in the hacked shlex_split for python 2.2.
3245
3253
3246 * IPython/iplib.py (file_matches): more fixes to filenames with
3254 * IPython/iplib.py (file_matches): more fixes to filenames with
3247 whitespace in them. It's not perfect, but limitations in python's
3255 whitespace in them. It's not perfect, but limitations in python's
3248 readline make it impossible to go further.
3256 readline make it impossible to go further.
3249
3257
3250 2004-06-29 Fernando Perez <fperez@colorado.edu>
3258 2004-06-29 Fernando Perez <fperez@colorado.edu>
3251
3259
3252 * IPython/iplib.py (file_matches): escape whitespace correctly in
3260 * IPython/iplib.py (file_matches): escape whitespace correctly in
3253 filename completions. Bug reported by Ville.
3261 filename completions. Bug reported by Ville.
3254
3262
3255 2004-06-28 Fernando Perez <fperez@colorado.edu>
3263 2004-06-28 Fernando Perez <fperez@colorado.edu>
3256
3264
3257 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3265 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3258 the history file will be called 'history-PROFNAME' (or just
3266 the history file will be called 'history-PROFNAME' (or just
3259 'history' if no profile is loaded). I was getting annoyed at
3267 'history' if no profile is loaded). I was getting annoyed at
3260 getting my Numerical work history clobbered by pysh sessions.
3268 getting my Numerical work history clobbered by pysh sessions.
3261
3269
3262 * IPython/iplib.py (InteractiveShell.__init__): Internal
3270 * IPython/iplib.py (InteractiveShell.__init__): Internal
3263 getoutputerror() function so that we can honor the system_verbose
3271 getoutputerror() function so that we can honor the system_verbose
3264 flag for _all_ system calls. I also added escaping of #
3272 flag for _all_ system calls. I also added escaping of #
3265 characters here to avoid confusing Itpl.
3273 characters here to avoid confusing Itpl.
3266
3274
3267 * IPython/Magic.py (shlex_split): removed call to shell in
3275 * IPython/Magic.py (shlex_split): removed call to shell in
3268 parse_options and replaced it with shlex.split(). The annoying
3276 parse_options and replaced it with shlex.split(). The annoying
3269 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3277 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3270 to backport it from 2.3, with several frail hacks (the shlex
3278 to backport it from 2.3, with several frail hacks (the shlex
3271 module is rather limited in 2.2). Thanks to a suggestion by Ville
3279 module is rather limited in 2.2). Thanks to a suggestion by Ville
3272 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3280 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3273 problem.
3281 problem.
3274
3282
3275 (Magic.magic_system_verbose): new toggle to print the actual
3283 (Magic.magic_system_verbose): new toggle to print the actual
3276 system calls made by ipython. Mainly for debugging purposes.
3284 system calls made by ipython. Mainly for debugging purposes.
3277
3285
3278 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3286 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3279 doesn't support persistence. Reported (and fix suggested) by
3287 doesn't support persistence. Reported (and fix suggested) by
3280 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3288 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3281
3289
3282 2004-06-26 Fernando Perez <fperez@colorado.edu>
3290 2004-06-26 Fernando Perez <fperez@colorado.edu>
3283
3291
3284 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3292 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3285 continue prompts.
3293 continue prompts.
3286
3294
3287 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3295 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3288 function (basically a big docstring) and a few more things here to
3296 function (basically a big docstring) and a few more things here to
3289 speedup startup. pysh.py is now very lightweight. We want because
3297 speedup startup. pysh.py is now very lightweight. We want because
3290 it gets execfile'd, while InterpreterExec gets imported, so
3298 it gets execfile'd, while InterpreterExec gets imported, so
3291 byte-compilation saves time.
3299 byte-compilation saves time.
3292
3300
3293 2004-06-25 Fernando Perez <fperez@colorado.edu>
3301 2004-06-25 Fernando Perez <fperez@colorado.edu>
3294
3302
3295 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3303 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3296 -NUM', which was recently broken.
3304 -NUM', which was recently broken.
3297
3305
3298 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3306 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3299 in multi-line input (but not !!, which doesn't make sense there).
3307 in multi-line input (but not !!, which doesn't make sense there).
3300
3308
3301 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3309 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3302 It's just too useful, and people can turn it off in the less
3310 It's just too useful, and people can turn it off in the less
3303 common cases where it's a problem.
3311 common cases where it's a problem.
3304
3312
3305 2004-06-24 Fernando Perez <fperez@colorado.edu>
3313 2004-06-24 Fernando Perez <fperez@colorado.edu>
3306
3314
3307 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3315 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3308 special syntaxes (like alias calling) is now allied in multi-line
3316 special syntaxes (like alias calling) is now allied in multi-line
3309 input. This is still _very_ experimental, but it's necessary for
3317 input. This is still _very_ experimental, but it's necessary for
3310 efficient shell usage combining python looping syntax with system
3318 efficient shell usage combining python looping syntax with system
3311 calls. For now it's restricted to aliases, I don't think it
3319 calls. For now it's restricted to aliases, I don't think it
3312 really even makes sense to have this for magics.
3320 really even makes sense to have this for magics.
3313
3321
3314 2004-06-23 Fernando Perez <fperez@colorado.edu>
3322 2004-06-23 Fernando Perez <fperez@colorado.edu>
3315
3323
3316 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3324 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3317 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3325 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3318
3326
3319 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3327 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3320 extensions under Windows (after code sent by Gary Bishop). The
3328 extensions under Windows (after code sent by Gary Bishop). The
3321 extensions considered 'executable' are stored in IPython's rc
3329 extensions considered 'executable' are stored in IPython's rc
3322 structure as win_exec_ext.
3330 structure as win_exec_ext.
3323
3331
3324 * IPython/genutils.py (shell): new function, like system() but
3332 * IPython/genutils.py (shell): new function, like system() but
3325 without return value. Very useful for interactive shell work.
3333 without return value. Very useful for interactive shell work.
3326
3334
3327 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3335 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3328 delete aliases.
3336 delete aliases.
3329
3337
3330 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3338 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3331 sure that the alias table doesn't contain python keywords.
3339 sure that the alias table doesn't contain python keywords.
3332
3340
3333 2004-06-21 Fernando Perez <fperez@colorado.edu>
3341 2004-06-21 Fernando Perez <fperez@colorado.edu>
3334
3342
3335 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3343 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3336 non-existent items are found in $PATH. Reported by Thorsten.
3344 non-existent items are found in $PATH. Reported by Thorsten.
3337
3345
3338 2004-06-20 Fernando Perez <fperez@colorado.edu>
3346 2004-06-20 Fernando Perez <fperez@colorado.edu>
3339
3347
3340 * IPython/iplib.py (complete): modified the completer so that the
3348 * IPython/iplib.py (complete): modified the completer so that the
3341 order of priorities can be easily changed at runtime.
3349 order of priorities can be easily changed at runtime.
3342
3350
3343 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3351 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3344 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3352 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3345
3353
3346 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3354 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3347 expand Python variables prepended with $ in all system calls. The
3355 expand Python variables prepended with $ in all system calls. The
3348 same was done to InteractiveShell.handle_shell_escape. Now all
3356 same was done to InteractiveShell.handle_shell_escape. Now all
3349 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3357 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3350 expansion of python variables and expressions according to the
3358 expansion of python variables and expressions according to the
3351 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3359 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3352
3360
3353 Though PEP-215 has been rejected, a similar (but simpler) one
3361 Though PEP-215 has been rejected, a similar (but simpler) one
3354 seems like it will go into Python 2.4, PEP-292 -
3362 seems like it will go into Python 2.4, PEP-292 -
3355 http://www.python.org/peps/pep-0292.html.
3363 http://www.python.org/peps/pep-0292.html.
3356
3364
3357 I'll keep the full syntax of PEP-215, since IPython has since the
3365 I'll keep the full syntax of PEP-215, since IPython has since the
3358 start used Ka-Ping Yee's reference implementation discussed there
3366 start used Ka-Ping Yee's reference implementation discussed there
3359 (Itpl), and I actually like the powerful semantics it offers.
3367 (Itpl), and I actually like the powerful semantics it offers.
3360
3368
3361 In order to access normal shell variables, the $ has to be escaped
3369 In order to access normal shell variables, the $ has to be escaped
3362 via an extra $. For example:
3370 via an extra $. For example:
3363
3371
3364 In [7]: PATH='a python variable'
3372 In [7]: PATH='a python variable'
3365
3373
3366 In [8]: !echo $PATH
3374 In [8]: !echo $PATH
3367 a python variable
3375 a python variable
3368
3376
3369 In [9]: !echo $$PATH
3377 In [9]: !echo $$PATH
3370 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3378 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3371
3379
3372 (Magic.parse_options): escape $ so the shell doesn't evaluate
3380 (Magic.parse_options): escape $ so the shell doesn't evaluate
3373 things prematurely.
3381 things prematurely.
3374
3382
3375 * IPython/iplib.py (InteractiveShell.call_alias): added the
3383 * IPython/iplib.py (InteractiveShell.call_alias): added the
3376 ability for aliases to expand python variables via $.
3384 ability for aliases to expand python variables via $.
3377
3385
3378 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3386 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3379 system, now there's a @rehash/@rehashx pair of magics. These work
3387 system, now there's a @rehash/@rehashx pair of magics. These work
3380 like the csh rehash command, and can be invoked at any time. They
3388 like the csh rehash command, and can be invoked at any time. They
3381 build a table of aliases to everything in the user's $PATH
3389 build a table of aliases to everything in the user's $PATH
3382 (@rehash uses everything, @rehashx is slower but only adds
3390 (@rehash uses everything, @rehashx is slower but only adds
3383 executable files). With this, the pysh.py-based shell profile can
3391 executable files). With this, the pysh.py-based shell profile can
3384 now simply call rehash upon startup, and full access to all
3392 now simply call rehash upon startup, and full access to all
3385 programs in the user's path is obtained.
3393 programs in the user's path is obtained.
3386
3394
3387 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3395 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3388 functionality is now fully in place. I removed the old dynamic
3396 functionality is now fully in place. I removed the old dynamic
3389 code generation based approach, in favor of a much lighter one
3397 code generation based approach, in favor of a much lighter one
3390 based on a simple dict. The advantage is that this allows me to
3398 based on a simple dict. The advantage is that this allows me to
3391 now have thousands of aliases with negligible cost (unthinkable
3399 now have thousands of aliases with negligible cost (unthinkable
3392 with the old system).
3400 with the old system).
3393
3401
3394 2004-06-19 Fernando Perez <fperez@colorado.edu>
3402 2004-06-19 Fernando Perez <fperez@colorado.edu>
3395
3403
3396 * IPython/iplib.py (__init__): extended MagicCompleter class to
3404 * IPython/iplib.py (__init__): extended MagicCompleter class to
3397 also complete (last in priority) on user aliases.
3405 also complete (last in priority) on user aliases.
3398
3406
3399 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3407 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3400 call to eval.
3408 call to eval.
3401 (ItplNS.__init__): Added a new class which functions like Itpl,
3409 (ItplNS.__init__): Added a new class which functions like Itpl,
3402 but allows configuring the namespace for the evaluation to occur
3410 but allows configuring the namespace for the evaluation to occur
3403 in.
3411 in.
3404
3412
3405 2004-06-18 Fernando Perez <fperez@colorado.edu>
3413 2004-06-18 Fernando Perez <fperez@colorado.edu>
3406
3414
3407 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3415 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3408 better message when 'exit' or 'quit' are typed (a common newbie
3416 better message when 'exit' or 'quit' are typed (a common newbie
3409 confusion).
3417 confusion).
3410
3418
3411 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3419 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3412 check for Windows users.
3420 check for Windows users.
3413
3421
3414 * IPython/iplib.py (InteractiveShell.user_setup): removed
3422 * IPython/iplib.py (InteractiveShell.user_setup): removed
3415 disabling of colors for Windows. I'll test at runtime and issue a
3423 disabling of colors for Windows. I'll test at runtime and issue a
3416 warning if Gary's readline isn't found, as to nudge users to
3424 warning if Gary's readline isn't found, as to nudge users to
3417 download it.
3425 download it.
3418
3426
3419 2004-06-16 Fernando Perez <fperez@colorado.edu>
3427 2004-06-16 Fernando Perez <fperez@colorado.edu>
3420
3428
3421 * IPython/genutils.py (Stream.__init__): changed to print errors
3429 * IPython/genutils.py (Stream.__init__): changed to print errors
3422 to sys.stderr. I had a circular dependency here. Now it's
3430 to sys.stderr. I had a circular dependency here. Now it's
3423 possible to run ipython as IDLE's shell (consider this pre-alpha,
3431 possible to run ipython as IDLE's shell (consider this pre-alpha,
3424 since true stdout things end up in the starting terminal instead
3432 since true stdout things end up in the starting terminal instead
3425 of IDLE's out).
3433 of IDLE's out).
3426
3434
3427 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3435 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3428 users who haven't # updated their prompt_in2 definitions. Remove
3436 users who haven't # updated their prompt_in2 definitions. Remove
3429 eventually.
3437 eventually.
3430 (multiple_replace): added credit to original ASPN recipe.
3438 (multiple_replace): added credit to original ASPN recipe.
3431
3439
3432 2004-06-15 Fernando Perez <fperez@colorado.edu>
3440 2004-06-15 Fernando Perez <fperez@colorado.edu>
3433
3441
3434 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3442 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3435 list of auto-defined aliases.
3443 list of auto-defined aliases.
3436
3444
3437 2004-06-13 Fernando Perez <fperez@colorado.edu>
3445 2004-06-13 Fernando Perez <fperez@colorado.edu>
3438
3446
3439 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3447 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3440 install was really requested (so setup.py can be used for other
3448 install was really requested (so setup.py can be used for other
3441 things under Windows).
3449 things under Windows).
3442
3450
3443 2004-06-10 Fernando Perez <fperez@colorado.edu>
3451 2004-06-10 Fernando Perez <fperez@colorado.edu>
3444
3452
3445 * IPython/Logger.py (Logger.create_log): Manually remove any old
3453 * IPython/Logger.py (Logger.create_log): Manually remove any old
3446 backup, since os.remove may fail under Windows. Fixes bug
3454 backup, since os.remove may fail under Windows. Fixes bug
3447 reported by Thorsten.
3455 reported by Thorsten.
3448
3456
3449 2004-06-09 Fernando Perez <fperez@colorado.edu>
3457 2004-06-09 Fernando Perez <fperez@colorado.edu>
3450
3458
3451 * examples/example-embed.py: fixed all references to %n (replaced
3459 * examples/example-embed.py: fixed all references to %n (replaced
3452 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3460 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3453 for all examples and the manual as well.
3461 for all examples and the manual as well.
3454
3462
3455 2004-06-08 Fernando Perez <fperez@colorado.edu>
3463 2004-06-08 Fernando Perez <fperez@colorado.edu>
3456
3464
3457 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3465 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3458 alignment and color management. All 3 prompt subsystems now
3466 alignment and color management. All 3 prompt subsystems now
3459 inherit from BasePrompt.
3467 inherit from BasePrompt.
3460
3468
3461 * tools/release: updates for windows installer build and tag rpms
3469 * tools/release: updates for windows installer build and tag rpms
3462 with python version (since paths are fixed).
3470 with python version (since paths are fixed).
3463
3471
3464 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3472 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3465 which will become eventually obsolete. Also fixed the default
3473 which will become eventually obsolete. Also fixed the default
3466 prompt_in2 to use \D, so at least new users start with the correct
3474 prompt_in2 to use \D, so at least new users start with the correct
3467 defaults.
3475 defaults.
3468 WARNING: Users with existing ipythonrc files will need to apply
3476 WARNING: Users with existing ipythonrc files will need to apply
3469 this fix manually!
3477 this fix manually!
3470
3478
3471 * setup.py: make windows installer (.exe). This is finally the
3479 * setup.py: make windows installer (.exe). This is finally the
3472 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3480 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3473 which I hadn't included because it required Python 2.3 (or recent
3481 which I hadn't included because it required Python 2.3 (or recent
3474 distutils).
3482 distutils).
3475
3483
3476 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3484 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3477 usage of new '\D' escape.
3485 usage of new '\D' escape.
3478
3486
3479 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3487 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3480 lacks os.getuid())
3488 lacks os.getuid())
3481 (CachedOutput.set_colors): Added the ability to turn coloring
3489 (CachedOutput.set_colors): Added the ability to turn coloring
3482 on/off with @colors even for manually defined prompt colors. It
3490 on/off with @colors even for manually defined prompt colors. It
3483 uses a nasty global, but it works safely and via the generic color
3491 uses a nasty global, but it works safely and via the generic color
3484 handling mechanism.
3492 handling mechanism.
3485 (Prompt2.__init__): Introduced new escape '\D' for continuation
3493 (Prompt2.__init__): Introduced new escape '\D' for continuation
3486 prompts. It represents the counter ('\#') as dots.
3494 prompts. It represents the counter ('\#') as dots.
3487 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3495 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3488 need to update their ipythonrc files and replace '%n' with '\D' in
3496 need to update their ipythonrc files and replace '%n' with '\D' in
3489 their prompt_in2 settings everywhere. Sorry, but there's
3497 their prompt_in2 settings everywhere. Sorry, but there's
3490 otherwise no clean way to get all prompts to properly align. The
3498 otherwise no clean way to get all prompts to properly align. The
3491 ipythonrc shipped with IPython has been updated.
3499 ipythonrc shipped with IPython has been updated.
3492
3500
3493 2004-06-07 Fernando Perez <fperez@colorado.edu>
3501 2004-06-07 Fernando Perez <fperez@colorado.edu>
3494
3502
3495 * setup.py (isfile): Pass local_icons option to latex2html, so the
3503 * setup.py (isfile): Pass local_icons option to latex2html, so the
3496 resulting HTML file is self-contained. Thanks to
3504 resulting HTML file is self-contained. Thanks to
3497 dryice-AT-liu.com.cn for the tip.
3505 dryice-AT-liu.com.cn for the tip.
3498
3506
3499 * pysh.py: I created a new profile 'shell', which implements a
3507 * pysh.py: I created a new profile 'shell', which implements a
3500 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3508 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3501 system shell, nor will it become one anytime soon. It's mainly
3509 system shell, nor will it become one anytime soon. It's mainly
3502 meant to illustrate the use of the new flexible bash-like prompts.
3510 meant to illustrate the use of the new flexible bash-like prompts.
3503 I guess it could be used by hardy souls for true shell management,
3511 I guess it could be used by hardy souls for true shell management,
3504 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3512 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3505 profile. This uses the InterpreterExec extension provided by
3513 profile. This uses the InterpreterExec extension provided by
3506 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3514 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3507
3515
3508 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3516 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3509 auto-align itself with the length of the previous input prompt
3517 auto-align itself with the length of the previous input prompt
3510 (taking into account the invisible color escapes).
3518 (taking into account the invisible color escapes).
3511 (CachedOutput.__init__): Large restructuring of this class. Now
3519 (CachedOutput.__init__): Large restructuring of this class. Now
3512 all three prompts (primary1, primary2, output) are proper objects,
3520 all three prompts (primary1, primary2, output) are proper objects,
3513 managed by the 'parent' CachedOutput class. The code is still a
3521 managed by the 'parent' CachedOutput class. The code is still a
3514 bit hackish (all prompts share state via a pointer to the cache),
3522 bit hackish (all prompts share state via a pointer to the cache),
3515 but it's overall far cleaner than before.
3523 but it's overall far cleaner than before.
3516
3524
3517 * IPython/genutils.py (getoutputerror): modified to add verbose,
3525 * IPython/genutils.py (getoutputerror): modified to add verbose,
3518 debug and header options. This makes the interface of all getout*
3526 debug and header options. This makes the interface of all getout*
3519 functions uniform.
3527 functions uniform.
3520 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3528 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3521
3529
3522 * IPython/Magic.py (Magic.default_option): added a function to
3530 * IPython/Magic.py (Magic.default_option): added a function to
3523 allow registering default options for any magic command. This
3531 allow registering default options for any magic command. This
3524 makes it easy to have profiles which customize the magics globally
3532 makes it easy to have profiles which customize the magics globally
3525 for a certain use. The values set through this function are
3533 for a certain use. The values set through this function are
3526 picked up by the parse_options() method, which all magics should
3534 picked up by the parse_options() method, which all magics should
3527 use to parse their options.
3535 use to parse their options.
3528
3536
3529 * IPython/genutils.py (warn): modified the warnings framework to
3537 * IPython/genutils.py (warn): modified the warnings framework to
3530 use the Term I/O class. I'm trying to slowly unify all of
3538 use the Term I/O class. I'm trying to slowly unify all of
3531 IPython's I/O operations to pass through Term.
3539 IPython's I/O operations to pass through Term.
3532
3540
3533 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3541 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3534 the secondary prompt to correctly match the length of the primary
3542 the secondary prompt to correctly match the length of the primary
3535 one for any prompt. Now multi-line code will properly line up
3543 one for any prompt. Now multi-line code will properly line up
3536 even for path dependent prompts, such as the new ones available
3544 even for path dependent prompts, such as the new ones available
3537 via the prompt_specials.
3545 via the prompt_specials.
3538
3546
3539 2004-06-06 Fernando Perez <fperez@colorado.edu>
3547 2004-06-06 Fernando Perez <fperez@colorado.edu>
3540
3548
3541 * IPython/Prompts.py (prompt_specials): Added the ability to have
3549 * IPython/Prompts.py (prompt_specials): Added the ability to have
3542 bash-like special sequences in the prompts, which get
3550 bash-like special sequences in the prompts, which get
3543 automatically expanded. Things like hostname, current working
3551 automatically expanded. Things like hostname, current working
3544 directory and username are implemented already, but it's easy to
3552 directory and username are implemented already, but it's easy to
3545 add more in the future. Thanks to a patch by W.J. van der Laan
3553 add more in the future. Thanks to a patch by W.J. van der Laan
3546 <gnufnork-AT-hetdigitalegat.nl>
3554 <gnufnork-AT-hetdigitalegat.nl>
3547 (prompt_specials): Added color support for prompt strings, so
3555 (prompt_specials): Added color support for prompt strings, so
3548 users can define arbitrary color setups for their prompts.
3556 users can define arbitrary color setups for their prompts.
3549
3557
3550 2004-06-05 Fernando Perez <fperez@colorado.edu>
3558 2004-06-05 Fernando Perez <fperez@colorado.edu>
3551
3559
3552 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3560 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3553 code to load Gary Bishop's readline and configure it
3561 code to load Gary Bishop's readline and configure it
3554 automatically. Thanks to Gary for help on this.
3562 automatically. Thanks to Gary for help on this.
3555
3563
3556 2004-06-01 Fernando Perez <fperez@colorado.edu>
3564 2004-06-01 Fernando Perez <fperez@colorado.edu>
3557
3565
3558 * IPython/Logger.py (Logger.create_log): fix bug for logging
3566 * IPython/Logger.py (Logger.create_log): fix bug for logging
3559 with no filename (previous fix was incomplete).
3567 with no filename (previous fix was incomplete).
3560
3568
3561 2004-05-25 Fernando Perez <fperez@colorado.edu>
3569 2004-05-25 Fernando Perez <fperez@colorado.edu>
3562
3570
3563 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3571 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3564 parens would get passed to the shell.
3572 parens would get passed to the shell.
3565
3573
3566 2004-05-20 Fernando Perez <fperez@colorado.edu>
3574 2004-05-20 Fernando Perez <fperez@colorado.edu>
3567
3575
3568 * IPython/Magic.py (Magic.magic_prun): changed default profile
3576 * IPython/Magic.py (Magic.magic_prun): changed default profile
3569 sort order to 'time' (the more common profiling need).
3577 sort order to 'time' (the more common profiling need).
3570
3578
3571 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3579 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3572 so that source code shown is guaranteed in sync with the file on
3580 so that source code shown is guaranteed in sync with the file on
3573 disk (also changed in psource). Similar fix to the one for
3581 disk (also changed in psource). Similar fix to the one for
3574 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3582 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3575 <yann.ledu-AT-noos.fr>.
3583 <yann.ledu-AT-noos.fr>.
3576
3584
3577 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3585 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3578 with a single option would not be correctly parsed. Closes
3586 with a single option would not be correctly parsed. Closes
3579 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3587 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3580 introduced in 0.6.0 (on 2004-05-06).
3588 introduced in 0.6.0 (on 2004-05-06).
3581
3589
3582 2004-05-13 *** Released version 0.6.0
3590 2004-05-13 *** Released version 0.6.0
3583
3591
3584 2004-05-13 Fernando Perez <fperez@colorado.edu>
3592 2004-05-13 Fernando Perez <fperez@colorado.edu>
3585
3593
3586 * debian/: Added debian/ directory to CVS, so that debian support
3594 * debian/: Added debian/ directory to CVS, so that debian support
3587 is publicly accessible. The debian package is maintained by Jack
3595 is publicly accessible. The debian package is maintained by Jack
3588 Moffit <jack-AT-xiph.org>.
3596 Moffit <jack-AT-xiph.org>.
3589
3597
3590 * Documentation: included the notes about an ipython-based system
3598 * Documentation: included the notes about an ipython-based system
3591 shell (the hypothetical 'pysh') into the new_design.pdf document,
3599 shell (the hypothetical 'pysh') into the new_design.pdf document,
3592 so that these ideas get distributed to users along with the
3600 so that these ideas get distributed to users along with the
3593 official documentation.
3601 official documentation.
3594
3602
3595 2004-05-10 Fernando Perez <fperez@colorado.edu>
3603 2004-05-10 Fernando Perez <fperez@colorado.edu>
3596
3604
3597 * IPython/Logger.py (Logger.create_log): fix recently introduced
3605 * IPython/Logger.py (Logger.create_log): fix recently introduced
3598 bug (misindented line) where logstart would fail when not given an
3606 bug (misindented line) where logstart would fail when not given an
3599 explicit filename.
3607 explicit filename.
3600
3608
3601 2004-05-09 Fernando Perez <fperez@colorado.edu>
3609 2004-05-09 Fernando Perez <fperez@colorado.edu>
3602
3610
3603 * IPython/Magic.py (Magic.parse_options): skip system call when
3611 * IPython/Magic.py (Magic.parse_options): skip system call when
3604 there are no options to look for. Faster, cleaner for the common
3612 there are no options to look for. Faster, cleaner for the common
3605 case.
3613 case.
3606
3614
3607 * Documentation: many updates to the manual: describing Windows
3615 * Documentation: many updates to the manual: describing Windows
3608 support better, Gnuplot updates, credits, misc small stuff. Also
3616 support better, Gnuplot updates, credits, misc small stuff. Also
3609 updated the new_design doc a bit.
3617 updated the new_design doc a bit.
3610
3618
3611 2004-05-06 *** Released version 0.6.0.rc1
3619 2004-05-06 *** Released version 0.6.0.rc1
3612
3620
3613 2004-05-06 Fernando Perez <fperez@colorado.edu>
3621 2004-05-06 Fernando Perez <fperez@colorado.edu>
3614
3622
3615 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3623 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3616 operations to use the vastly more efficient list/''.join() method.
3624 operations to use the vastly more efficient list/''.join() method.
3617 (FormattedTB.text): Fix
3625 (FormattedTB.text): Fix
3618 http://www.scipy.net/roundup/ipython/issue12 - exception source
3626 http://www.scipy.net/roundup/ipython/issue12 - exception source
3619 extract not updated after reload. Thanks to Mike Salib
3627 extract not updated after reload. Thanks to Mike Salib
3620 <msalib-AT-mit.edu> for pinning the source of the problem.
3628 <msalib-AT-mit.edu> for pinning the source of the problem.
3621 Fortunately, the solution works inside ipython and doesn't require
3629 Fortunately, the solution works inside ipython and doesn't require
3622 any changes to python proper.
3630 any changes to python proper.
3623
3631
3624 * IPython/Magic.py (Magic.parse_options): Improved to process the
3632 * IPython/Magic.py (Magic.parse_options): Improved to process the
3625 argument list as a true shell would (by actually using the
3633 argument list as a true shell would (by actually using the
3626 underlying system shell). This way, all @magics automatically get
3634 underlying system shell). This way, all @magics automatically get
3627 shell expansion for variables. Thanks to a comment by Alex
3635 shell expansion for variables. Thanks to a comment by Alex
3628 Schmolck.
3636 Schmolck.
3629
3637
3630 2004-04-04 Fernando Perez <fperez@colorado.edu>
3638 2004-04-04 Fernando Perez <fperez@colorado.edu>
3631
3639
3632 * IPython/iplib.py (InteractiveShell.interact): Added a special
3640 * IPython/iplib.py (InteractiveShell.interact): Added a special
3633 trap for a debugger quit exception, which is basically impossible
3641 trap for a debugger quit exception, which is basically impossible
3634 to handle by normal mechanisms, given what pdb does to the stack.
3642 to handle by normal mechanisms, given what pdb does to the stack.
3635 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3643 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3636
3644
3637 2004-04-03 Fernando Perez <fperez@colorado.edu>
3645 2004-04-03 Fernando Perez <fperez@colorado.edu>
3638
3646
3639 * IPython/genutils.py (Term): Standardized the names of the Term
3647 * IPython/genutils.py (Term): Standardized the names of the Term
3640 class streams to cin/cout/cerr, following C++ naming conventions
3648 class streams to cin/cout/cerr, following C++ naming conventions
3641 (I can't use in/out/err because 'in' is not a valid attribute
3649 (I can't use in/out/err because 'in' is not a valid attribute
3642 name).
3650 name).
3643
3651
3644 * IPython/iplib.py (InteractiveShell.interact): don't increment
3652 * IPython/iplib.py (InteractiveShell.interact): don't increment
3645 the prompt if there's no user input. By Daniel 'Dang' Griffith
3653 the prompt if there's no user input. By Daniel 'Dang' Griffith
3646 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3654 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3647 Francois Pinard.
3655 Francois Pinard.
3648
3656
3649 2004-04-02 Fernando Perez <fperez@colorado.edu>
3657 2004-04-02 Fernando Perez <fperez@colorado.edu>
3650
3658
3651 * IPython/genutils.py (Stream.__init__): Modified to survive at
3659 * IPython/genutils.py (Stream.__init__): Modified to survive at
3652 least importing in contexts where stdin/out/err aren't true file
3660 least importing in contexts where stdin/out/err aren't true file
3653 objects, such as PyCrust (they lack fileno() and mode). However,
3661 objects, such as PyCrust (they lack fileno() and mode). However,
3654 the recovery facilities which rely on these things existing will
3662 the recovery facilities which rely on these things existing will
3655 not work.
3663 not work.
3656
3664
3657 2004-04-01 Fernando Perez <fperez@colorado.edu>
3665 2004-04-01 Fernando Perez <fperez@colorado.edu>
3658
3666
3659 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3667 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3660 use the new getoutputerror() function, so it properly
3668 use the new getoutputerror() function, so it properly
3661 distinguishes stdout/err.
3669 distinguishes stdout/err.
3662
3670
3663 * IPython/genutils.py (getoutputerror): added a function to
3671 * IPython/genutils.py (getoutputerror): added a function to
3664 capture separately the standard output and error of a command.
3672 capture separately the standard output and error of a command.
3665 After a comment from dang on the mailing lists. This code is
3673 After a comment from dang on the mailing lists. This code is
3666 basically a modified version of commands.getstatusoutput(), from
3674 basically a modified version of commands.getstatusoutput(), from
3667 the standard library.
3675 the standard library.
3668
3676
3669 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3677 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3670 '!!' as a special syntax (shorthand) to access @sx.
3678 '!!' as a special syntax (shorthand) to access @sx.
3671
3679
3672 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3680 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3673 command and return its output as a list split on '\n'.
3681 command and return its output as a list split on '\n'.
3674
3682
3675 2004-03-31 Fernando Perez <fperez@colorado.edu>
3683 2004-03-31 Fernando Perez <fperez@colorado.edu>
3676
3684
3677 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3685 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3678 method to dictionaries used as FakeModule instances if they lack
3686 method to dictionaries used as FakeModule instances if they lack
3679 it. At least pydoc in python2.3 breaks for runtime-defined
3687 it. At least pydoc in python2.3 breaks for runtime-defined
3680 functions without this hack. At some point I need to _really_
3688 functions without this hack. At some point I need to _really_
3681 understand what FakeModule is doing, because it's a gross hack.
3689 understand what FakeModule is doing, because it's a gross hack.
3682 But it solves Arnd's problem for now...
3690 But it solves Arnd's problem for now...
3683
3691
3684 2004-02-27 Fernando Perez <fperez@colorado.edu>
3692 2004-02-27 Fernando Perez <fperez@colorado.edu>
3685
3693
3686 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3694 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3687 mode would behave erratically. Also increased the number of
3695 mode would behave erratically. Also increased the number of
3688 possible logs in rotate mod to 999. Thanks to Rod Holland
3696 possible logs in rotate mod to 999. Thanks to Rod Holland
3689 <rhh@StructureLABS.com> for the report and fixes.
3697 <rhh@StructureLABS.com> for the report and fixes.
3690
3698
3691 2004-02-26 Fernando Perez <fperez@colorado.edu>
3699 2004-02-26 Fernando Perez <fperez@colorado.edu>
3692
3700
3693 * IPython/genutils.py (page): Check that the curses module really
3701 * IPython/genutils.py (page): Check that the curses module really
3694 has the initscr attribute before trying to use it. For some
3702 has the initscr attribute before trying to use it. For some
3695 reason, the Solaris curses module is missing this. I think this
3703 reason, the Solaris curses module is missing this. I think this
3696 should be considered a Solaris python bug, but I'm not sure.
3704 should be considered a Solaris python bug, but I'm not sure.
3697
3705
3698 2004-01-17 Fernando Perez <fperez@colorado.edu>
3706 2004-01-17 Fernando Perez <fperez@colorado.edu>
3699
3707
3700 * IPython/genutils.py (Stream.__init__): Changes to try to make
3708 * IPython/genutils.py (Stream.__init__): Changes to try to make
3701 ipython robust against stdin/out/err being closed by the user.
3709 ipython robust against stdin/out/err being closed by the user.
3702 This is 'user error' (and blocks a normal python session, at least
3710 This is 'user error' (and blocks a normal python session, at least
3703 the stdout case). However, Ipython should be able to survive such
3711 the stdout case). However, Ipython should be able to survive such
3704 instances of abuse as gracefully as possible. To simplify the
3712 instances of abuse as gracefully as possible. To simplify the
3705 coding and maintain compatibility with Gary Bishop's Term
3713 coding and maintain compatibility with Gary Bishop's Term
3706 contributions, I've made use of classmethods for this. I think
3714 contributions, I've made use of classmethods for this. I think
3707 this introduces a dependency on python 2.2.
3715 this introduces a dependency on python 2.2.
3708
3716
3709 2004-01-13 Fernando Perez <fperez@colorado.edu>
3717 2004-01-13 Fernando Perez <fperez@colorado.edu>
3710
3718
3711 * IPython/numutils.py (exp_safe): simplified the code a bit and
3719 * IPython/numutils.py (exp_safe): simplified the code a bit and
3712 removed the need for importing the kinds module altogether.
3720 removed the need for importing the kinds module altogether.
3713
3721
3714 2004-01-06 Fernando Perez <fperez@colorado.edu>
3722 2004-01-06 Fernando Perez <fperez@colorado.edu>
3715
3723
3716 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3724 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3717 a magic function instead, after some community feedback. No
3725 a magic function instead, after some community feedback. No
3718 special syntax will exist for it, but its name is deliberately
3726 special syntax will exist for it, but its name is deliberately
3719 very short.
3727 very short.
3720
3728
3721 2003-12-20 Fernando Perez <fperez@colorado.edu>
3729 2003-12-20 Fernando Perez <fperez@colorado.edu>
3722
3730
3723 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3731 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3724 new functionality, to automagically assign the result of a shell
3732 new functionality, to automagically assign the result of a shell
3725 command to a variable. I'll solicit some community feedback on
3733 command to a variable. I'll solicit some community feedback on
3726 this before making it permanent.
3734 this before making it permanent.
3727
3735
3728 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3736 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3729 requested about callables for which inspect couldn't obtain a
3737 requested about callables for which inspect couldn't obtain a
3730 proper argspec. Thanks to a crash report sent by Etienne
3738 proper argspec. Thanks to a crash report sent by Etienne
3731 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3739 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3732
3740
3733 2003-12-09 Fernando Perez <fperez@colorado.edu>
3741 2003-12-09 Fernando Perez <fperez@colorado.edu>
3734
3742
3735 * IPython/genutils.py (page): patch for the pager to work across
3743 * IPython/genutils.py (page): patch for the pager to work across
3736 various versions of Windows. By Gary Bishop.
3744 various versions of Windows. By Gary Bishop.
3737
3745
3738 2003-12-04 Fernando Perez <fperez@colorado.edu>
3746 2003-12-04 Fernando Perez <fperez@colorado.edu>
3739
3747
3740 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3748 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3741 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3749 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3742 While I tested this and it looks ok, there may still be corner
3750 While I tested this and it looks ok, there may still be corner
3743 cases I've missed.
3751 cases I've missed.
3744
3752
3745 2003-12-01 Fernando Perez <fperez@colorado.edu>
3753 2003-12-01 Fernando Perez <fperez@colorado.edu>
3746
3754
3747 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3755 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3748 where a line like 'p,q=1,2' would fail because the automagic
3756 where a line like 'p,q=1,2' would fail because the automagic
3749 system would be triggered for @p.
3757 system would be triggered for @p.
3750
3758
3751 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3759 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3752 cleanups, code unmodified.
3760 cleanups, code unmodified.
3753
3761
3754 * IPython/genutils.py (Term): added a class for IPython to handle
3762 * IPython/genutils.py (Term): added a class for IPython to handle
3755 output. In most cases it will just be a proxy for stdout/err, but
3763 output. In most cases it will just be a proxy for stdout/err, but
3756 having this allows modifications to be made for some platforms,
3764 having this allows modifications to be made for some platforms,
3757 such as handling color escapes under Windows. All of this code
3765 such as handling color escapes under Windows. All of this code
3758 was contributed by Gary Bishop, with minor modifications by me.
3766 was contributed by Gary Bishop, with minor modifications by me.
3759 The actual changes affect many files.
3767 The actual changes affect many files.
3760
3768
3761 2003-11-30 Fernando Perez <fperez@colorado.edu>
3769 2003-11-30 Fernando Perez <fperez@colorado.edu>
3762
3770
3763 * IPython/iplib.py (file_matches): new completion code, courtesy
3771 * IPython/iplib.py (file_matches): new completion code, courtesy
3764 of Jeff Collins. This enables filename completion again under
3772 of Jeff Collins. This enables filename completion again under
3765 python 2.3, which disabled it at the C level.
3773 python 2.3, which disabled it at the C level.
3766
3774
3767 2003-11-11 Fernando Perez <fperez@colorado.edu>
3775 2003-11-11 Fernando Perez <fperez@colorado.edu>
3768
3776
3769 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3777 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3770 for Numeric.array(map(...)), but often convenient.
3778 for Numeric.array(map(...)), but often convenient.
3771
3779
3772 2003-11-05 Fernando Perez <fperez@colorado.edu>
3780 2003-11-05 Fernando Perez <fperez@colorado.edu>
3773
3781
3774 * IPython/numutils.py (frange): Changed a call from int() to
3782 * IPython/numutils.py (frange): Changed a call from int() to
3775 int(round()) to prevent a problem reported with arange() in the
3783 int(round()) to prevent a problem reported with arange() in the
3776 numpy list.
3784 numpy list.
3777
3785
3778 2003-10-06 Fernando Perez <fperez@colorado.edu>
3786 2003-10-06 Fernando Perez <fperez@colorado.edu>
3779
3787
3780 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3788 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3781 prevent crashes if sys lacks an argv attribute (it happens with
3789 prevent crashes if sys lacks an argv attribute (it happens with
3782 embedded interpreters which build a bare-bones sys module).
3790 embedded interpreters which build a bare-bones sys module).
3783 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3791 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3784
3792
3785 2003-09-24 Fernando Perez <fperez@colorado.edu>
3793 2003-09-24 Fernando Perez <fperez@colorado.edu>
3786
3794
3787 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3795 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3788 to protect against poorly written user objects where __getattr__
3796 to protect against poorly written user objects where __getattr__
3789 raises exceptions other than AttributeError. Thanks to a bug
3797 raises exceptions other than AttributeError. Thanks to a bug
3790 report by Oliver Sander <osander-AT-gmx.de>.
3798 report by Oliver Sander <osander-AT-gmx.de>.
3791
3799
3792 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3800 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3793 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3801 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3794
3802
3795 2003-09-09 Fernando Perez <fperez@colorado.edu>
3803 2003-09-09 Fernando Perez <fperez@colorado.edu>
3796
3804
3797 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3805 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3798 unpacking a list whith a callable as first element would
3806 unpacking a list whith a callable as first element would
3799 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3807 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3800 Collins.
3808 Collins.
3801
3809
3802 2003-08-25 *** Released version 0.5.0
3810 2003-08-25 *** Released version 0.5.0
3803
3811
3804 2003-08-22 Fernando Perez <fperez@colorado.edu>
3812 2003-08-22 Fernando Perez <fperez@colorado.edu>
3805
3813
3806 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3814 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3807 improperly defined user exceptions. Thanks to feedback from Mark
3815 improperly defined user exceptions. Thanks to feedback from Mark
3808 Russell <mrussell-AT-verio.net>.
3816 Russell <mrussell-AT-verio.net>.
3809
3817
3810 2003-08-20 Fernando Perez <fperez@colorado.edu>
3818 2003-08-20 Fernando Perez <fperez@colorado.edu>
3811
3819
3812 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3820 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3813 printing so that it would print multi-line string forms starting
3821 printing so that it would print multi-line string forms starting
3814 with a new line. This way the formatting is better respected for
3822 with a new line. This way the formatting is better respected for
3815 objects which work hard to make nice string forms.
3823 objects which work hard to make nice string forms.
3816
3824
3817 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3825 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3818 autocall would overtake data access for objects with both
3826 autocall would overtake data access for objects with both
3819 __getitem__ and __call__.
3827 __getitem__ and __call__.
3820
3828
3821 2003-08-19 *** Released version 0.5.0-rc1
3829 2003-08-19 *** Released version 0.5.0-rc1
3822
3830
3823 2003-08-19 Fernando Perez <fperez@colorado.edu>
3831 2003-08-19 Fernando Perez <fperez@colorado.edu>
3824
3832
3825 * IPython/deep_reload.py (load_tail): single tiny change here
3833 * IPython/deep_reload.py (load_tail): single tiny change here
3826 seems to fix the long-standing bug of dreload() failing to work
3834 seems to fix the long-standing bug of dreload() failing to work
3827 for dotted names. But this module is pretty tricky, so I may have
3835 for dotted names. But this module is pretty tricky, so I may have
3828 missed some subtlety. Needs more testing!.
3836 missed some subtlety. Needs more testing!.
3829
3837
3830 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3838 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3831 exceptions which have badly implemented __str__ methods.
3839 exceptions which have badly implemented __str__ methods.
3832 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3840 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3833 which I've been getting reports about from Python 2.3 users. I
3841 which I've been getting reports about from Python 2.3 users. I
3834 wish I had a simple test case to reproduce the problem, so I could
3842 wish I had a simple test case to reproduce the problem, so I could
3835 either write a cleaner workaround or file a bug report if
3843 either write a cleaner workaround or file a bug report if
3836 necessary.
3844 necessary.
3837
3845
3838 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3846 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3839 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3847 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3840 a bug report by Tjabo Kloppenburg.
3848 a bug report by Tjabo Kloppenburg.
3841
3849
3842 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3850 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3843 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3851 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3844 seems rather unstable. Thanks to a bug report by Tjabo
3852 seems rather unstable. Thanks to a bug report by Tjabo
3845 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3853 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3846
3854
3847 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3855 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3848 this out soon because of the critical fixes in the inner loop for
3856 this out soon because of the critical fixes in the inner loop for
3849 generators.
3857 generators.
3850
3858
3851 * IPython/Magic.py (Magic.getargspec): removed. This (and
3859 * IPython/Magic.py (Magic.getargspec): removed. This (and
3852 _get_def) have been obsoleted by OInspect for a long time, I
3860 _get_def) have been obsoleted by OInspect for a long time, I
3853 hadn't noticed that they were dead code.
3861 hadn't noticed that they were dead code.
3854 (Magic._ofind): restored _ofind functionality for a few literals
3862 (Magic._ofind): restored _ofind functionality for a few literals
3855 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3863 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3856 for things like "hello".capitalize?, since that would require a
3864 for things like "hello".capitalize?, since that would require a
3857 potentially dangerous eval() again.
3865 potentially dangerous eval() again.
3858
3866
3859 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3867 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3860 logic a bit more to clean up the escapes handling and minimize the
3868 logic a bit more to clean up the escapes handling and minimize the
3861 use of _ofind to only necessary cases. The interactive 'feel' of
3869 use of _ofind to only necessary cases. The interactive 'feel' of
3862 IPython should have improved quite a bit with the changes in
3870 IPython should have improved quite a bit with the changes in
3863 _prefilter and _ofind (besides being far safer than before).
3871 _prefilter and _ofind (besides being far safer than before).
3864
3872
3865 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3873 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3866 obscure, never reported). Edit would fail to find the object to
3874 obscure, never reported). Edit would fail to find the object to
3867 edit under some circumstances.
3875 edit under some circumstances.
3868 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3876 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3869 which were causing double-calling of generators. Those eval calls
3877 which were causing double-calling of generators. Those eval calls
3870 were _very_ dangerous, since code with side effects could be
3878 were _very_ dangerous, since code with side effects could be
3871 triggered. As they say, 'eval is evil'... These were the
3879 triggered. As they say, 'eval is evil'... These were the
3872 nastiest evals in IPython. Besides, _ofind is now far simpler,
3880 nastiest evals in IPython. Besides, _ofind is now far simpler,
3873 and it should also be quite a bit faster. Its use of inspect is
3881 and it should also be quite a bit faster. Its use of inspect is
3874 also safer, so perhaps some of the inspect-related crashes I've
3882 also safer, so perhaps some of the inspect-related crashes I've
3875 seen lately with Python 2.3 might be taken care of. That will
3883 seen lately with Python 2.3 might be taken care of. That will
3876 need more testing.
3884 need more testing.
3877
3885
3878 2003-08-17 Fernando Perez <fperez@colorado.edu>
3886 2003-08-17 Fernando Perez <fperez@colorado.edu>
3879
3887
3880 * IPython/iplib.py (InteractiveShell._prefilter): significant
3888 * IPython/iplib.py (InteractiveShell._prefilter): significant
3881 simplifications to the logic for handling user escapes. Faster
3889 simplifications to the logic for handling user escapes. Faster
3882 and simpler code.
3890 and simpler code.
3883
3891
3884 2003-08-14 Fernando Perez <fperez@colorado.edu>
3892 2003-08-14 Fernando Perez <fperez@colorado.edu>
3885
3893
3886 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3894 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3887 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3895 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3888 but it should be quite a bit faster. And the recursive version
3896 but it should be quite a bit faster. And the recursive version
3889 generated O(log N) intermediate storage for all rank>1 arrays,
3897 generated O(log N) intermediate storage for all rank>1 arrays,
3890 even if they were contiguous.
3898 even if they were contiguous.
3891 (l1norm): Added this function.
3899 (l1norm): Added this function.
3892 (norm): Added this function for arbitrary norms (including
3900 (norm): Added this function for arbitrary norms (including
3893 l-infinity). l1 and l2 are still special cases for convenience
3901 l-infinity). l1 and l2 are still special cases for convenience
3894 and speed.
3902 and speed.
3895
3903
3896 2003-08-03 Fernando Perez <fperez@colorado.edu>
3904 2003-08-03 Fernando Perez <fperez@colorado.edu>
3897
3905
3898 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3906 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3899 exceptions, which now raise PendingDeprecationWarnings in Python
3907 exceptions, which now raise PendingDeprecationWarnings in Python
3900 2.3. There were some in Magic and some in Gnuplot2.
3908 2.3. There were some in Magic and some in Gnuplot2.
3901
3909
3902 2003-06-30 Fernando Perez <fperez@colorado.edu>
3910 2003-06-30 Fernando Perez <fperez@colorado.edu>
3903
3911
3904 * IPython/genutils.py (page): modified to call curses only for
3912 * IPython/genutils.py (page): modified to call curses only for
3905 terminals where TERM=='xterm'. After problems under many other
3913 terminals where TERM=='xterm'. After problems under many other
3906 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3914 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3907
3915
3908 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3916 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3909 would be triggered when readline was absent. This was just an old
3917 would be triggered when readline was absent. This was just an old
3910 debugging statement I'd forgotten to take out.
3918 debugging statement I'd forgotten to take out.
3911
3919
3912 2003-06-20 Fernando Perez <fperez@colorado.edu>
3920 2003-06-20 Fernando Perez <fperez@colorado.edu>
3913
3921
3914 * IPython/genutils.py (clock): modified to return only user time
3922 * IPython/genutils.py (clock): modified to return only user time
3915 (not counting system time), after a discussion on scipy. While
3923 (not counting system time), after a discussion on scipy. While
3916 system time may be a useful quantity occasionally, it may much
3924 system time may be a useful quantity occasionally, it may much
3917 more easily be skewed by occasional swapping or other similar
3925 more easily be skewed by occasional swapping or other similar
3918 activity.
3926 activity.
3919
3927
3920 2003-06-05 Fernando Perez <fperez@colorado.edu>
3928 2003-06-05 Fernando Perez <fperez@colorado.edu>
3921
3929
3922 * IPython/numutils.py (identity): new function, for building
3930 * IPython/numutils.py (identity): new function, for building
3923 arbitrary rank Kronecker deltas (mostly backwards compatible with
3931 arbitrary rank Kronecker deltas (mostly backwards compatible with
3924 Numeric.identity)
3932 Numeric.identity)
3925
3933
3926 2003-06-03 Fernando Perez <fperez@colorado.edu>
3934 2003-06-03 Fernando Perez <fperez@colorado.edu>
3927
3935
3928 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3936 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3929 arguments passed to magics with spaces, to allow trailing '\' to
3937 arguments passed to magics with spaces, to allow trailing '\' to
3930 work normally (mainly for Windows users).
3938 work normally (mainly for Windows users).
3931
3939
3932 2003-05-29 Fernando Perez <fperez@colorado.edu>
3940 2003-05-29 Fernando Perez <fperez@colorado.edu>
3933
3941
3934 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3942 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3935 instead of pydoc.help. This fixes a bizarre behavior where
3943 instead of pydoc.help. This fixes a bizarre behavior where
3936 printing '%s' % locals() would trigger the help system. Now
3944 printing '%s' % locals() would trigger the help system. Now
3937 ipython behaves like normal python does.
3945 ipython behaves like normal python does.
3938
3946
3939 Note that if one does 'from pydoc import help', the bizarre
3947 Note that if one does 'from pydoc import help', the bizarre
3940 behavior returns, but this will also happen in normal python, so
3948 behavior returns, but this will also happen in normal python, so
3941 it's not an ipython bug anymore (it has to do with how pydoc.help
3949 it's not an ipython bug anymore (it has to do with how pydoc.help
3942 is implemented).
3950 is implemented).
3943
3951
3944 2003-05-22 Fernando Perez <fperez@colorado.edu>
3952 2003-05-22 Fernando Perez <fperez@colorado.edu>
3945
3953
3946 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3954 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3947 return [] instead of None when nothing matches, also match to end
3955 return [] instead of None when nothing matches, also match to end
3948 of line. Patch by Gary Bishop.
3956 of line. Patch by Gary Bishop.
3949
3957
3950 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3958 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3951 protection as before, for files passed on the command line. This
3959 protection as before, for files passed on the command line. This
3952 prevents the CrashHandler from kicking in if user files call into
3960 prevents the CrashHandler from kicking in if user files call into
3953 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3961 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3954 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3962 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3955
3963
3956 2003-05-20 *** Released version 0.4.0
3964 2003-05-20 *** Released version 0.4.0
3957
3965
3958 2003-05-20 Fernando Perez <fperez@colorado.edu>
3966 2003-05-20 Fernando Perez <fperez@colorado.edu>
3959
3967
3960 * setup.py: added support for manpages. It's a bit hackish b/c of
3968 * setup.py: added support for manpages. It's a bit hackish b/c of
3961 a bug in the way the bdist_rpm distutils target handles gzipped
3969 a bug in the way the bdist_rpm distutils target handles gzipped
3962 manpages, but it works. After a patch by Jack.
3970 manpages, but it works. After a patch by Jack.
3963
3971
3964 2003-05-19 Fernando Perez <fperez@colorado.edu>
3972 2003-05-19 Fernando Perez <fperez@colorado.edu>
3965
3973
3966 * IPython/numutils.py: added a mockup of the kinds module, since
3974 * IPython/numutils.py: added a mockup of the kinds module, since
3967 it was recently removed from Numeric. This way, numutils will
3975 it was recently removed from Numeric. This way, numutils will
3968 work for all users even if they are missing kinds.
3976 work for all users even if they are missing kinds.
3969
3977
3970 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3978 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3971 failure, which can occur with SWIG-wrapped extensions. After a
3979 failure, which can occur with SWIG-wrapped extensions. After a
3972 crash report from Prabhu.
3980 crash report from Prabhu.
3973
3981
3974 2003-05-16 Fernando Perez <fperez@colorado.edu>
3982 2003-05-16 Fernando Perez <fperez@colorado.edu>
3975
3983
3976 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3984 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3977 protect ipython from user code which may call directly
3985 protect ipython from user code which may call directly
3978 sys.excepthook (this looks like an ipython crash to the user, even
3986 sys.excepthook (this looks like an ipython crash to the user, even
3979 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3987 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3980 This is especially important to help users of WxWindows, but may
3988 This is especially important to help users of WxWindows, but may
3981 also be useful in other cases.
3989 also be useful in other cases.
3982
3990
3983 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3991 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3984 an optional tb_offset to be specified, and to preserve exception
3992 an optional tb_offset to be specified, and to preserve exception
3985 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3993 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3986
3994
3987 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3995 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3988
3996
3989 2003-05-15 Fernando Perez <fperez@colorado.edu>
3997 2003-05-15 Fernando Perez <fperez@colorado.edu>
3990
3998
3991 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3999 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3992 installing for a new user under Windows.
4000 installing for a new user under Windows.
3993
4001
3994 2003-05-12 Fernando Perez <fperez@colorado.edu>
4002 2003-05-12 Fernando Perez <fperez@colorado.edu>
3995
4003
3996 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4004 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3997 handler for Emacs comint-based lines. Currently it doesn't do
4005 handler for Emacs comint-based lines. Currently it doesn't do
3998 much (but importantly, it doesn't update the history cache). In
4006 much (but importantly, it doesn't update the history cache). In
3999 the future it may be expanded if Alex needs more functionality
4007 the future it may be expanded if Alex needs more functionality
4000 there.
4008 there.
4001
4009
4002 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4010 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4003 info to crash reports.
4011 info to crash reports.
4004
4012
4005 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4013 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4006 just like Python's -c. Also fixed crash with invalid -color
4014 just like Python's -c. Also fixed crash with invalid -color
4007 option value at startup. Thanks to Will French
4015 option value at startup. Thanks to Will French
4008 <wfrench-AT-bestweb.net> for the bug report.
4016 <wfrench-AT-bestweb.net> for the bug report.
4009
4017
4010 2003-05-09 Fernando Perez <fperez@colorado.edu>
4018 2003-05-09 Fernando Perez <fperez@colorado.edu>
4011
4019
4012 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4020 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4013 to EvalDict (it's a mapping, after all) and simplified its code
4021 to EvalDict (it's a mapping, after all) and simplified its code
4014 quite a bit, after a nice discussion on c.l.py where Gustavo
4022 quite a bit, after a nice discussion on c.l.py where Gustavo
4015 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4023 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4016
4024
4017 2003-04-30 Fernando Perez <fperez@colorado.edu>
4025 2003-04-30 Fernando Perez <fperez@colorado.edu>
4018
4026
4019 * IPython/genutils.py (timings_out): modified it to reduce its
4027 * IPython/genutils.py (timings_out): modified it to reduce its
4020 overhead in the common reps==1 case.
4028 overhead in the common reps==1 case.
4021
4029
4022 2003-04-29 Fernando Perez <fperez@colorado.edu>
4030 2003-04-29 Fernando Perez <fperez@colorado.edu>
4023
4031
4024 * IPython/genutils.py (timings_out): Modified to use the resource
4032 * IPython/genutils.py (timings_out): Modified to use the resource
4025 module, which avoids the wraparound problems of time.clock().
4033 module, which avoids the wraparound problems of time.clock().
4026
4034
4027 2003-04-17 *** Released version 0.2.15pre4
4035 2003-04-17 *** Released version 0.2.15pre4
4028
4036
4029 2003-04-17 Fernando Perez <fperez@colorado.edu>
4037 2003-04-17 Fernando Perez <fperez@colorado.edu>
4030
4038
4031 * setup.py (scriptfiles): Split windows-specific stuff over to a
4039 * setup.py (scriptfiles): Split windows-specific stuff over to a
4032 separate file, in an attempt to have a Windows GUI installer.
4040 separate file, in an attempt to have a Windows GUI installer.
4033 That didn't work, but part of the groundwork is done.
4041 That didn't work, but part of the groundwork is done.
4034
4042
4035 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4043 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4036 indent/unindent with 4 spaces. Particularly useful in combination
4044 indent/unindent with 4 spaces. Particularly useful in combination
4037 with the new auto-indent option.
4045 with the new auto-indent option.
4038
4046
4039 2003-04-16 Fernando Perez <fperez@colorado.edu>
4047 2003-04-16 Fernando Perez <fperez@colorado.edu>
4040
4048
4041 * IPython/Magic.py: various replacements of self.rc for
4049 * IPython/Magic.py: various replacements of self.rc for
4042 self.shell.rc. A lot more remains to be done to fully disentangle
4050 self.shell.rc. A lot more remains to be done to fully disentangle
4043 this class from the main Shell class.
4051 this class from the main Shell class.
4044
4052
4045 * IPython/GnuplotRuntime.py: added checks for mouse support so
4053 * IPython/GnuplotRuntime.py: added checks for mouse support so
4046 that we don't try to enable it if the current gnuplot doesn't
4054 that we don't try to enable it if the current gnuplot doesn't
4047 really support it. Also added checks so that we don't try to
4055 really support it. Also added checks so that we don't try to
4048 enable persist under Windows (where Gnuplot doesn't recognize the
4056 enable persist under Windows (where Gnuplot doesn't recognize the
4049 option).
4057 option).
4050
4058
4051 * IPython/iplib.py (InteractiveShell.interact): Added optional
4059 * IPython/iplib.py (InteractiveShell.interact): Added optional
4052 auto-indenting code, after a patch by King C. Shu
4060 auto-indenting code, after a patch by King C. Shu
4053 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4061 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4054 get along well with pasting indented code. If I ever figure out
4062 get along well with pasting indented code. If I ever figure out
4055 how to make that part go well, it will become on by default.
4063 how to make that part go well, it will become on by default.
4056
4064
4057 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4065 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4058 crash ipython if there was an unmatched '%' in the user's prompt
4066 crash ipython if there was an unmatched '%' in the user's prompt
4059 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4067 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4060
4068
4061 * IPython/iplib.py (InteractiveShell.interact): removed the
4069 * IPython/iplib.py (InteractiveShell.interact): removed the
4062 ability to ask the user whether he wants to crash or not at the
4070 ability to ask the user whether he wants to crash or not at the
4063 'last line' exception handler. Calling functions at that point
4071 'last line' exception handler. Calling functions at that point
4064 changes the stack, and the error reports would have incorrect
4072 changes the stack, and the error reports would have incorrect
4065 tracebacks.
4073 tracebacks.
4066
4074
4067 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4075 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4068 pass through a peger a pretty-printed form of any object. After a
4076 pass through a peger a pretty-printed form of any object. After a
4069 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4077 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4070
4078
4071 2003-04-14 Fernando Perez <fperez@colorado.edu>
4079 2003-04-14 Fernando Perez <fperez@colorado.edu>
4072
4080
4073 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4081 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4074 all files in ~ would be modified at first install (instead of
4082 all files in ~ would be modified at first install (instead of
4075 ~/.ipython). This could be potentially disastrous, as the
4083 ~/.ipython). This could be potentially disastrous, as the
4076 modification (make line-endings native) could damage binary files.
4084 modification (make line-endings native) could damage binary files.
4077
4085
4078 2003-04-10 Fernando Perez <fperez@colorado.edu>
4086 2003-04-10 Fernando Perez <fperez@colorado.edu>
4079
4087
4080 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4088 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4081 handle only lines which are invalid python. This now means that
4089 handle only lines which are invalid python. This now means that
4082 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4090 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4083 for the bug report.
4091 for the bug report.
4084
4092
4085 2003-04-01 Fernando Perez <fperez@colorado.edu>
4093 2003-04-01 Fernando Perez <fperez@colorado.edu>
4086
4094
4087 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4095 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4088 where failing to set sys.last_traceback would crash pdb.pm().
4096 where failing to set sys.last_traceback would crash pdb.pm().
4089 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4097 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4090 report.
4098 report.
4091
4099
4092 2003-03-25 Fernando Perez <fperez@colorado.edu>
4100 2003-03-25 Fernando Perez <fperez@colorado.edu>
4093
4101
4094 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4102 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4095 before printing it (it had a lot of spurious blank lines at the
4103 before printing it (it had a lot of spurious blank lines at the
4096 end).
4104 end).
4097
4105
4098 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4106 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4099 output would be sent 21 times! Obviously people don't use this
4107 output would be sent 21 times! Obviously people don't use this
4100 too often, or I would have heard about it.
4108 too often, or I would have heard about it.
4101
4109
4102 2003-03-24 Fernando Perez <fperez@colorado.edu>
4110 2003-03-24 Fernando Perez <fperez@colorado.edu>
4103
4111
4104 * setup.py (scriptfiles): renamed the data_files parameter from
4112 * setup.py (scriptfiles): renamed the data_files parameter from
4105 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4113 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4106 for the patch.
4114 for the patch.
4107
4115
4108 2003-03-20 Fernando Perez <fperez@colorado.edu>
4116 2003-03-20 Fernando Perez <fperez@colorado.edu>
4109
4117
4110 * IPython/genutils.py (error): added error() and fatal()
4118 * IPython/genutils.py (error): added error() and fatal()
4111 functions.
4119 functions.
4112
4120
4113 2003-03-18 *** Released version 0.2.15pre3
4121 2003-03-18 *** Released version 0.2.15pre3
4114
4122
4115 2003-03-18 Fernando Perez <fperez@colorado.edu>
4123 2003-03-18 Fernando Perez <fperez@colorado.edu>
4116
4124
4117 * setupext/install_data_ext.py
4125 * setupext/install_data_ext.py
4118 (install_data_ext.initialize_options): Class contributed by Jack
4126 (install_data_ext.initialize_options): Class contributed by Jack
4119 Moffit for fixing the old distutils hack. He is sending this to
4127 Moffit for fixing the old distutils hack. He is sending this to
4120 the distutils folks so in the future we may not need it as a
4128 the distutils folks so in the future we may not need it as a
4121 private fix.
4129 private fix.
4122
4130
4123 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4131 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4124 changes for Debian packaging. See his patch for full details.
4132 changes for Debian packaging. See his patch for full details.
4125 The old distutils hack of making the ipythonrc* files carry a
4133 The old distutils hack of making the ipythonrc* files carry a
4126 bogus .py extension is gone, at last. Examples were moved to a
4134 bogus .py extension is gone, at last. Examples were moved to a
4127 separate subdir under doc/, and the separate executable scripts
4135 separate subdir under doc/, and the separate executable scripts
4128 now live in their own directory. Overall a great cleanup. The
4136 now live in their own directory. Overall a great cleanup. The
4129 manual was updated to use the new files, and setup.py has been
4137 manual was updated to use the new files, and setup.py has been
4130 fixed for this setup.
4138 fixed for this setup.
4131
4139
4132 * IPython/PyColorize.py (Parser.usage): made non-executable and
4140 * IPython/PyColorize.py (Parser.usage): made non-executable and
4133 created a pycolor wrapper around it to be included as a script.
4141 created a pycolor wrapper around it to be included as a script.
4134
4142
4135 2003-03-12 *** Released version 0.2.15pre2
4143 2003-03-12 *** Released version 0.2.15pre2
4136
4144
4137 2003-03-12 Fernando Perez <fperez@colorado.edu>
4145 2003-03-12 Fernando Perez <fperez@colorado.edu>
4138
4146
4139 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4147 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4140 long-standing problem with garbage characters in some terminals.
4148 long-standing problem with garbage characters in some terminals.
4141 The issue was really that the \001 and \002 escapes must _only_ be
4149 The issue was really that the \001 and \002 escapes must _only_ be
4142 passed to input prompts (which call readline), but _never_ to
4150 passed to input prompts (which call readline), but _never_ to
4143 normal text to be printed on screen. I changed ColorANSI to have
4151 normal text to be printed on screen. I changed ColorANSI to have
4144 two classes: TermColors and InputTermColors, each with the
4152 two classes: TermColors and InputTermColors, each with the
4145 appropriate escapes for input prompts or normal text. The code in
4153 appropriate escapes for input prompts or normal text. The code in
4146 Prompts.py got slightly more complicated, but this very old and
4154 Prompts.py got slightly more complicated, but this very old and
4147 annoying bug is finally fixed.
4155 annoying bug is finally fixed.
4148
4156
4149 All the credit for nailing down the real origin of this problem
4157 All the credit for nailing down the real origin of this problem
4150 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4158 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4151 *Many* thanks to him for spending quite a bit of effort on this.
4159 *Many* thanks to him for spending quite a bit of effort on this.
4152
4160
4153 2003-03-05 *** Released version 0.2.15pre1
4161 2003-03-05 *** Released version 0.2.15pre1
4154
4162
4155 2003-03-03 Fernando Perez <fperez@colorado.edu>
4163 2003-03-03 Fernando Perez <fperez@colorado.edu>
4156
4164
4157 * IPython/FakeModule.py: Moved the former _FakeModule to a
4165 * IPython/FakeModule.py: Moved the former _FakeModule to a
4158 separate file, because it's also needed by Magic (to fix a similar
4166 separate file, because it's also needed by Magic (to fix a similar
4159 pickle-related issue in @run).
4167 pickle-related issue in @run).
4160
4168
4161 2003-03-02 Fernando Perez <fperez@colorado.edu>
4169 2003-03-02 Fernando Perez <fperez@colorado.edu>
4162
4170
4163 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4171 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4164 the autocall option at runtime.
4172 the autocall option at runtime.
4165 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4173 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4166 across Magic.py to start separating Magic from InteractiveShell.
4174 across Magic.py to start separating Magic from InteractiveShell.
4167 (Magic._ofind): Fixed to return proper namespace for dotted
4175 (Magic._ofind): Fixed to return proper namespace for dotted
4168 names. Before, a dotted name would always return 'not currently
4176 names. Before, a dotted name would always return 'not currently
4169 defined', because it would find the 'parent'. s.x would be found,
4177 defined', because it would find the 'parent'. s.x would be found,
4170 but since 'x' isn't defined by itself, it would get confused.
4178 but since 'x' isn't defined by itself, it would get confused.
4171 (Magic.magic_run): Fixed pickling problems reported by Ralf
4179 (Magic.magic_run): Fixed pickling problems reported by Ralf
4172 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4180 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4173 that I'd used when Mike Heeter reported similar issues at the
4181 that I'd used when Mike Heeter reported similar issues at the
4174 top-level, but now for @run. It boils down to injecting the
4182 top-level, but now for @run. It boils down to injecting the
4175 namespace where code is being executed with something that looks
4183 namespace where code is being executed with something that looks
4176 enough like a module to fool pickle.dump(). Since a pickle stores
4184 enough like a module to fool pickle.dump(). Since a pickle stores
4177 a named reference to the importing module, we need this for
4185 a named reference to the importing module, we need this for
4178 pickles to save something sensible.
4186 pickles to save something sensible.
4179
4187
4180 * IPython/ipmaker.py (make_IPython): added an autocall option.
4188 * IPython/ipmaker.py (make_IPython): added an autocall option.
4181
4189
4182 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4190 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4183 the auto-eval code. Now autocalling is an option, and the code is
4191 the auto-eval code. Now autocalling is an option, and the code is
4184 also vastly safer. There is no more eval() involved at all.
4192 also vastly safer. There is no more eval() involved at all.
4185
4193
4186 2003-03-01 Fernando Perez <fperez@colorado.edu>
4194 2003-03-01 Fernando Perez <fperez@colorado.edu>
4187
4195
4188 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4196 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4189 dict with named keys instead of a tuple.
4197 dict with named keys instead of a tuple.
4190
4198
4191 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4199 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4192
4200
4193 * setup.py (make_shortcut): Fixed message about directories
4201 * setup.py (make_shortcut): Fixed message about directories
4194 created during Windows installation (the directories were ok, just
4202 created during Windows installation (the directories were ok, just
4195 the printed message was misleading). Thanks to Chris Liechti
4203 the printed message was misleading). Thanks to Chris Liechti
4196 <cliechti-AT-gmx.net> for the heads up.
4204 <cliechti-AT-gmx.net> for the heads up.
4197
4205
4198 2003-02-21 Fernando Perez <fperez@colorado.edu>
4206 2003-02-21 Fernando Perez <fperez@colorado.edu>
4199
4207
4200 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4208 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4201 of ValueError exception when checking for auto-execution. This
4209 of ValueError exception when checking for auto-execution. This
4202 one is raised by things like Numeric arrays arr.flat when the
4210 one is raised by things like Numeric arrays arr.flat when the
4203 array is non-contiguous.
4211 array is non-contiguous.
4204
4212
4205 2003-01-31 Fernando Perez <fperez@colorado.edu>
4213 2003-01-31 Fernando Perez <fperez@colorado.edu>
4206
4214
4207 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4215 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4208 not return any value at all (even though the command would get
4216 not return any value at all (even though the command would get
4209 executed).
4217 executed).
4210 (xsys): Flush stdout right after printing the command to ensure
4218 (xsys): Flush stdout right after printing the command to ensure
4211 proper ordering of commands and command output in the total
4219 proper ordering of commands and command output in the total
4212 output.
4220 output.
4213 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4221 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4214 system/getoutput as defaults. The old ones are kept for
4222 system/getoutput as defaults. The old ones are kept for
4215 compatibility reasons, so no code which uses this library needs
4223 compatibility reasons, so no code which uses this library needs
4216 changing.
4224 changing.
4217
4225
4218 2003-01-27 *** Released version 0.2.14
4226 2003-01-27 *** Released version 0.2.14
4219
4227
4220 2003-01-25 Fernando Perez <fperez@colorado.edu>
4228 2003-01-25 Fernando Perez <fperez@colorado.edu>
4221
4229
4222 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4230 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4223 functions defined in previous edit sessions could not be re-edited
4231 functions defined in previous edit sessions could not be re-edited
4224 (because the temp files were immediately removed). Now temp files
4232 (because the temp files were immediately removed). Now temp files
4225 are removed only at IPython's exit.
4233 are removed only at IPython's exit.
4226 (Magic.magic_run): Improved @run to perform shell-like expansions
4234 (Magic.magic_run): Improved @run to perform shell-like expansions
4227 on its arguments (~users and $VARS). With this, @run becomes more
4235 on its arguments (~users and $VARS). With this, @run becomes more
4228 like a normal command-line.
4236 like a normal command-line.
4229
4237
4230 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4238 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4231 bugs related to embedding and cleaned up that code. A fairly
4239 bugs related to embedding and cleaned up that code. A fairly
4232 important one was the impossibility to access the global namespace
4240 important one was the impossibility to access the global namespace
4233 through the embedded IPython (only local variables were visible).
4241 through the embedded IPython (only local variables were visible).
4234
4242
4235 2003-01-14 Fernando Perez <fperez@colorado.edu>
4243 2003-01-14 Fernando Perez <fperez@colorado.edu>
4236
4244
4237 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4245 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4238 auto-calling to be a bit more conservative. Now it doesn't get
4246 auto-calling to be a bit more conservative. Now it doesn't get
4239 triggered if any of '!=()<>' are in the rest of the input line, to
4247 triggered if any of '!=()<>' are in the rest of the input line, to
4240 allow comparing callables. Thanks to Alex for the heads up.
4248 allow comparing callables. Thanks to Alex for the heads up.
4241
4249
4242 2003-01-07 Fernando Perez <fperez@colorado.edu>
4250 2003-01-07 Fernando Perez <fperez@colorado.edu>
4243
4251
4244 * IPython/genutils.py (page): fixed estimation of the number of
4252 * IPython/genutils.py (page): fixed estimation of the number of
4245 lines in a string to be paged to simply count newlines. This
4253 lines in a string to be paged to simply count newlines. This
4246 prevents over-guessing due to embedded escape sequences. A better
4254 prevents over-guessing due to embedded escape sequences. A better
4247 long-term solution would involve stripping out the control chars
4255 long-term solution would involve stripping out the control chars
4248 for the count, but it's potentially so expensive I just don't
4256 for the count, but it's potentially so expensive I just don't
4249 think it's worth doing.
4257 think it's worth doing.
4250
4258
4251 2002-12-19 *** Released version 0.2.14pre50
4259 2002-12-19 *** Released version 0.2.14pre50
4252
4260
4253 2002-12-19 Fernando Perez <fperez@colorado.edu>
4261 2002-12-19 Fernando Perez <fperez@colorado.edu>
4254
4262
4255 * tools/release (version): Changed release scripts to inform
4263 * tools/release (version): Changed release scripts to inform
4256 Andrea and build a NEWS file with a list of recent changes.
4264 Andrea and build a NEWS file with a list of recent changes.
4257
4265
4258 * IPython/ColorANSI.py (__all__): changed terminal detection
4266 * IPython/ColorANSI.py (__all__): changed terminal detection
4259 code. Seems to work better for xterms without breaking
4267 code. Seems to work better for xterms without breaking
4260 konsole. Will need more testing to determine if WinXP and Mac OSX
4268 konsole. Will need more testing to determine if WinXP and Mac OSX
4261 also work ok.
4269 also work ok.
4262
4270
4263 2002-12-18 *** Released version 0.2.14pre49
4271 2002-12-18 *** Released version 0.2.14pre49
4264
4272
4265 2002-12-18 Fernando Perez <fperez@colorado.edu>
4273 2002-12-18 Fernando Perez <fperez@colorado.edu>
4266
4274
4267 * Docs: added new info about Mac OSX, from Andrea.
4275 * Docs: added new info about Mac OSX, from Andrea.
4268
4276
4269 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4277 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4270 allow direct plotting of python strings whose format is the same
4278 allow direct plotting of python strings whose format is the same
4271 of gnuplot data files.
4279 of gnuplot data files.
4272
4280
4273 2002-12-16 Fernando Perez <fperez@colorado.edu>
4281 2002-12-16 Fernando Perez <fperez@colorado.edu>
4274
4282
4275 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4283 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4276 value of exit question to be acknowledged.
4284 value of exit question to be acknowledged.
4277
4285
4278 2002-12-03 Fernando Perez <fperez@colorado.edu>
4286 2002-12-03 Fernando Perez <fperez@colorado.edu>
4279
4287
4280 * IPython/ipmaker.py: removed generators, which had been added
4288 * IPython/ipmaker.py: removed generators, which had been added
4281 by mistake in an earlier debugging run. This was causing trouble
4289 by mistake in an earlier debugging run. This was causing trouble
4282 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4290 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4283 for pointing this out.
4291 for pointing this out.
4284
4292
4285 2002-11-17 Fernando Perez <fperez@colorado.edu>
4293 2002-11-17 Fernando Perez <fperez@colorado.edu>
4286
4294
4287 * Manual: updated the Gnuplot section.
4295 * Manual: updated the Gnuplot section.
4288
4296
4289 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4297 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4290 a much better split of what goes in Runtime and what goes in
4298 a much better split of what goes in Runtime and what goes in
4291 Interactive.
4299 Interactive.
4292
4300
4293 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4301 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4294 being imported from iplib.
4302 being imported from iplib.
4295
4303
4296 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4304 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4297 for command-passing. Now the global Gnuplot instance is called
4305 for command-passing. Now the global Gnuplot instance is called
4298 'gp' instead of 'g', which was really a far too fragile and
4306 'gp' instead of 'g', which was really a far too fragile and
4299 common name.
4307 common name.
4300
4308
4301 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4309 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4302 bounding boxes generated by Gnuplot for square plots.
4310 bounding boxes generated by Gnuplot for square plots.
4303
4311
4304 * IPython/genutils.py (popkey): new function added. I should
4312 * IPython/genutils.py (popkey): new function added. I should
4305 suggest this on c.l.py as a dict method, it seems useful.
4313 suggest this on c.l.py as a dict method, it seems useful.
4306
4314
4307 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4315 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4308 to transparently handle PostScript generation. MUCH better than
4316 to transparently handle PostScript generation. MUCH better than
4309 the previous plot_eps/replot_eps (which I removed now). The code
4317 the previous plot_eps/replot_eps (which I removed now). The code
4310 is also fairly clean and well documented now (including
4318 is also fairly clean and well documented now (including
4311 docstrings).
4319 docstrings).
4312
4320
4313 2002-11-13 Fernando Perez <fperez@colorado.edu>
4321 2002-11-13 Fernando Perez <fperez@colorado.edu>
4314
4322
4315 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4323 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4316 (inconsistent with options).
4324 (inconsistent with options).
4317
4325
4318 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4326 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4319 manually disabled, I don't know why. Fixed it.
4327 manually disabled, I don't know why. Fixed it.
4320 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4328 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4321 eps output.
4329 eps output.
4322
4330
4323 2002-11-12 Fernando Perez <fperez@colorado.edu>
4331 2002-11-12 Fernando Perez <fperez@colorado.edu>
4324
4332
4325 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4333 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4326 don't propagate up to caller. Fixes crash reported by François
4334 don't propagate up to caller. Fixes crash reported by François
4327 Pinard.
4335 Pinard.
4328
4336
4329 2002-11-09 Fernando Perez <fperez@colorado.edu>
4337 2002-11-09 Fernando Perez <fperez@colorado.edu>
4330
4338
4331 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4339 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4332 history file for new users.
4340 history file for new users.
4333 (make_IPython): fixed bug where initial install would leave the
4341 (make_IPython): fixed bug where initial install would leave the
4334 user running in the .ipython dir.
4342 user running in the .ipython dir.
4335 (make_IPython): fixed bug where config dir .ipython would be
4343 (make_IPython): fixed bug where config dir .ipython would be
4336 created regardless of the given -ipythondir option. Thanks to Cory
4344 created regardless of the given -ipythondir option. Thanks to Cory
4337 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4345 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4338
4346
4339 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4347 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4340 type confirmations. Will need to use it in all of IPython's code
4348 type confirmations. Will need to use it in all of IPython's code
4341 consistently.
4349 consistently.
4342
4350
4343 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4351 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4344 context to print 31 lines instead of the default 5. This will make
4352 context to print 31 lines instead of the default 5. This will make
4345 the crash reports extremely detailed in case the problem is in
4353 the crash reports extremely detailed in case the problem is in
4346 libraries I don't have access to.
4354 libraries I don't have access to.
4347
4355
4348 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4356 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4349 line of defense' code to still crash, but giving users fair
4357 line of defense' code to still crash, but giving users fair
4350 warning. I don't want internal errors to go unreported: if there's
4358 warning. I don't want internal errors to go unreported: if there's
4351 an internal problem, IPython should crash and generate a full
4359 an internal problem, IPython should crash and generate a full
4352 report.
4360 report.
4353
4361
4354 2002-11-08 Fernando Perez <fperez@colorado.edu>
4362 2002-11-08 Fernando Perez <fperez@colorado.edu>
4355
4363
4356 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4364 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4357 otherwise uncaught exceptions which can appear if people set
4365 otherwise uncaught exceptions which can appear if people set
4358 sys.stdout to something badly broken. Thanks to a crash report
4366 sys.stdout to something badly broken. Thanks to a crash report
4359 from henni-AT-mail.brainbot.com.
4367 from henni-AT-mail.brainbot.com.
4360
4368
4361 2002-11-04 Fernando Perez <fperez@colorado.edu>
4369 2002-11-04 Fernando Perez <fperez@colorado.edu>
4362
4370
4363 * IPython/iplib.py (InteractiveShell.interact): added
4371 * IPython/iplib.py (InteractiveShell.interact): added
4364 __IPYTHON__active to the builtins. It's a flag which goes on when
4372 __IPYTHON__active to the builtins. It's a flag which goes on when
4365 the interaction starts and goes off again when it stops. This
4373 the interaction starts and goes off again when it stops. This
4366 allows embedding code to detect being inside IPython. Before this
4374 allows embedding code to detect being inside IPython. Before this
4367 was done via __IPYTHON__, but that only shows that an IPython
4375 was done via __IPYTHON__, but that only shows that an IPython
4368 instance has been created.
4376 instance has been created.
4369
4377
4370 * IPython/Magic.py (Magic.magic_env): I realized that in a
4378 * IPython/Magic.py (Magic.magic_env): I realized that in a
4371 UserDict, instance.data holds the data as a normal dict. So I
4379 UserDict, instance.data holds the data as a normal dict. So I
4372 modified @env to return os.environ.data instead of rebuilding a
4380 modified @env to return os.environ.data instead of rebuilding a
4373 dict by hand.
4381 dict by hand.
4374
4382
4375 2002-11-02 Fernando Perez <fperez@colorado.edu>
4383 2002-11-02 Fernando Perez <fperez@colorado.edu>
4376
4384
4377 * IPython/genutils.py (warn): changed so that level 1 prints no
4385 * IPython/genutils.py (warn): changed so that level 1 prints no
4378 header. Level 2 is now the default (with 'WARNING' header, as
4386 header. Level 2 is now the default (with 'WARNING' header, as
4379 before). I think I tracked all places where changes were needed in
4387 before). I think I tracked all places where changes were needed in
4380 IPython, but outside code using the old level numbering may have
4388 IPython, but outside code using the old level numbering may have
4381 broken.
4389 broken.
4382
4390
4383 * IPython/iplib.py (InteractiveShell.runcode): added this to
4391 * IPython/iplib.py (InteractiveShell.runcode): added this to
4384 handle the tracebacks in SystemExit traps correctly. The previous
4392 handle the tracebacks in SystemExit traps correctly. The previous
4385 code (through interact) was printing more of the stack than
4393 code (through interact) was printing more of the stack than
4386 necessary, showing IPython internal code to the user.
4394 necessary, showing IPython internal code to the user.
4387
4395
4388 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4396 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4389 default. Now that the default at the confirmation prompt is yes,
4397 default. Now that the default at the confirmation prompt is yes,
4390 it's not so intrusive. François' argument that ipython sessions
4398 it's not so intrusive. François' argument that ipython sessions
4391 tend to be complex enough not to lose them from an accidental C-d,
4399 tend to be complex enough not to lose them from an accidental C-d,
4392 is a valid one.
4400 is a valid one.
4393
4401
4394 * IPython/iplib.py (InteractiveShell.interact): added a
4402 * IPython/iplib.py (InteractiveShell.interact): added a
4395 showtraceback() call to the SystemExit trap, and modified the exit
4403 showtraceback() call to the SystemExit trap, and modified the exit
4396 confirmation to have yes as the default.
4404 confirmation to have yes as the default.
4397
4405
4398 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4406 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4399 this file. It's been gone from the code for a long time, this was
4407 this file. It's been gone from the code for a long time, this was
4400 simply leftover junk.
4408 simply leftover junk.
4401
4409
4402 2002-11-01 Fernando Perez <fperez@colorado.edu>
4410 2002-11-01 Fernando Perez <fperez@colorado.edu>
4403
4411
4404 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4412 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4405 added. If set, IPython now traps EOF and asks for
4413 added. If set, IPython now traps EOF and asks for
4406 confirmation. After a request by François Pinard.
4414 confirmation. After a request by François Pinard.
4407
4415
4408 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4416 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4409 of @abort, and with a new (better) mechanism for handling the
4417 of @abort, and with a new (better) mechanism for handling the
4410 exceptions.
4418 exceptions.
4411
4419
4412 2002-10-27 Fernando Perez <fperez@colorado.edu>
4420 2002-10-27 Fernando Perez <fperez@colorado.edu>
4413
4421
4414 * IPython/usage.py (__doc__): updated the --help information and
4422 * IPython/usage.py (__doc__): updated the --help information and
4415 the ipythonrc file to indicate that -log generates
4423 the ipythonrc file to indicate that -log generates
4416 ./ipython.log. Also fixed the corresponding info in @logstart.
4424 ./ipython.log. Also fixed the corresponding info in @logstart.
4417 This and several other fixes in the manuals thanks to reports by
4425 This and several other fixes in the manuals thanks to reports by
4418 François Pinard <pinard-AT-iro.umontreal.ca>.
4426 François Pinard <pinard-AT-iro.umontreal.ca>.
4419
4427
4420 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4428 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4421 refer to @logstart (instead of @log, which doesn't exist).
4429 refer to @logstart (instead of @log, which doesn't exist).
4422
4430
4423 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4431 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4424 AttributeError crash. Thanks to Christopher Armstrong
4432 AttributeError crash. Thanks to Christopher Armstrong
4425 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4433 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4426 introduced recently (in 0.2.14pre37) with the fix to the eval
4434 introduced recently (in 0.2.14pre37) with the fix to the eval
4427 problem mentioned below.
4435 problem mentioned below.
4428
4436
4429 2002-10-17 Fernando Perez <fperez@colorado.edu>
4437 2002-10-17 Fernando Perez <fperez@colorado.edu>
4430
4438
4431 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4439 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4432 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4440 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4433
4441
4434 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4442 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4435 this function to fix a problem reported by Alex Schmolck. He saw
4443 this function to fix a problem reported by Alex Schmolck. He saw
4436 it with list comprehensions and generators, which were getting
4444 it with list comprehensions and generators, which were getting
4437 called twice. The real problem was an 'eval' call in testing for
4445 called twice. The real problem was an 'eval' call in testing for
4438 automagic which was evaluating the input line silently.
4446 automagic which was evaluating the input line silently.
4439
4447
4440 This is a potentially very nasty bug, if the input has side
4448 This is a potentially very nasty bug, if the input has side
4441 effects which must not be repeated. The code is much cleaner now,
4449 effects which must not be repeated. The code is much cleaner now,
4442 without any blanket 'except' left and with a regexp test for
4450 without any blanket 'except' left and with a regexp test for
4443 actual function names.
4451 actual function names.
4444
4452
4445 But an eval remains, which I'm not fully comfortable with. I just
4453 But an eval remains, which I'm not fully comfortable with. I just
4446 don't know how to find out if an expression could be a callable in
4454 don't know how to find out if an expression could be a callable in
4447 the user's namespace without doing an eval on the string. However
4455 the user's namespace without doing an eval on the string. However
4448 that string is now much more strictly checked so that no code
4456 that string is now much more strictly checked so that no code
4449 slips by, so the eval should only happen for things that can
4457 slips by, so the eval should only happen for things that can
4450 really be only function/method names.
4458 really be only function/method names.
4451
4459
4452 2002-10-15 Fernando Perez <fperez@colorado.edu>
4460 2002-10-15 Fernando Perez <fperez@colorado.edu>
4453
4461
4454 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4462 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4455 OSX information to main manual, removed README_Mac_OSX file from
4463 OSX information to main manual, removed README_Mac_OSX file from
4456 distribution. Also updated credits for recent additions.
4464 distribution. Also updated credits for recent additions.
4457
4465
4458 2002-10-10 Fernando Perez <fperez@colorado.edu>
4466 2002-10-10 Fernando Perez <fperez@colorado.edu>
4459
4467
4460 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4468 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4461 terminal-related issues. Many thanks to Andrea Riciputi
4469 terminal-related issues. Many thanks to Andrea Riciputi
4462 <andrea.riciputi-AT-libero.it> for writing it.
4470 <andrea.riciputi-AT-libero.it> for writing it.
4463
4471
4464 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4472 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4465 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4473 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4466
4474
4467 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4475 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4468 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4476 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4469 <syver-en-AT-online.no> who both submitted patches for this problem.
4477 <syver-en-AT-online.no> who both submitted patches for this problem.
4470
4478
4471 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4479 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4472 global embedding to make sure that things don't overwrite user
4480 global embedding to make sure that things don't overwrite user
4473 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4481 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4474
4482
4475 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4483 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4476 compatibility. Thanks to Hayden Callow
4484 compatibility. Thanks to Hayden Callow
4477 <h.callow-AT-elec.canterbury.ac.nz>
4485 <h.callow-AT-elec.canterbury.ac.nz>
4478
4486
4479 2002-10-04 Fernando Perez <fperez@colorado.edu>
4487 2002-10-04 Fernando Perez <fperez@colorado.edu>
4480
4488
4481 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4489 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4482 Gnuplot.File objects.
4490 Gnuplot.File objects.
4483
4491
4484 2002-07-23 Fernando Perez <fperez@colorado.edu>
4492 2002-07-23 Fernando Perez <fperez@colorado.edu>
4485
4493
4486 * IPython/genutils.py (timing): Added timings() and timing() for
4494 * IPython/genutils.py (timing): Added timings() and timing() for
4487 quick access to the most commonly needed data, the execution
4495 quick access to the most commonly needed data, the execution
4488 times. Old timing() renamed to timings_out().
4496 times. Old timing() renamed to timings_out().
4489
4497
4490 2002-07-18 Fernando Perez <fperez@colorado.edu>
4498 2002-07-18 Fernando Perez <fperez@colorado.edu>
4491
4499
4492 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4500 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4493 bug with nested instances disrupting the parent's tab completion.
4501 bug with nested instances disrupting the parent's tab completion.
4494
4502
4495 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4503 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4496 all_completions code to begin the emacs integration.
4504 all_completions code to begin the emacs integration.
4497
4505
4498 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4506 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4499 argument to allow titling individual arrays when plotting.
4507 argument to allow titling individual arrays when plotting.
4500
4508
4501 2002-07-15 Fernando Perez <fperez@colorado.edu>
4509 2002-07-15 Fernando Perez <fperez@colorado.edu>
4502
4510
4503 * setup.py (make_shortcut): changed to retrieve the value of
4511 * setup.py (make_shortcut): changed to retrieve the value of
4504 'Program Files' directory from the registry (this value changes in
4512 'Program Files' directory from the registry (this value changes in
4505 non-english versions of Windows). Thanks to Thomas Fanslau
4513 non-english versions of Windows). Thanks to Thomas Fanslau
4506 <tfanslau-AT-gmx.de> for the report.
4514 <tfanslau-AT-gmx.de> for the report.
4507
4515
4508 2002-07-10 Fernando Perez <fperez@colorado.edu>
4516 2002-07-10 Fernando Perez <fperez@colorado.edu>
4509
4517
4510 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4518 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4511 a bug in pdb, which crashes if a line with only whitespace is
4519 a bug in pdb, which crashes if a line with only whitespace is
4512 entered. Bug report submitted to sourceforge.
4520 entered. Bug report submitted to sourceforge.
4513
4521
4514 2002-07-09 Fernando Perez <fperez@colorado.edu>
4522 2002-07-09 Fernando Perez <fperez@colorado.edu>
4515
4523
4516 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4524 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4517 reporting exceptions (it's a bug in inspect.py, I just set a
4525 reporting exceptions (it's a bug in inspect.py, I just set a
4518 workaround).
4526 workaround).
4519
4527
4520 2002-07-08 Fernando Perez <fperez@colorado.edu>
4528 2002-07-08 Fernando Perez <fperez@colorado.edu>
4521
4529
4522 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4530 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4523 __IPYTHON__ in __builtins__ to show up in user_ns.
4531 __IPYTHON__ in __builtins__ to show up in user_ns.
4524
4532
4525 2002-07-03 Fernando Perez <fperez@colorado.edu>
4533 2002-07-03 Fernando Perez <fperez@colorado.edu>
4526
4534
4527 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4535 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4528 name from @gp_set_instance to @gp_set_default.
4536 name from @gp_set_instance to @gp_set_default.
4529
4537
4530 * IPython/ipmaker.py (make_IPython): default editor value set to
4538 * IPython/ipmaker.py (make_IPython): default editor value set to
4531 '0' (a string), to match the rc file. Otherwise will crash when
4539 '0' (a string), to match the rc file. Otherwise will crash when
4532 .strip() is called on it.
4540 .strip() is called on it.
4533
4541
4534
4542
4535 2002-06-28 Fernando Perez <fperez@colorado.edu>
4543 2002-06-28 Fernando Perez <fperez@colorado.edu>
4536
4544
4537 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4545 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4538 of files in current directory when a file is executed via
4546 of files in current directory when a file is executed via
4539 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4547 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4540
4548
4541 * setup.py (manfiles): fix for rpm builds, submitted by RA
4549 * setup.py (manfiles): fix for rpm builds, submitted by RA
4542 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4550 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4543
4551
4544 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4552 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4545 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4553 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4546 string!). A. Schmolck caught this one.
4554 string!). A. Schmolck caught this one.
4547
4555
4548 2002-06-27 Fernando Perez <fperez@colorado.edu>
4556 2002-06-27 Fernando Perez <fperez@colorado.edu>
4549
4557
4550 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4558 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4551 defined files at the cmd line. __name__ wasn't being set to
4559 defined files at the cmd line. __name__ wasn't being set to
4552 __main__.
4560 __main__.
4553
4561
4554 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4562 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4555 regular lists and tuples besides Numeric arrays.
4563 regular lists and tuples besides Numeric arrays.
4556
4564
4557 * IPython/Prompts.py (CachedOutput.__call__): Added output
4565 * IPython/Prompts.py (CachedOutput.__call__): Added output
4558 supression for input ending with ';'. Similar to Mathematica and
4566 supression for input ending with ';'. Similar to Mathematica and
4559 Matlab. The _* vars and Out[] list are still updated, just like
4567 Matlab. The _* vars and Out[] list are still updated, just like
4560 Mathematica behaves.
4568 Mathematica behaves.
4561
4569
4562 2002-06-25 Fernando Perez <fperez@colorado.edu>
4570 2002-06-25 Fernando Perez <fperez@colorado.edu>
4563
4571
4564 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4572 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4565 .ini extensions for profiels under Windows.
4573 .ini extensions for profiels under Windows.
4566
4574
4567 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4575 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4568 string form. Fix contributed by Alexander Schmolck
4576 string form. Fix contributed by Alexander Schmolck
4569 <a.schmolck-AT-gmx.net>
4577 <a.schmolck-AT-gmx.net>
4570
4578
4571 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4579 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4572 pre-configured Gnuplot instance.
4580 pre-configured Gnuplot instance.
4573
4581
4574 2002-06-21 Fernando Perez <fperez@colorado.edu>
4582 2002-06-21 Fernando Perez <fperez@colorado.edu>
4575
4583
4576 * IPython/numutils.py (exp_safe): new function, works around the
4584 * IPython/numutils.py (exp_safe): new function, works around the
4577 underflow problems in Numeric.
4585 underflow problems in Numeric.
4578 (log2): New fn. Safe log in base 2: returns exact integer answer
4586 (log2): New fn. Safe log in base 2: returns exact integer answer
4579 for exact integer powers of 2.
4587 for exact integer powers of 2.
4580
4588
4581 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4589 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4582 properly.
4590 properly.
4583
4591
4584 2002-06-20 Fernando Perez <fperez@colorado.edu>
4592 2002-06-20 Fernando Perez <fperez@colorado.edu>
4585
4593
4586 * IPython/genutils.py (timing): new function like
4594 * IPython/genutils.py (timing): new function like
4587 Mathematica's. Similar to time_test, but returns more info.
4595 Mathematica's. Similar to time_test, but returns more info.
4588
4596
4589 2002-06-18 Fernando Perez <fperez@colorado.edu>
4597 2002-06-18 Fernando Perez <fperez@colorado.edu>
4590
4598
4591 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4599 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4592 according to Mike Heeter's suggestions.
4600 according to Mike Heeter's suggestions.
4593
4601
4594 2002-06-16 Fernando Perez <fperez@colorado.edu>
4602 2002-06-16 Fernando Perez <fperez@colorado.edu>
4595
4603
4596 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4604 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4597 system. GnuplotMagic is gone as a user-directory option. New files
4605 system. GnuplotMagic is gone as a user-directory option. New files
4598 make it easier to use all the gnuplot stuff both from external
4606 make it easier to use all the gnuplot stuff both from external
4599 programs as well as from IPython. Had to rewrite part of
4607 programs as well as from IPython. Had to rewrite part of
4600 hardcopy() b/c of a strange bug: often the ps files simply don't
4608 hardcopy() b/c of a strange bug: often the ps files simply don't
4601 get created, and require a repeat of the command (often several
4609 get created, and require a repeat of the command (often several
4602 times).
4610 times).
4603
4611
4604 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4612 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4605 resolve output channel at call time, so that if sys.stderr has
4613 resolve output channel at call time, so that if sys.stderr has
4606 been redirected by user this gets honored.
4614 been redirected by user this gets honored.
4607
4615
4608 2002-06-13 Fernando Perez <fperez@colorado.edu>
4616 2002-06-13 Fernando Perez <fperez@colorado.edu>
4609
4617
4610 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4618 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4611 IPShell. Kept a copy with the old names to avoid breaking people's
4619 IPShell. Kept a copy with the old names to avoid breaking people's
4612 embedded code.
4620 embedded code.
4613
4621
4614 * IPython/ipython: simplified it to the bare minimum after
4622 * IPython/ipython: simplified it to the bare minimum after
4615 Holger's suggestions. Added info about how to use it in
4623 Holger's suggestions. Added info about how to use it in
4616 PYTHONSTARTUP.
4624 PYTHONSTARTUP.
4617
4625
4618 * IPython/Shell.py (IPythonShell): changed the options passing
4626 * IPython/Shell.py (IPythonShell): changed the options passing
4619 from a string with funky %s replacements to a straight list. Maybe
4627 from a string with funky %s replacements to a straight list. Maybe
4620 a bit more typing, but it follows sys.argv conventions, so there's
4628 a bit more typing, but it follows sys.argv conventions, so there's
4621 less special-casing to remember.
4629 less special-casing to remember.
4622
4630
4623 2002-06-12 Fernando Perez <fperez@colorado.edu>
4631 2002-06-12 Fernando Perez <fperez@colorado.edu>
4624
4632
4625 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4633 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4626 command. Thanks to a suggestion by Mike Heeter.
4634 command. Thanks to a suggestion by Mike Heeter.
4627 (Magic.magic_pfile): added behavior to look at filenames if given
4635 (Magic.magic_pfile): added behavior to look at filenames if given
4628 arg is not a defined object.
4636 arg is not a defined object.
4629 (Magic.magic_save): New @save function to save code snippets. Also
4637 (Magic.magic_save): New @save function to save code snippets. Also
4630 a Mike Heeter idea.
4638 a Mike Heeter idea.
4631
4639
4632 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4640 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4633 plot() and replot(). Much more convenient now, especially for
4641 plot() and replot(). Much more convenient now, especially for
4634 interactive use.
4642 interactive use.
4635
4643
4636 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4644 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4637 filenames.
4645 filenames.
4638
4646
4639 2002-06-02 Fernando Perez <fperez@colorado.edu>
4647 2002-06-02 Fernando Perez <fperez@colorado.edu>
4640
4648
4641 * IPython/Struct.py (Struct.__init__): modified to admit
4649 * IPython/Struct.py (Struct.__init__): modified to admit
4642 initialization via another struct.
4650 initialization via another struct.
4643
4651
4644 * IPython/genutils.py (SystemExec.__init__): New stateful
4652 * IPython/genutils.py (SystemExec.__init__): New stateful
4645 interface to xsys and bq. Useful for writing system scripts.
4653 interface to xsys and bq. Useful for writing system scripts.
4646
4654
4647 2002-05-30 Fernando Perez <fperez@colorado.edu>
4655 2002-05-30 Fernando Perez <fperez@colorado.edu>
4648
4656
4649 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4657 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4650 documents. This will make the user download smaller (it's getting
4658 documents. This will make the user download smaller (it's getting
4651 too big).
4659 too big).
4652
4660
4653 2002-05-29 Fernando Perez <fperez@colorado.edu>
4661 2002-05-29 Fernando Perez <fperez@colorado.edu>
4654
4662
4655 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4663 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4656 fix problems with shelve and pickle. Seems to work, but I don't
4664 fix problems with shelve and pickle. Seems to work, but I don't
4657 know if corner cases break it. Thanks to Mike Heeter
4665 know if corner cases break it. Thanks to Mike Heeter
4658 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4666 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4659
4667
4660 2002-05-24 Fernando Perez <fperez@colorado.edu>
4668 2002-05-24 Fernando Perez <fperez@colorado.edu>
4661
4669
4662 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4670 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4663 macros having broken.
4671 macros having broken.
4664
4672
4665 2002-05-21 Fernando Perez <fperez@colorado.edu>
4673 2002-05-21 Fernando Perez <fperez@colorado.edu>
4666
4674
4667 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4675 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4668 introduced logging bug: all history before logging started was
4676 introduced logging bug: all history before logging started was
4669 being written one character per line! This came from the redesign
4677 being written one character per line! This came from the redesign
4670 of the input history as a special list which slices to strings,
4678 of the input history as a special list which slices to strings,
4671 not to lists.
4679 not to lists.
4672
4680
4673 2002-05-20 Fernando Perez <fperez@colorado.edu>
4681 2002-05-20 Fernando Perez <fperez@colorado.edu>
4674
4682
4675 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4683 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4676 be an attribute of all classes in this module. The design of these
4684 be an attribute of all classes in this module. The design of these
4677 classes needs some serious overhauling.
4685 classes needs some serious overhauling.
4678
4686
4679 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4687 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4680 which was ignoring '_' in option names.
4688 which was ignoring '_' in option names.
4681
4689
4682 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4690 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4683 'Verbose_novars' to 'Context' and made it the new default. It's a
4691 'Verbose_novars' to 'Context' and made it the new default. It's a
4684 bit more readable and also safer than verbose.
4692 bit more readable and also safer than verbose.
4685
4693
4686 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4694 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4687 triple-quoted strings.
4695 triple-quoted strings.
4688
4696
4689 * IPython/OInspect.py (__all__): new module exposing the object
4697 * IPython/OInspect.py (__all__): new module exposing the object
4690 introspection facilities. Now the corresponding magics are dummy
4698 introspection facilities. Now the corresponding magics are dummy
4691 wrappers around this. Having this module will make it much easier
4699 wrappers around this. Having this module will make it much easier
4692 to put these functions into our modified pdb.
4700 to put these functions into our modified pdb.
4693 This new object inspector system uses the new colorizing module,
4701 This new object inspector system uses the new colorizing module,
4694 so source code and other things are nicely syntax highlighted.
4702 so source code and other things are nicely syntax highlighted.
4695
4703
4696 2002-05-18 Fernando Perez <fperez@colorado.edu>
4704 2002-05-18 Fernando Perez <fperez@colorado.edu>
4697
4705
4698 * IPython/ColorANSI.py: Split the coloring tools into a separate
4706 * IPython/ColorANSI.py: Split the coloring tools into a separate
4699 module so I can use them in other code easier (they were part of
4707 module so I can use them in other code easier (they were part of
4700 ultraTB).
4708 ultraTB).
4701
4709
4702 2002-05-17 Fernando Perez <fperez@colorado.edu>
4710 2002-05-17 Fernando Perez <fperez@colorado.edu>
4703
4711
4704 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4712 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4705 fixed it to set the global 'g' also to the called instance, as
4713 fixed it to set the global 'g' also to the called instance, as
4706 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4714 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4707 user's 'g' variables).
4715 user's 'g' variables).
4708
4716
4709 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4717 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4710 global variables (aliases to _ih,_oh) so that users which expect
4718 global variables (aliases to _ih,_oh) so that users which expect
4711 In[5] or Out[7] to work aren't unpleasantly surprised.
4719 In[5] or Out[7] to work aren't unpleasantly surprised.
4712 (InputList.__getslice__): new class to allow executing slices of
4720 (InputList.__getslice__): new class to allow executing slices of
4713 input history directly. Very simple class, complements the use of
4721 input history directly. Very simple class, complements the use of
4714 macros.
4722 macros.
4715
4723
4716 2002-05-16 Fernando Perez <fperez@colorado.edu>
4724 2002-05-16 Fernando Perez <fperez@colorado.edu>
4717
4725
4718 * setup.py (docdirbase): make doc directory be just doc/IPython
4726 * setup.py (docdirbase): make doc directory be just doc/IPython
4719 without version numbers, it will reduce clutter for users.
4727 without version numbers, it will reduce clutter for users.
4720
4728
4721 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4729 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4722 execfile call to prevent possible memory leak. See for details:
4730 execfile call to prevent possible memory leak. See for details:
4723 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4731 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4724
4732
4725 2002-05-15 Fernando Perez <fperez@colorado.edu>
4733 2002-05-15 Fernando Perez <fperez@colorado.edu>
4726
4734
4727 * IPython/Magic.py (Magic.magic_psource): made the object
4735 * IPython/Magic.py (Magic.magic_psource): made the object
4728 introspection names be more standard: pdoc, pdef, pfile and
4736 introspection names be more standard: pdoc, pdef, pfile and
4729 psource. They all print/page their output, and it makes
4737 psource. They all print/page their output, and it makes
4730 remembering them easier. Kept old names for compatibility as
4738 remembering them easier. Kept old names for compatibility as
4731 aliases.
4739 aliases.
4732
4740
4733 2002-05-14 Fernando Perez <fperez@colorado.edu>
4741 2002-05-14 Fernando Perez <fperez@colorado.edu>
4734
4742
4735 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4743 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4736 what the mouse problem was. The trick is to use gnuplot with temp
4744 what the mouse problem was. The trick is to use gnuplot with temp
4737 files and NOT with pipes (for data communication), because having
4745 files and NOT with pipes (for data communication), because having
4738 both pipes and the mouse on is bad news.
4746 both pipes and the mouse on is bad news.
4739
4747
4740 2002-05-13 Fernando Perez <fperez@colorado.edu>
4748 2002-05-13 Fernando Perez <fperez@colorado.edu>
4741
4749
4742 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4750 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4743 bug. Information would be reported about builtins even when
4751 bug. Information would be reported about builtins even when
4744 user-defined functions overrode them.
4752 user-defined functions overrode them.
4745
4753
4746 2002-05-11 Fernando Perez <fperez@colorado.edu>
4754 2002-05-11 Fernando Perez <fperez@colorado.edu>
4747
4755
4748 * IPython/__init__.py (__all__): removed FlexCompleter from
4756 * IPython/__init__.py (__all__): removed FlexCompleter from
4749 __all__ so that things don't fail in platforms without readline.
4757 __all__ so that things don't fail in platforms without readline.
4750
4758
4751 2002-05-10 Fernando Perez <fperez@colorado.edu>
4759 2002-05-10 Fernando Perez <fperez@colorado.edu>
4752
4760
4753 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4761 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4754 it requires Numeric, effectively making Numeric a dependency for
4762 it requires Numeric, effectively making Numeric a dependency for
4755 IPython.
4763 IPython.
4756
4764
4757 * Released 0.2.13
4765 * Released 0.2.13
4758
4766
4759 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4767 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4760 profiler interface. Now all the major options from the profiler
4768 profiler interface. Now all the major options from the profiler
4761 module are directly supported in IPython, both for single
4769 module are directly supported in IPython, both for single
4762 expressions (@prun) and for full programs (@run -p).
4770 expressions (@prun) and for full programs (@run -p).
4763
4771
4764 2002-05-09 Fernando Perez <fperez@colorado.edu>
4772 2002-05-09 Fernando Perez <fperez@colorado.edu>
4765
4773
4766 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4774 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4767 magic properly formatted for screen.
4775 magic properly formatted for screen.
4768
4776
4769 * setup.py (make_shortcut): Changed things to put pdf version in
4777 * setup.py (make_shortcut): Changed things to put pdf version in
4770 doc/ instead of doc/manual (had to change lyxport a bit).
4778 doc/ instead of doc/manual (had to change lyxport a bit).
4771
4779
4772 * IPython/Magic.py (Profile.string_stats): made profile runs go
4780 * IPython/Magic.py (Profile.string_stats): made profile runs go
4773 through pager (they are long and a pager allows searching, saving,
4781 through pager (they are long and a pager allows searching, saving,
4774 etc.)
4782 etc.)
4775
4783
4776 2002-05-08 Fernando Perez <fperez@colorado.edu>
4784 2002-05-08 Fernando Perez <fperez@colorado.edu>
4777
4785
4778 * Released 0.2.12
4786 * Released 0.2.12
4779
4787
4780 2002-05-06 Fernando Perez <fperez@colorado.edu>
4788 2002-05-06 Fernando Perez <fperez@colorado.edu>
4781
4789
4782 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4790 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4783 introduced); 'hist n1 n2' was broken.
4791 introduced); 'hist n1 n2' was broken.
4784 (Magic.magic_pdb): added optional on/off arguments to @pdb
4792 (Magic.magic_pdb): added optional on/off arguments to @pdb
4785 (Magic.magic_run): added option -i to @run, which executes code in
4793 (Magic.magic_run): added option -i to @run, which executes code in
4786 the IPython namespace instead of a clean one. Also added @irun as
4794 the IPython namespace instead of a clean one. Also added @irun as
4787 an alias to @run -i.
4795 an alias to @run -i.
4788
4796
4789 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4797 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4790 fixed (it didn't really do anything, the namespaces were wrong).
4798 fixed (it didn't really do anything, the namespaces were wrong).
4791
4799
4792 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4800 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4793
4801
4794 * IPython/__init__.py (__all__): Fixed package namespace, now
4802 * IPython/__init__.py (__all__): Fixed package namespace, now
4795 'import IPython' does give access to IPython.<all> as
4803 'import IPython' does give access to IPython.<all> as
4796 expected. Also renamed __release__ to Release.
4804 expected. Also renamed __release__ to Release.
4797
4805
4798 * IPython/Debugger.py (__license__): created new Pdb class which
4806 * IPython/Debugger.py (__license__): created new Pdb class which
4799 functions like a drop-in for the normal pdb.Pdb but does NOT
4807 functions like a drop-in for the normal pdb.Pdb but does NOT
4800 import readline by default. This way it doesn't muck up IPython's
4808 import readline by default. This way it doesn't muck up IPython's
4801 readline handling, and now tab-completion finally works in the
4809 readline handling, and now tab-completion finally works in the
4802 debugger -- sort of. It completes things globally visible, but the
4810 debugger -- sort of. It completes things globally visible, but the
4803 completer doesn't track the stack as pdb walks it. That's a bit
4811 completer doesn't track the stack as pdb walks it. That's a bit
4804 tricky, and I'll have to implement it later.
4812 tricky, and I'll have to implement it later.
4805
4813
4806 2002-05-05 Fernando Perez <fperez@colorado.edu>
4814 2002-05-05 Fernando Perez <fperez@colorado.edu>
4807
4815
4808 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4816 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4809 magic docstrings when printed via ? (explicit \'s were being
4817 magic docstrings when printed via ? (explicit \'s were being
4810 printed).
4818 printed).
4811
4819
4812 * IPython/ipmaker.py (make_IPython): fixed namespace
4820 * IPython/ipmaker.py (make_IPython): fixed namespace
4813 identification bug. Now variables loaded via logs or command-line
4821 identification bug. Now variables loaded via logs or command-line
4814 files are recognized in the interactive namespace by @who.
4822 files are recognized in the interactive namespace by @who.
4815
4823
4816 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4824 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4817 log replay system stemming from the string form of Structs.
4825 log replay system stemming from the string form of Structs.
4818
4826
4819 * IPython/Magic.py (Macro.__init__): improved macros to properly
4827 * IPython/Magic.py (Macro.__init__): improved macros to properly
4820 handle magic commands in them.
4828 handle magic commands in them.
4821 (Magic.magic_logstart): usernames are now expanded so 'logstart
4829 (Magic.magic_logstart): usernames are now expanded so 'logstart
4822 ~/mylog' now works.
4830 ~/mylog' now works.
4823
4831
4824 * IPython/iplib.py (complete): fixed bug where paths starting with
4832 * IPython/iplib.py (complete): fixed bug where paths starting with
4825 '/' would be completed as magic names.
4833 '/' would be completed as magic names.
4826
4834
4827 2002-05-04 Fernando Perez <fperez@colorado.edu>
4835 2002-05-04 Fernando Perez <fperez@colorado.edu>
4828
4836
4829 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4837 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4830 allow running full programs under the profiler's control.
4838 allow running full programs under the profiler's control.
4831
4839
4832 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4840 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4833 mode to report exceptions verbosely but without formatting
4841 mode to report exceptions verbosely but without formatting
4834 variables. This addresses the issue of ipython 'freezing' (it's
4842 variables. This addresses the issue of ipython 'freezing' (it's
4835 not frozen, but caught in an expensive formatting loop) when huge
4843 not frozen, but caught in an expensive formatting loop) when huge
4836 variables are in the context of an exception.
4844 variables are in the context of an exception.
4837 (VerboseTB.text): Added '--->' markers at line where exception was
4845 (VerboseTB.text): Added '--->' markers at line where exception was
4838 triggered. Much clearer to read, especially in NoColor modes.
4846 triggered. Much clearer to read, especially in NoColor modes.
4839
4847
4840 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4848 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4841 implemented in reverse when changing to the new parse_options().
4849 implemented in reverse when changing to the new parse_options().
4842
4850
4843 2002-05-03 Fernando Perez <fperez@colorado.edu>
4851 2002-05-03 Fernando Perez <fperez@colorado.edu>
4844
4852
4845 * IPython/Magic.py (Magic.parse_options): new function so that
4853 * IPython/Magic.py (Magic.parse_options): new function so that
4846 magics can parse options easier.
4854 magics can parse options easier.
4847 (Magic.magic_prun): new function similar to profile.run(),
4855 (Magic.magic_prun): new function similar to profile.run(),
4848 suggested by Chris Hart.
4856 suggested by Chris Hart.
4849 (Magic.magic_cd): fixed behavior so that it only changes if
4857 (Magic.magic_cd): fixed behavior so that it only changes if
4850 directory actually is in history.
4858 directory actually is in history.
4851
4859
4852 * IPython/usage.py (__doc__): added information about potential
4860 * IPython/usage.py (__doc__): added information about potential
4853 slowness of Verbose exception mode when there are huge data
4861 slowness of Verbose exception mode when there are huge data
4854 structures to be formatted (thanks to Archie Paulson).
4862 structures to be formatted (thanks to Archie Paulson).
4855
4863
4856 * IPython/ipmaker.py (make_IPython): Changed default logging
4864 * IPython/ipmaker.py (make_IPython): Changed default logging
4857 (when simply called with -log) to use curr_dir/ipython.log in
4865 (when simply called with -log) to use curr_dir/ipython.log in
4858 rotate mode. Fixed crash which was occuring with -log before
4866 rotate mode. Fixed crash which was occuring with -log before
4859 (thanks to Jim Boyle).
4867 (thanks to Jim Boyle).
4860
4868
4861 2002-05-01 Fernando Perez <fperez@colorado.edu>
4869 2002-05-01 Fernando Perez <fperez@colorado.edu>
4862
4870
4863 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4871 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4864 was nasty -- though somewhat of a corner case).
4872 was nasty -- though somewhat of a corner case).
4865
4873
4866 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4874 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4867 text (was a bug).
4875 text (was a bug).
4868
4876
4869 2002-04-30 Fernando Perez <fperez@colorado.edu>
4877 2002-04-30 Fernando Perez <fperez@colorado.edu>
4870
4878
4871 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4879 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4872 a print after ^D or ^C from the user so that the In[] prompt
4880 a print after ^D or ^C from the user so that the In[] prompt
4873 doesn't over-run the gnuplot one.
4881 doesn't over-run the gnuplot one.
4874
4882
4875 2002-04-29 Fernando Perez <fperez@colorado.edu>
4883 2002-04-29 Fernando Perez <fperez@colorado.edu>
4876
4884
4877 * Released 0.2.10
4885 * Released 0.2.10
4878
4886
4879 * IPython/__release__.py (version): get date dynamically.
4887 * IPython/__release__.py (version): get date dynamically.
4880
4888
4881 * Misc. documentation updates thanks to Arnd's comments. Also ran
4889 * Misc. documentation updates thanks to Arnd's comments. Also ran
4882 a full spellcheck on the manual (hadn't been done in a while).
4890 a full spellcheck on the manual (hadn't been done in a while).
4883
4891
4884 2002-04-27 Fernando Perez <fperez@colorado.edu>
4892 2002-04-27 Fernando Perez <fperez@colorado.edu>
4885
4893
4886 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4894 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4887 starting a log in mid-session would reset the input history list.
4895 starting a log in mid-session would reset the input history list.
4888
4896
4889 2002-04-26 Fernando Perez <fperez@colorado.edu>
4897 2002-04-26 Fernando Perez <fperez@colorado.edu>
4890
4898
4891 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4899 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4892 all files were being included in an update. Now anything in
4900 all files were being included in an update. Now anything in
4893 UserConfig that matches [A-Za-z]*.py will go (this excludes
4901 UserConfig that matches [A-Za-z]*.py will go (this excludes
4894 __init__.py)
4902 __init__.py)
4895
4903
4896 2002-04-25 Fernando Perez <fperez@colorado.edu>
4904 2002-04-25 Fernando Perez <fperez@colorado.edu>
4897
4905
4898 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4906 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4899 to __builtins__ so that any form of embedded or imported code can
4907 to __builtins__ so that any form of embedded or imported code can
4900 test for being inside IPython.
4908 test for being inside IPython.
4901
4909
4902 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4910 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4903 changed to GnuplotMagic because it's now an importable module,
4911 changed to GnuplotMagic because it's now an importable module,
4904 this makes the name follow that of the standard Gnuplot module.
4912 this makes the name follow that of the standard Gnuplot module.
4905 GnuplotMagic can now be loaded at any time in mid-session.
4913 GnuplotMagic can now be loaded at any time in mid-session.
4906
4914
4907 2002-04-24 Fernando Perez <fperez@colorado.edu>
4915 2002-04-24 Fernando Perez <fperez@colorado.edu>
4908
4916
4909 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4917 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4910 the globals (IPython has its own namespace) and the
4918 the globals (IPython has its own namespace) and the
4911 PhysicalQuantity stuff is much better anyway.
4919 PhysicalQuantity stuff is much better anyway.
4912
4920
4913 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4921 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4914 embedding example to standard user directory for
4922 embedding example to standard user directory for
4915 distribution. Also put it in the manual.
4923 distribution. Also put it in the manual.
4916
4924
4917 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4925 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4918 instance as first argument (so it doesn't rely on some obscure
4926 instance as first argument (so it doesn't rely on some obscure
4919 hidden global).
4927 hidden global).
4920
4928
4921 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4929 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4922 delimiters. While it prevents ().TAB from working, it allows
4930 delimiters. While it prevents ().TAB from working, it allows
4923 completions in open (... expressions. This is by far a more common
4931 completions in open (... expressions. This is by far a more common
4924 case.
4932 case.
4925
4933
4926 2002-04-23 Fernando Perez <fperez@colorado.edu>
4934 2002-04-23 Fernando Perez <fperez@colorado.edu>
4927
4935
4928 * IPython/Extensions/InterpreterPasteInput.py: new
4936 * IPython/Extensions/InterpreterPasteInput.py: new
4929 syntax-processing module for pasting lines with >>> or ... at the
4937 syntax-processing module for pasting lines with >>> or ... at the
4930 start.
4938 start.
4931
4939
4932 * IPython/Extensions/PhysicalQ_Interactive.py
4940 * IPython/Extensions/PhysicalQ_Interactive.py
4933 (PhysicalQuantityInteractive.__int__): fixed to work with either
4941 (PhysicalQuantityInteractive.__int__): fixed to work with either
4934 Numeric or math.
4942 Numeric or math.
4935
4943
4936 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4944 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4937 provided profiles. Now we have:
4945 provided profiles. Now we have:
4938 -math -> math module as * and cmath with its own namespace.
4946 -math -> math module as * and cmath with its own namespace.
4939 -numeric -> Numeric as *, plus gnuplot & grace
4947 -numeric -> Numeric as *, plus gnuplot & grace
4940 -physics -> same as before
4948 -physics -> same as before
4941
4949
4942 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4950 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4943 user-defined magics wouldn't be found by @magic if they were
4951 user-defined magics wouldn't be found by @magic if they were
4944 defined as class methods. Also cleaned up the namespace search
4952 defined as class methods. Also cleaned up the namespace search
4945 logic and the string building (to use %s instead of many repeated
4953 logic and the string building (to use %s instead of many repeated
4946 string adds).
4954 string adds).
4947
4955
4948 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4956 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4949 of user-defined magics to operate with class methods (cleaner, in
4957 of user-defined magics to operate with class methods (cleaner, in
4950 line with the gnuplot code).
4958 line with the gnuplot code).
4951
4959
4952 2002-04-22 Fernando Perez <fperez@colorado.edu>
4960 2002-04-22 Fernando Perez <fperez@colorado.edu>
4953
4961
4954 * setup.py: updated dependency list so that manual is updated when
4962 * setup.py: updated dependency list so that manual is updated when
4955 all included files change.
4963 all included files change.
4956
4964
4957 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4965 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4958 the delimiter removal option (the fix is ugly right now).
4966 the delimiter removal option (the fix is ugly right now).
4959
4967
4960 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4968 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4961 all of the math profile (quicker loading, no conflict between
4969 all of the math profile (quicker loading, no conflict between
4962 g-9.8 and g-gnuplot).
4970 g-9.8 and g-gnuplot).
4963
4971
4964 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4972 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4965 name of post-mortem files to IPython_crash_report.txt.
4973 name of post-mortem files to IPython_crash_report.txt.
4966
4974
4967 * Cleanup/update of the docs. Added all the new readline info and
4975 * Cleanup/update of the docs. Added all the new readline info and
4968 formatted all lists as 'real lists'.
4976 formatted all lists as 'real lists'.
4969
4977
4970 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4978 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4971 tab-completion options, since the full readline parse_and_bind is
4979 tab-completion options, since the full readline parse_and_bind is
4972 now accessible.
4980 now accessible.
4973
4981
4974 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4982 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4975 handling of readline options. Now users can specify any string to
4983 handling of readline options. Now users can specify any string to
4976 be passed to parse_and_bind(), as well as the delimiters to be
4984 be passed to parse_and_bind(), as well as the delimiters to be
4977 removed.
4985 removed.
4978 (InteractiveShell.__init__): Added __name__ to the global
4986 (InteractiveShell.__init__): Added __name__ to the global
4979 namespace so that things like Itpl which rely on its existence
4987 namespace so that things like Itpl which rely on its existence
4980 don't crash.
4988 don't crash.
4981 (InteractiveShell._prefilter): Defined the default with a _ so
4989 (InteractiveShell._prefilter): Defined the default with a _ so
4982 that prefilter() is easier to override, while the default one
4990 that prefilter() is easier to override, while the default one
4983 remains available.
4991 remains available.
4984
4992
4985 2002-04-18 Fernando Perez <fperez@colorado.edu>
4993 2002-04-18 Fernando Perez <fperez@colorado.edu>
4986
4994
4987 * Added information about pdb in the docs.
4995 * Added information about pdb in the docs.
4988
4996
4989 2002-04-17 Fernando Perez <fperez@colorado.edu>
4997 2002-04-17 Fernando Perez <fperez@colorado.edu>
4990
4998
4991 * IPython/ipmaker.py (make_IPython): added rc_override option to
4999 * IPython/ipmaker.py (make_IPython): added rc_override option to
4992 allow passing config options at creation time which may override
5000 allow passing config options at creation time which may override
4993 anything set in the config files or command line. This is
5001 anything set in the config files or command line. This is
4994 particularly useful for configuring embedded instances.
5002 particularly useful for configuring embedded instances.
4995
5003
4996 2002-04-15 Fernando Perez <fperez@colorado.edu>
5004 2002-04-15 Fernando Perez <fperez@colorado.edu>
4997
5005
4998 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5006 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4999 crash embedded instances because of the input cache falling out of
5007 crash embedded instances because of the input cache falling out of
5000 sync with the output counter.
5008 sync with the output counter.
5001
5009
5002 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5010 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5003 mode which calls pdb after an uncaught exception in IPython itself.
5011 mode which calls pdb after an uncaught exception in IPython itself.
5004
5012
5005 2002-04-14 Fernando Perez <fperez@colorado.edu>
5013 2002-04-14 Fernando Perez <fperez@colorado.edu>
5006
5014
5007 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5015 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5008 readline, fix it back after each call.
5016 readline, fix it back after each call.
5009
5017
5010 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5018 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5011 method to force all access via __call__(), which guarantees that
5019 method to force all access via __call__(), which guarantees that
5012 traceback references are properly deleted.
5020 traceback references are properly deleted.
5013
5021
5014 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5022 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5015 improve printing when pprint is in use.
5023 improve printing when pprint is in use.
5016
5024
5017 2002-04-13 Fernando Perez <fperez@colorado.edu>
5025 2002-04-13 Fernando Perez <fperez@colorado.edu>
5018
5026
5019 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5027 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5020 exceptions aren't caught anymore. If the user triggers one, he
5028 exceptions aren't caught anymore. If the user triggers one, he
5021 should know why he's doing it and it should go all the way up,
5029 should know why he's doing it and it should go all the way up,
5022 just like any other exception. So now @abort will fully kill the
5030 just like any other exception. So now @abort will fully kill the
5023 embedded interpreter and the embedding code (unless that happens
5031 embedded interpreter and the embedding code (unless that happens
5024 to catch SystemExit).
5032 to catch SystemExit).
5025
5033
5026 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5034 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5027 and a debugger() method to invoke the interactive pdb debugger
5035 and a debugger() method to invoke the interactive pdb debugger
5028 after printing exception information. Also added the corresponding
5036 after printing exception information. Also added the corresponding
5029 -pdb option and @pdb magic to control this feature, and updated
5037 -pdb option and @pdb magic to control this feature, and updated
5030 the docs. After a suggestion from Christopher Hart
5038 the docs. After a suggestion from Christopher Hart
5031 (hart-AT-caltech.edu).
5039 (hart-AT-caltech.edu).
5032
5040
5033 2002-04-12 Fernando Perez <fperez@colorado.edu>
5041 2002-04-12 Fernando Perez <fperez@colorado.edu>
5034
5042
5035 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5043 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5036 the exception handlers defined by the user (not the CrashHandler)
5044 the exception handlers defined by the user (not the CrashHandler)
5037 so that user exceptions don't trigger an ipython bug report.
5045 so that user exceptions don't trigger an ipython bug report.
5038
5046
5039 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5047 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5040 configurable (it should have always been so).
5048 configurable (it should have always been so).
5041
5049
5042 2002-03-26 Fernando Perez <fperez@colorado.edu>
5050 2002-03-26 Fernando Perez <fperez@colorado.edu>
5043
5051
5044 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5052 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5045 and there to fix embedding namespace issues. This should all be
5053 and there to fix embedding namespace issues. This should all be
5046 done in a more elegant way.
5054 done in a more elegant way.
5047
5055
5048 2002-03-25 Fernando Perez <fperez@colorado.edu>
5056 2002-03-25 Fernando Perez <fperez@colorado.edu>
5049
5057
5050 * IPython/genutils.py (get_home_dir): Try to make it work under
5058 * IPython/genutils.py (get_home_dir): Try to make it work under
5051 win9x also.
5059 win9x also.
5052
5060
5053 2002-03-20 Fernando Perez <fperez@colorado.edu>
5061 2002-03-20 Fernando Perez <fperez@colorado.edu>
5054
5062
5055 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5063 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5056 sys.displayhook untouched upon __init__.
5064 sys.displayhook untouched upon __init__.
5057
5065
5058 2002-03-19 Fernando Perez <fperez@colorado.edu>
5066 2002-03-19 Fernando Perez <fperez@colorado.edu>
5059
5067
5060 * Released 0.2.9 (for embedding bug, basically).
5068 * Released 0.2.9 (for embedding bug, basically).
5061
5069
5062 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5070 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5063 exceptions so that enclosing shell's state can be restored.
5071 exceptions so that enclosing shell's state can be restored.
5064
5072
5065 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5073 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5066 naming conventions in the .ipython/ dir.
5074 naming conventions in the .ipython/ dir.
5067
5075
5068 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5076 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5069 from delimiters list so filenames with - in them get expanded.
5077 from delimiters list so filenames with - in them get expanded.
5070
5078
5071 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5079 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5072 sys.displayhook not being properly restored after an embedded call.
5080 sys.displayhook not being properly restored after an embedded call.
5073
5081
5074 2002-03-18 Fernando Perez <fperez@colorado.edu>
5082 2002-03-18 Fernando Perez <fperez@colorado.edu>
5075
5083
5076 * Released 0.2.8
5084 * Released 0.2.8
5077
5085
5078 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5086 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5079 some files weren't being included in a -upgrade.
5087 some files weren't being included in a -upgrade.
5080 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5088 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5081 on' so that the first tab completes.
5089 on' so that the first tab completes.
5082 (InteractiveShell.handle_magic): fixed bug with spaces around
5090 (InteractiveShell.handle_magic): fixed bug with spaces around
5083 quotes breaking many magic commands.
5091 quotes breaking many magic commands.
5084
5092
5085 * setup.py: added note about ignoring the syntax error messages at
5093 * setup.py: added note about ignoring the syntax error messages at
5086 installation.
5094 installation.
5087
5095
5088 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5096 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5089 streamlining the gnuplot interface, now there's only one magic @gp.
5097 streamlining the gnuplot interface, now there's only one magic @gp.
5090
5098
5091 2002-03-17 Fernando Perez <fperez@colorado.edu>
5099 2002-03-17 Fernando Perez <fperez@colorado.edu>
5092
5100
5093 * IPython/UserConfig/magic_gnuplot.py: new name for the
5101 * IPython/UserConfig/magic_gnuplot.py: new name for the
5094 example-magic_pm.py file. Much enhanced system, now with a shell
5102 example-magic_pm.py file. Much enhanced system, now with a shell
5095 for communicating directly with gnuplot, one command at a time.
5103 for communicating directly with gnuplot, one command at a time.
5096
5104
5097 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5105 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5098 setting __name__=='__main__'.
5106 setting __name__=='__main__'.
5099
5107
5100 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5108 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5101 mini-shell for accessing gnuplot from inside ipython. Should
5109 mini-shell for accessing gnuplot from inside ipython. Should
5102 extend it later for grace access too. Inspired by Arnd's
5110 extend it later for grace access too. Inspired by Arnd's
5103 suggestion.
5111 suggestion.
5104
5112
5105 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5113 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5106 calling magic functions with () in their arguments. Thanks to Arnd
5114 calling magic functions with () in their arguments. Thanks to Arnd
5107 Baecker for pointing this to me.
5115 Baecker for pointing this to me.
5108
5116
5109 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5117 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5110 infinitely for integer or complex arrays (only worked with floats).
5118 infinitely for integer or complex arrays (only worked with floats).
5111
5119
5112 2002-03-16 Fernando Perez <fperez@colorado.edu>
5120 2002-03-16 Fernando Perez <fperez@colorado.edu>
5113
5121
5114 * setup.py: Merged setup and setup_windows into a single script
5122 * setup.py: Merged setup and setup_windows into a single script
5115 which properly handles things for windows users.
5123 which properly handles things for windows users.
5116
5124
5117 2002-03-15 Fernando Perez <fperez@colorado.edu>
5125 2002-03-15 Fernando Perez <fperez@colorado.edu>
5118
5126
5119 * Big change to the manual: now the magics are all automatically
5127 * Big change to the manual: now the magics are all automatically
5120 documented. This information is generated from their docstrings
5128 documented. This information is generated from their docstrings
5121 and put in a latex file included by the manual lyx file. This way
5129 and put in a latex file included by the manual lyx file. This way
5122 we get always up to date information for the magics. The manual
5130 we get always up to date information for the magics. The manual
5123 now also has proper version information, also auto-synced.
5131 now also has proper version information, also auto-synced.
5124
5132
5125 For this to work, an undocumented --magic_docstrings option was added.
5133 For this to work, an undocumented --magic_docstrings option was added.
5126
5134
5127 2002-03-13 Fernando Perez <fperez@colorado.edu>
5135 2002-03-13 Fernando Perez <fperez@colorado.edu>
5128
5136
5129 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5137 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5130 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5138 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5131
5139
5132 2002-03-12 Fernando Perez <fperez@colorado.edu>
5140 2002-03-12 Fernando Perez <fperez@colorado.edu>
5133
5141
5134 * IPython/ultraTB.py (TermColors): changed color escapes again to
5142 * IPython/ultraTB.py (TermColors): changed color escapes again to
5135 fix the (old, reintroduced) line-wrapping bug. Basically, if
5143 fix the (old, reintroduced) line-wrapping bug. Basically, if
5136 \001..\002 aren't given in the color escapes, lines get wrapped
5144 \001..\002 aren't given in the color escapes, lines get wrapped
5137 weirdly. But giving those screws up old xterms and emacs terms. So
5145 weirdly. But giving those screws up old xterms and emacs terms. So
5138 I added some logic for emacs terms to be ok, but I can't identify old
5146 I added some logic for emacs terms to be ok, but I can't identify old
5139 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5147 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5140
5148
5141 2002-03-10 Fernando Perez <fperez@colorado.edu>
5149 2002-03-10 Fernando Perez <fperez@colorado.edu>
5142
5150
5143 * IPython/usage.py (__doc__): Various documentation cleanups and
5151 * IPython/usage.py (__doc__): Various documentation cleanups and
5144 updates, both in usage docstrings and in the manual.
5152 updates, both in usage docstrings and in the manual.
5145
5153
5146 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5154 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5147 handling of caching. Set minimum acceptabe value for having a
5155 handling of caching. Set minimum acceptabe value for having a
5148 cache at 20 values.
5156 cache at 20 values.
5149
5157
5150 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5158 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5151 install_first_time function to a method, renamed it and added an
5159 install_first_time function to a method, renamed it and added an
5152 'upgrade' mode. Now people can update their config directory with
5160 'upgrade' mode. Now people can update their config directory with
5153 a simple command line switch (-upgrade, also new).
5161 a simple command line switch (-upgrade, also new).
5154
5162
5155 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5163 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5156 @file (convenient for automagic users under Python >= 2.2).
5164 @file (convenient for automagic users under Python >= 2.2).
5157 Removed @files (it seemed more like a plural than an abbrev. of
5165 Removed @files (it seemed more like a plural than an abbrev. of
5158 'file show').
5166 'file show').
5159
5167
5160 * IPython/iplib.py (install_first_time): Fixed crash if there were
5168 * IPython/iplib.py (install_first_time): Fixed crash if there were
5161 backup files ('~') in .ipython/ install directory.
5169 backup files ('~') in .ipython/ install directory.
5162
5170
5163 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5171 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5164 system. Things look fine, but these changes are fairly
5172 system. Things look fine, but these changes are fairly
5165 intrusive. Test them for a few days.
5173 intrusive. Test them for a few days.
5166
5174
5167 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5175 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5168 the prompts system. Now all in/out prompt strings are user
5176 the prompts system. Now all in/out prompt strings are user
5169 controllable. This is particularly useful for embedding, as one
5177 controllable. This is particularly useful for embedding, as one
5170 can tag embedded instances with particular prompts.
5178 can tag embedded instances with particular prompts.
5171
5179
5172 Also removed global use of sys.ps1/2, which now allows nested
5180 Also removed global use of sys.ps1/2, which now allows nested
5173 embeddings without any problems. Added command-line options for
5181 embeddings without any problems. Added command-line options for
5174 the prompt strings.
5182 the prompt strings.
5175
5183
5176 2002-03-08 Fernando Perez <fperez@colorado.edu>
5184 2002-03-08 Fernando Perez <fperez@colorado.edu>
5177
5185
5178 * IPython/UserConfig/example-embed-short.py (ipshell): added
5186 * IPython/UserConfig/example-embed-short.py (ipshell): added
5179 example file with the bare minimum code for embedding.
5187 example file with the bare minimum code for embedding.
5180
5188
5181 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5189 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5182 functionality for the embeddable shell to be activated/deactivated
5190 functionality for the embeddable shell to be activated/deactivated
5183 either globally or at each call.
5191 either globally or at each call.
5184
5192
5185 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5193 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5186 rewriting the prompt with '--->' for auto-inputs with proper
5194 rewriting the prompt with '--->' for auto-inputs with proper
5187 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5195 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5188 this is handled by the prompts class itself, as it should.
5196 this is handled by the prompts class itself, as it should.
5189
5197
5190 2002-03-05 Fernando Perez <fperez@colorado.edu>
5198 2002-03-05 Fernando Perez <fperez@colorado.edu>
5191
5199
5192 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5200 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5193 @logstart to avoid name clashes with the math log function.
5201 @logstart to avoid name clashes with the math log function.
5194
5202
5195 * Big updates to X/Emacs section of the manual.
5203 * Big updates to X/Emacs section of the manual.
5196
5204
5197 * Removed ipython_emacs. Milan explained to me how to pass
5205 * Removed ipython_emacs. Milan explained to me how to pass
5198 arguments to ipython through Emacs. Some day I'm going to end up
5206 arguments to ipython through Emacs. Some day I'm going to end up
5199 learning some lisp...
5207 learning some lisp...
5200
5208
5201 2002-03-04 Fernando Perez <fperez@colorado.edu>
5209 2002-03-04 Fernando Perez <fperez@colorado.edu>
5202
5210
5203 * IPython/ipython_emacs: Created script to be used as the
5211 * IPython/ipython_emacs: Created script to be used as the
5204 py-python-command Emacs variable so we can pass IPython
5212 py-python-command Emacs variable so we can pass IPython
5205 parameters. I can't figure out how to tell Emacs directly to pass
5213 parameters. I can't figure out how to tell Emacs directly to pass
5206 parameters to IPython, so a dummy shell script will do it.
5214 parameters to IPython, so a dummy shell script will do it.
5207
5215
5208 Other enhancements made for things to work better under Emacs'
5216 Other enhancements made for things to work better under Emacs'
5209 various types of terminals. Many thanks to Milan Zamazal
5217 various types of terminals. Many thanks to Milan Zamazal
5210 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5218 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5211
5219
5212 2002-03-01 Fernando Perez <fperez@colorado.edu>
5220 2002-03-01 Fernando Perez <fperez@colorado.edu>
5213
5221
5214 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5222 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5215 that loading of readline is now optional. This gives better
5223 that loading of readline is now optional. This gives better
5216 control to emacs users.
5224 control to emacs users.
5217
5225
5218 * IPython/ultraTB.py (__date__): Modified color escape sequences
5226 * IPython/ultraTB.py (__date__): Modified color escape sequences
5219 and now things work fine under xterm and in Emacs' term buffers
5227 and now things work fine under xterm and in Emacs' term buffers
5220 (though not shell ones). Well, in emacs you get colors, but all
5228 (though not shell ones). Well, in emacs you get colors, but all
5221 seem to be 'light' colors (no difference between dark and light
5229 seem to be 'light' colors (no difference between dark and light
5222 ones). But the garbage chars are gone, and also in xterms. It
5230 ones). But the garbage chars are gone, and also in xterms. It
5223 seems that now I'm using 'cleaner' ansi sequences.
5231 seems that now I'm using 'cleaner' ansi sequences.
5224
5232
5225 2002-02-21 Fernando Perez <fperez@colorado.edu>
5233 2002-02-21 Fernando Perez <fperez@colorado.edu>
5226
5234
5227 * Released 0.2.7 (mainly to publish the scoping fix).
5235 * Released 0.2.7 (mainly to publish the scoping fix).
5228
5236
5229 * IPython/Logger.py (Logger.logstate): added. A corresponding
5237 * IPython/Logger.py (Logger.logstate): added. A corresponding
5230 @logstate magic was created.
5238 @logstate magic was created.
5231
5239
5232 * IPython/Magic.py: fixed nested scoping problem under Python
5240 * IPython/Magic.py: fixed nested scoping problem under Python
5233 2.1.x (automagic wasn't working).
5241 2.1.x (automagic wasn't working).
5234
5242
5235 2002-02-20 Fernando Perez <fperez@colorado.edu>
5243 2002-02-20 Fernando Perez <fperez@colorado.edu>
5236
5244
5237 * Released 0.2.6.
5245 * Released 0.2.6.
5238
5246
5239 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5247 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5240 option so that logs can come out without any headers at all.
5248 option so that logs can come out without any headers at all.
5241
5249
5242 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5250 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5243 SciPy.
5251 SciPy.
5244
5252
5245 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5253 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5246 that embedded IPython calls don't require vars() to be explicitly
5254 that embedded IPython calls don't require vars() to be explicitly
5247 passed. Now they are extracted from the caller's frame (code
5255 passed. Now they are extracted from the caller's frame (code
5248 snatched from Eric Jones' weave). Added better documentation to
5256 snatched from Eric Jones' weave). Added better documentation to
5249 the section on embedding and the example file.
5257 the section on embedding and the example file.
5250
5258
5251 * IPython/genutils.py (page): Changed so that under emacs, it just
5259 * IPython/genutils.py (page): Changed so that under emacs, it just
5252 prints the string. You can then page up and down in the emacs
5260 prints the string. You can then page up and down in the emacs
5253 buffer itself. This is how the builtin help() works.
5261 buffer itself. This is how the builtin help() works.
5254
5262
5255 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5263 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5256 macro scoping: macros need to be executed in the user's namespace
5264 macro scoping: macros need to be executed in the user's namespace
5257 to work as if they had been typed by the user.
5265 to work as if they had been typed by the user.
5258
5266
5259 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5267 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5260 execute automatically (no need to type 'exec...'). They then
5268 execute automatically (no need to type 'exec...'). They then
5261 behave like 'true macros'. The printing system was also modified
5269 behave like 'true macros'. The printing system was also modified
5262 for this to work.
5270 for this to work.
5263
5271
5264 2002-02-19 Fernando Perez <fperez@colorado.edu>
5272 2002-02-19 Fernando Perez <fperez@colorado.edu>
5265
5273
5266 * IPython/genutils.py (page_file): new function for paging files
5274 * IPython/genutils.py (page_file): new function for paging files
5267 in an OS-independent way. Also necessary for file viewing to work
5275 in an OS-independent way. Also necessary for file viewing to work
5268 well inside Emacs buffers.
5276 well inside Emacs buffers.
5269 (page): Added checks for being in an emacs buffer.
5277 (page): Added checks for being in an emacs buffer.
5270 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5278 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5271 same bug in iplib.
5279 same bug in iplib.
5272
5280
5273 2002-02-18 Fernando Perez <fperez@colorado.edu>
5281 2002-02-18 Fernando Perez <fperez@colorado.edu>
5274
5282
5275 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5283 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5276 of readline so that IPython can work inside an Emacs buffer.
5284 of readline so that IPython can work inside an Emacs buffer.
5277
5285
5278 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5286 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5279 method signatures (they weren't really bugs, but it looks cleaner
5287 method signatures (they weren't really bugs, but it looks cleaner
5280 and keeps PyChecker happy).
5288 and keeps PyChecker happy).
5281
5289
5282 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5290 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5283 for implementing various user-defined hooks. Currently only
5291 for implementing various user-defined hooks. Currently only
5284 display is done.
5292 display is done.
5285
5293
5286 * IPython/Prompts.py (CachedOutput._display): changed display
5294 * IPython/Prompts.py (CachedOutput._display): changed display
5287 functions so that they can be dynamically changed by users easily.
5295 functions so that they can be dynamically changed by users easily.
5288
5296
5289 * IPython/Extensions/numeric_formats.py (num_display): added an
5297 * IPython/Extensions/numeric_formats.py (num_display): added an
5290 extension for printing NumPy arrays in flexible manners. It
5298 extension for printing NumPy arrays in flexible manners. It
5291 doesn't do anything yet, but all the structure is in
5299 doesn't do anything yet, but all the structure is in
5292 place. Ultimately the plan is to implement output format control
5300 place. Ultimately the plan is to implement output format control
5293 like in Octave.
5301 like in Octave.
5294
5302
5295 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5303 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5296 methods are found at run-time by all the automatic machinery.
5304 methods are found at run-time by all the automatic machinery.
5297
5305
5298 2002-02-17 Fernando Perez <fperez@colorado.edu>
5306 2002-02-17 Fernando Perez <fperez@colorado.edu>
5299
5307
5300 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5308 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5301 whole file a little.
5309 whole file a little.
5302
5310
5303 * ToDo: closed this document. Now there's a new_design.lyx
5311 * ToDo: closed this document. Now there's a new_design.lyx
5304 document for all new ideas. Added making a pdf of it for the
5312 document for all new ideas. Added making a pdf of it for the
5305 end-user distro.
5313 end-user distro.
5306
5314
5307 * IPython/Logger.py (Logger.switch_log): Created this to replace
5315 * IPython/Logger.py (Logger.switch_log): Created this to replace
5308 logon() and logoff(). It also fixes a nasty crash reported by
5316 logon() and logoff(). It also fixes a nasty crash reported by
5309 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5317 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5310
5318
5311 * IPython/iplib.py (complete): got auto-completion to work with
5319 * IPython/iplib.py (complete): got auto-completion to work with
5312 automagic (I had wanted this for a long time).
5320 automagic (I had wanted this for a long time).
5313
5321
5314 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5322 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5315 to @file, since file() is now a builtin and clashes with automagic
5323 to @file, since file() is now a builtin and clashes with automagic
5316 for @file.
5324 for @file.
5317
5325
5318 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5326 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5319 of this was previously in iplib, which had grown to more than 2000
5327 of this was previously in iplib, which had grown to more than 2000
5320 lines, way too long. No new functionality, but it makes managing
5328 lines, way too long. No new functionality, but it makes managing
5321 the code a bit easier.
5329 the code a bit easier.
5322
5330
5323 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5331 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5324 information to crash reports.
5332 information to crash reports.
5325
5333
5326 2002-02-12 Fernando Perez <fperez@colorado.edu>
5334 2002-02-12 Fernando Perez <fperez@colorado.edu>
5327
5335
5328 * Released 0.2.5.
5336 * Released 0.2.5.
5329
5337
5330 2002-02-11 Fernando Perez <fperez@colorado.edu>
5338 2002-02-11 Fernando Perez <fperez@colorado.edu>
5331
5339
5332 * Wrote a relatively complete Windows installer. It puts
5340 * Wrote a relatively complete Windows installer. It puts
5333 everything in place, creates Start Menu entries and fixes the
5341 everything in place, creates Start Menu entries and fixes the
5334 color issues. Nothing fancy, but it works.
5342 color issues. Nothing fancy, but it works.
5335
5343
5336 2002-02-10 Fernando Perez <fperez@colorado.edu>
5344 2002-02-10 Fernando Perez <fperez@colorado.edu>
5337
5345
5338 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5346 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5339 os.path.expanduser() call so that we can type @run ~/myfile.py and
5347 os.path.expanduser() call so that we can type @run ~/myfile.py and
5340 have thigs work as expected.
5348 have thigs work as expected.
5341
5349
5342 * IPython/genutils.py (page): fixed exception handling so things
5350 * IPython/genutils.py (page): fixed exception handling so things
5343 work both in Unix and Windows correctly. Quitting a pager triggers
5351 work both in Unix and Windows correctly. Quitting a pager triggers
5344 an IOError/broken pipe in Unix, and in windows not finding a pager
5352 an IOError/broken pipe in Unix, and in windows not finding a pager
5345 is also an IOError, so I had to actually look at the return value
5353 is also an IOError, so I had to actually look at the return value
5346 of the exception, not just the exception itself. Should be ok now.
5354 of the exception, not just the exception itself. Should be ok now.
5347
5355
5348 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5356 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5349 modified to allow case-insensitive color scheme changes.
5357 modified to allow case-insensitive color scheme changes.
5350
5358
5351 2002-02-09 Fernando Perez <fperez@colorado.edu>
5359 2002-02-09 Fernando Perez <fperez@colorado.edu>
5352
5360
5353 * IPython/genutils.py (native_line_ends): new function to leave
5361 * IPython/genutils.py (native_line_ends): new function to leave
5354 user config files with os-native line-endings.
5362 user config files with os-native line-endings.
5355
5363
5356 * README and manual updates.
5364 * README and manual updates.
5357
5365
5358 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5366 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5359 instead of StringType to catch Unicode strings.
5367 instead of StringType to catch Unicode strings.
5360
5368
5361 * IPython/genutils.py (filefind): fixed bug for paths with
5369 * IPython/genutils.py (filefind): fixed bug for paths with
5362 embedded spaces (very common in Windows).
5370 embedded spaces (very common in Windows).
5363
5371
5364 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5372 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5365 files under Windows, so that they get automatically associated
5373 files under Windows, so that they get automatically associated
5366 with a text editor. Windows makes it a pain to handle
5374 with a text editor. Windows makes it a pain to handle
5367 extension-less files.
5375 extension-less files.
5368
5376
5369 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5377 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5370 warning about readline only occur for Posix. In Windows there's no
5378 warning about readline only occur for Posix. In Windows there's no
5371 way to get readline, so why bother with the warning.
5379 way to get readline, so why bother with the warning.
5372
5380
5373 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5381 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5374 for __str__ instead of dir(self), since dir() changed in 2.2.
5382 for __str__ instead of dir(self), since dir() changed in 2.2.
5375
5383
5376 * Ported to Windows! Tested on XP, I suspect it should work fine
5384 * Ported to Windows! Tested on XP, I suspect it should work fine
5377 on NT/2000, but I don't think it will work on 98 et al. That
5385 on NT/2000, but I don't think it will work on 98 et al. That
5378 series of Windows is such a piece of junk anyway that I won't try
5386 series of Windows is such a piece of junk anyway that I won't try
5379 porting it there. The XP port was straightforward, showed a few
5387 porting it there. The XP port was straightforward, showed a few
5380 bugs here and there (fixed all), in particular some string
5388 bugs here and there (fixed all), in particular some string
5381 handling stuff which required considering Unicode strings (which
5389 handling stuff which required considering Unicode strings (which
5382 Windows uses). This is good, but hasn't been too tested :) No
5390 Windows uses). This is good, but hasn't been too tested :) No
5383 fancy installer yet, I'll put a note in the manual so people at
5391 fancy installer yet, I'll put a note in the manual so people at
5384 least make manually a shortcut.
5392 least make manually a shortcut.
5385
5393
5386 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5394 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5387 into a single one, "colors". This now controls both prompt and
5395 into a single one, "colors". This now controls both prompt and
5388 exception color schemes, and can be changed both at startup
5396 exception color schemes, and can be changed both at startup
5389 (either via command-line switches or via ipythonrc files) and at
5397 (either via command-line switches or via ipythonrc files) and at
5390 runtime, with @colors.
5398 runtime, with @colors.
5391 (Magic.magic_run): renamed @prun to @run and removed the old
5399 (Magic.magic_run): renamed @prun to @run and removed the old
5392 @run. The two were too similar to warrant keeping both.
5400 @run. The two were too similar to warrant keeping both.
5393
5401
5394 2002-02-03 Fernando Perez <fperez@colorado.edu>
5402 2002-02-03 Fernando Perez <fperez@colorado.edu>
5395
5403
5396 * IPython/iplib.py (install_first_time): Added comment on how to
5404 * IPython/iplib.py (install_first_time): Added comment on how to
5397 configure the color options for first-time users. Put a <return>
5405 configure the color options for first-time users. Put a <return>
5398 request at the end so that small-terminal users get a chance to
5406 request at the end so that small-terminal users get a chance to
5399 read the startup info.
5407 read the startup info.
5400
5408
5401 2002-01-23 Fernando Perez <fperez@colorado.edu>
5409 2002-01-23 Fernando Perez <fperez@colorado.edu>
5402
5410
5403 * IPython/iplib.py (CachedOutput.update): Changed output memory
5411 * IPython/iplib.py (CachedOutput.update): Changed output memory
5404 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5412 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5405 input history we still use _i. Did this b/c these variable are
5413 input history we still use _i. Did this b/c these variable are
5406 very commonly used in interactive work, so the less we need to
5414 very commonly used in interactive work, so the less we need to
5407 type the better off we are.
5415 type the better off we are.
5408 (Magic.magic_prun): updated @prun to better handle the namespaces
5416 (Magic.magic_prun): updated @prun to better handle the namespaces
5409 the file will run in, including a fix for __name__ not being set
5417 the file will run in, including a fix for __name__ not being set
5410 before.
5418 before.
5411
5419
5412 2002-01-20 Fernando Perez <fperez@colorado.edu>
5420 2002-01-20 Fernando Perez <fperez@colorado.edu>
5413
5421
5414 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5422 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5415 extra garbage for Python 2.2. Need to look more carefully into
5423 extra garbage for Python 2.2. Need to look more carefully into
5416 this later.
5424 this later.
5417
5425
5418 2002-01-19 Fernando Perez <fperez@colorado.edu>
5426 2002-01-19 Fernando Perez <fperez@colorado.edu>
5419
5427
5420 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5428 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5421 display SyntaxError exceptions properly formatted when they occur
5429 display SyntaxError exceptions properly formatted when they occur
5422 (they can be triggered by imported code).
5430 (they can be triggered by imported code).
5423
5431
5424 2002-01-18 Fernando Perez <fperez@colorado.edu>
5432 2002-01-18 Fernando Perez <fperez@colorado.edu>
5425
5433
5426 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5434 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5427 SyntaxError exceptions are reported nicely formatted, instead of
5435 SyntaxError exceptions are reported nicely formatted, instead of
5428 spitting out only offset information as before.
5436 spitting out only offset information as before.
5429 (Magic.magic_prun): Added the @prun function for executing
5437 (Magic.magic_prun): Added the @prun function for executing
5430 programs with command line args inside IPython.
5438 programs with command line args inside IPython.
5431
5439
5432 2002-01-16 Fernando Perez <fperez@colorado.edu>
5440 2002-01-16 Fernando Perez <fperez@colorado.edu>
5433
5441
5434 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5442 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5435 to *not* include the last item given in a range. This brings their
5443 to *not* include the last item given in a range. This brings their
5436 behavior in line with Python's slicing:
5444 behavior in line with Python's slicing:
5437 a[n1:n2] -> a[n1]...a[n2-1]
5445 a[n1:n2] -> a[n1]...a[n2-1]
5438 It may be a bit less convenient, but I prefer to stick to Python's
5446 It may be a bit less convenient, but I prefer to stick to Python's
5439 conventions *everywhere*, so users never have to wonder.
5447 conventions *everywhere*, so users never have to wonder.
5440 (Magic.magic_macro): Added @macro function to ease the creation of
5448 (Magic.magic_macro): Added @macro function to ease the creation of
5441 macros.
5449 macros.
5442
5450
5443 2002-01-05 Fernando Perez <fperez@colorado.edu>
5451 2002-01-05 Fernando Perez <fperez@colorado.edu>
5444
5452
5445 * Released 0.2.4.
5453 * Released 0.2.4.
5446
5454
5447 * IPython/iplib.py (Magic.magic_pdef):
5455 * IPython/iplib.py (Magic.magic_pdef):
5448 (InteractiveShell.safe_execfile): report magic lines and error
5456 (InteractiveShell.safe_execfile): report magic lines and error
5449 lines without line numbers so one can easily copy/paste them for
5457 lines without line numbers so one can easily copy/paste them for
5450 re-execution.
5458 re-execution.
5451
5459
5452 * Updated manual with recent changes.
5460 * Updated manual with recent changes.
5453
5461
5454 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5462 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5455 docstring printing when class? is called. Very handy for knowing
5463 docstring printing when class? is called. Very handy for knowing
5456 how to create class instances (as long as __init__ is well
5464 how to create class instances (as long as __init__ is well
5457 documented, of course :)
5465 documented, of course :)
5458 (Magic.magic_doc): print both class and constructor docstrings.
5466 (Magic.magic_doc): print both class and constructor docstrings.
5459 (Magic.magic_pdef): give constructor info if passed a class and
5467 (Magic.magic_pdef): give constructor info if passed a class and
5460 __call__ info for callable object instances.
5468 __call__ info for callable object instances.
5461
5469
5462 2002-01-04 Fernando Perez <fperez@colorado.edu>
5470 2002-01-04 Fernando Perez <fperez@colorado.edu>
5463
5471
5464 * Made deep_reload() off by default. It doesn't always work
5472 * Made deep_reload() off by default. It doesn't always work
5465 exactly as intended, so it's probably safer to have it off. It's
5473 exactly as intended, so it's probably safer to have it off. It's
5466 still available as dreload() anyway, so nothing is lost.
5474 still available as dreload() anyway, so nothing is lost.
5467
5475
5468 2002-01-02 Fernando Perez <fperez@colorado.edu>
5476 2002-01-02 Fernando Perez <fperez@colorado.edu>
5469
5477
5470 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5478 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5471 so I wanted an updated release).
5479 so I wanted an updated release).
5472
5480
5473 2001-12-27 Fernando Perez <fperez@colorado.edu>
5481 2001-12-27 Fernando Perez <fperez@colorado.edu>
5474
5482
5475 * IPython/iplib.py (InteractiveShell.interact): Added the original
5483 * IPython/iplib.py (InteractiveShell.interact): Added the original
5476 code from 'code.py' for this module in order to change the
5484 code from 'code.py' for this module in order to change the
5477 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5485 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5478 the history cache would break when the user hit Ctrl-C, and
5486 the history cache would break when the user hit Ctrl-C, and
5479 interact() offers no way to add any hooks to it.
5487 interact() offers no way to add any hooks to it.
5480
5488
5481 2001-12-23 Fernando Perez <fperez@colorado.edu>
5489 2001-12-23 Fernando Perez <fperez@colorado.edu>
5482
5490
5483 * setup.py: added check for 'MANIFEST' before trying to remove
5491 * setup.py: added check for 'MANIFEST' before trying to remove
5484 it. Thanks to Sean Reifschneider.
5492 it. Thanks to Sean Reifschneider.
5485
5493
5486 2001-12-22 Fernando Perez <fperez@colorado.edu>
5494 2001-12-22 Fernando Perez <fperez@colorado.edu>
5487
5495
5488 * Released 0.2.2.
5496 * Released 0.2.2.
5489
5497
5490 * Finished (reasonably) writing the manual. Later will add the
5498 * Finished (reasonably) writing the manual. Later will add the
5491 python-standard navigation stylesheets, but for the time being
5499 python-standard navigation stylesheets, but for the time being
5492 it's fairly complete. Distribution will include html and pdf
5500 it's fairly complete. Distribution will include html and pdf
5493 versions.
5501 versions.
5494
5502
5495 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5503 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5496 (MayaVi author).
5504 (MayaVi author).
5497
5505
5498 2001-12-21 Fernando Perez <fperez@colorado.edu>
5506 2001-12-21 Fernando Perez <fperez@colorado.edu>
5499
5507
5500 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5508 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5501 good public release, I think (with the manual and the distutils
5509 good public release, I think (with the manual and the distutils
5502 installer). The manual can use some work, but that can go
5510 installer). The manual can use some work, but that can go
5503 slowly. Otherwise I think it's quite nice for end users. Next
5511 slowly. Otherwise I think it's quite nice for end users. Next
5504 summer, rewrite the guts of it...
5512 summer, rewrite the guts of it...
5505
5513
5506 * Changed format of ipythonrc files to use whitespace as the
5514 * Changed format of ipythonrc files to use whitespace as the
5507 separator instead of an explicit '='. Cleaner.
5515 separator instead of an explicit '='. Cleaner.
5508
5516
5509 2001-12-20 Fernando Perez <fperez@colorado.edu>
5517 2001-12-20 Fernando Perez <fperez@colorado.edu>
5510
5518
5511 * Started a manual in LyX. For now it's just a quick merge of the
5519 * Started a manual in LyX. For now it's just a quick merge of the
5512 various internal docstrings and READMEs. Later it may grow into a
5520 various internal docstrings and READMEs. Later it may grow into a
5513 nice, full-blown manual.
5521 nice, full-blown manual.
5514
5522
5515 * Set up a distutils based installer. Installation should now be
5523 * Set up a distutils based installer. Installation should now be
5516 trivially simple for end-users.
5524 trivially simple for end-users.
5517
5525
5518 2001-12-11 Fernando Perez <fperez@colorado.edu>
5526 2001-12-11 Fernando Perez <fperez@colorado.edu>
5519
5527
5520 * Released 0.2.0. First public release, announced it at
5528 * Released 0.2.0. First public release, announced it at
5521 comp.lang.python. From now on, just bugfixes...
5529 comp.lang.python. From now on, just bugfixes...
5522
5530
5523 * Went through all the files, set copyright/license notices and
5531 * Went through all the files, set copyright/license notices and
5524 cleaned up things. Ready for release.
5532 cleaned up things. Ready for release.
5525
5533
5526 2001-12-10 Fernando Perez <fperez@colorado.edu>
5534 2001-12-10 Fernando Perez <fperez@colorado.edu>
5527
5535
5528 * Changed the first-time installer not to use tarfiles. It's more
5536 * Changed the first-time installer not to use tarfiles. It's more
5529 robust now and less unix-dependent. Also makes it easier for
5537 robust now and less unix-dependent. Also makes it easier for
5530 people to later upgrade versions.
5538 people to later upgrade versions.
5531
5539
5532 * Changed @exit to @abort to reflect the fact that it's pretty
5540 * Changed @exit to @abort to reflect the fact that it's pretty
5533 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5541 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5534 becomes significant only when IPyhton is embedded: in that case,
5542 becomes significant only when IPyhton is embedded: in that case,
5535 C-D closes IPython only, but @abort kills the enclosing program
5543 C-D closes IPython only, but @abort kills the enclosing program
5536 too (unless it had called IPython inside a try catching
5544 too (unless it had called IPython inside a try catching
5537 SystemExit).
5545 SystemExit).
5538
5546
5539 * Created Shell module which exposes the actuall IPython Shell
5547 * Created Shell module which exposes the actuall IPython Shell
5540 classes, currently the normal and the embeddable one. This at
5548 classes, currently the normal and the embeddable one. This at
5541 least offers a stable interface we won't need to change when
5549 least offers a stable interface we won't need to change when
5542 (later) the internals are rewritten. That rewrite will be confined
5550 (later) the internals are rewritten. That rewrite will be confined
5543 to iplib and ipmaker, but the Shell interface should remain as is.
5551 to iplib and ipmaker, but the Shell interface should remain as is.
5544
5552
5545 * Added embed module which offers an embeddable IPShell object,
5553 * Added embed module which offers an embeddable IPShell object,
5546 useful to fire up IPython *inside* a running program. Great for
5554 useful to fire up IPython *inside* a running program. Great for
5547 debugging or dynamical data analysis.
5555 debugging or dynamical data analysis.
5548
5556
5549 2001-12-08 Fernando Perez <fperez@colorado.edu>
5557 2001-12-08 Fernando Perez <fperez@colorado.edu>
5550
5558
5551 * Fixed small bug preventing seeing info from methods of defined
5559 * Fixed small bug preventing seeing info from methods of defined
5552 objects (incorrect namespace in _ofind()).
5560 objects (incorrect namespace in _ofind()).
5553
5561
5554 * Documentation cleanup. Moved the main usage docstrings to a
5562 * Documentation cleanup. Moved the main usage docstrings to a
5555 separate file, usage.py (cleaner to maintain, and hopefully in the
5563 separate file, usage.py (cleaner to maintain, and hopefully in the
5556 future some perlpod-like way of producing interactive, man and
5564 future some perlpod-like way of producing interactive, man and
5557 html docs out of it will be found).
5565 html docs out of it will be found).
5558
5566
5559 * Added @profile to see your profile at any time.
5567 * Added @profile to see your profile at any time.
5560
5568
5561 * Added @p as an alias for 'print'. It's especially convenient if
5569 * Added @p as an alias for 'print'. It's especially convenient if
5562 using automagic ('p x' prints x).
5570 using automagic ('p x' prints x).
5563
5571
5564 * Small cleanups and fixes after a pychecker run.
5572 * Small cleanups and fixes after a pychecker run.
5565
5573
5566 * Changed the @cd command to handle @cd - and @cd -<n> for
5574 * Changed the @cd command to handle @cd - and @cd -<n> for
5567 visiting any directory in _dh.
5575 visiting any directory in _dh.
5568
5576
5569 * Introduced _dh, a history of visited directories. @dhist prints
5577 * Introduced _dh, a history of visited directories. @dhist prints
5570 it out with numbers.
5578 it out with numbers.
5571
5579
5572 2001-12-07 Fernando Perez <fperez@colorado.edu>
5580 2001-12-07 Fernando Perez <fperez@colorado.edu>
5573
5581
5574 * Released 0.1.22
5582 * Released 0.1.22
5575
5583
5576 * Made initialization a bit more robust against invalid color
5584 * Made initialization a bit more robust against invalid color
5577 options in user input (exit, not traceback-crash).
5585 options in user input (exit, not traceback-crash).
5578
5586
5579 * Changed the bug crash reporter to write the report only in the
5587 * Changed the bug crash reporter to write the report only in the
5580 user's .ipython directory. That way IPython won't litter people's
5588 user's .ipython directory. That way IPython won't litter people's
5581 hard disks with crash files all over the place. Also print on
5589 hard disks with crash files all over the place. Also print on
5582 screen the necessary mail command.
5590 screen the necessary mail command.
5583
5591
5584 * With the new ultraTB, implemented LightBG color scheme for light
5592 * With the new ultraTB, implemented LightBG color scheme for light
5585 background terminals. A lot of people like white backgrounds, so I
5593 background terminals. A lot of people like white backgrounds, so I
5586 guess we should at least give them something readable.
5594 guess we should at least give them something readable.
5587
5595
5588 2001-12-06 Fernando Perez <fperez@colorado.edu>
5596 2001-12-06 Fernando Perez <fperez@colorado.edu>
5589
5597
5590 * Modified the structure of ultraTB. Now there's a proper class
5598 * Modified the structure of ultraTB. Now there's a proper class
5591 for tables of color schemes which allow adding schemes easily and
5599 for tables of color schemes which allow adding schemes easily and
5592 switching the active scheme without creating a new instance every
5600 switching the active scheme without creating a new instance every
5593 time (which was ridiculous). The syntax for creating new schemes
5601 time (which was ridiculous). The syntax for creating new schemes
5594 is also cleaner. I think ultraTB is finally done, with a clean
5602 is also cleaner. I think ultraTB is finally done, with a clean
5595 class structure. Names are also much cleaner (now there's proper
5603 class structure. Names are also much cleaner (now there's proper
5596 color tables, no need for every variable to also have 'color' in
5604 color tables, no need for every variable to also have 'color' in
5597 its name).
5605 its name).
5598
5606
5599 * Broke down genutils into separate files. Now genutils only
5607 * Broke down genutils into separate files. Now genutils only
5600 contains utility functions, and classes have been moved to their
5608 contains utility functions, and classes have been moved to their
5601 own files (they had enough independent functionality to warrant
5609 own files (they had enough independent functionality to warrant
5602 it): ConfigLoader, OutputTrap, Struct.
5610 it): ConfigLoader, OutputTrap, Struct.
5603
5611
5604 2001-12-05 Fernando Perez <fperez@colorado.edu>
5612 2001-12-05 Fernando Perez <fperez@colorado.edu>
5605
5613
5606 * IPython turns 21! Released version 0.1.21, as a candidate for
5614 * IPython turns 21! Released version 0.1.21, as a candidate for
5607 public consumption. If all goes well, release in a few days.
5615 public consumption. If all goes well, release in a few days.
5608
5616
5609 * Fixed path bug (files in Extensions/ directory wouldn't be found
5617 * Fixed path bug (files in Extensions/ directory wouldn't be found
5610 unless IPython/ was explicitly in sys.path).
5618 unless IPython/ was explicitly in sys.path).
5611
5619
5612 * Extended the FlexCompleter class as MagicCompleter to allow
5620 * Extended the FlexCompleter class as MagicCompleter to allow
5613 completion of @-starting lines.
5621 completion of @-starting lines.
5614
5622
5615 * Created __release__.py file as a central repository for release
5623 * Created __release__.py file as a central repository for release
5616 info that other files can read from.
5624 info that other files can read from.
5617
5625
5618 * Fixed small bug in logging: when logging was turned on in
5626 * Fixed small bug in logging: when logging was turned on in
5619 mid-session, old lines with special meanings (!@?) were being
5627 mid-session, old lines with special meanings (!@?) were being
5620 logged without the prepended comment, which is necessary since
5628 logged without the prepended comment, which is necessary since
5621 they are not truly valid python syntax. This should make session
5629 they are not truly valid python syntax. This should make session
5622 restores produce less errors.
5630 restores produce less errors.
5623
5631
5624 * The namespace cleanup forced me to make a FlexCompleter class
5632 * The namespace cleanup forced me to make a FlexCompleter class
5625 which is nothing but a ripoff of rlcompleter, but with selectable
5633 which is nothing but a ripoff of rlcompleter, but with selectable
5626 namespace (rlcompleter only works in __main__.__dict__). I'll try
5634 namespace (rlcompleter only works in __main__.__dict__). I'll try
5627 to submit a note to the authors to see if this change can be
5635 to submit a note to the authors to see if this change can be
5628 incorporated in future rlcompleter releases (Dec.6: done)
5636 incorporated in future rlcompleter releases (Dec.6: done)
5629
5637
5630 * More fixes to namespace handling. It was a mess! Now all
5638 * More fixes to namespace handling. It was a mess! Now all
5631 explicit references to __main__.__dict__ are gone (except when
5639 explicit references to __main__.__dict__ are gone (except when
5632 really needed) and everything is handled through the namespace
5640 really needed) and everything is handled through the namespace
5633 dicts in the IPython instance. We seem to be getting somewhere
5641 dicts in the IPython instance. We seem to be getting somewhere
5634 with this, finally...
5642 with this, finally...
5635
5643
5636 * Small documentation updates.
5644 * Small documentation updates.
5637
5645
5638 * Created the Extensions directory under IPython (with an
5646 * Created the Extensions directory under IPython (with an
5639 __init__.py). Put the PhysicalQ stuff there. This directory should
5647 __init__.py). Put the PhysicalQ stuff there. This directory should
5640 be used for all special-purpose extensions.
5648 be used for all special-purpose extensions.
5641
5649
5642 * File renaming:
5650 * File renaming:
5643 ipythonlib --> ipmaker
5651 ipythonlib --> ipmaker
5644 ipplib --> iplib
5652 ipplib --> iplib
5645 This makes a bit more sense in terms of what these files actually do.
5653 This makes a bit more sense in terms of what these files actually do.
5646
5654
5647 * Moved all the classes and functions in ipythonlib to ipplib, so
5655 * Moved all the classes and functions in ipythonlib to ipplib, so
5648 now ipythonlib only has make_IPython(). This will ease up its
5656 now ipythonlib only has make_IPython(). This will ease up its
5649 splitting in smaller functional chunks later.
5657 splitting in smaller functional chunks later.
5650
5658
5651 * Cleaned up (done, I think) output of @whos. Better column
5659 * Cleaned up (done, I think) output of @whos. Better column
5652 formatting, and now shows str(var) for as much as it can, which is
5660 formatting, and now shows str(var) for as much as it can, which is
5653 typically what one gets with a 'print var'.
5661 typically what one gets with a 'print var'.
5654
5662
5655 2001-12-04 Fernando Perez <fperez@colorado.edu>
5663 2001-12-04 Fernando Perez <fperez@colorado.edu>
5656
5664
5657 * Fixed namespace problems. Now builtin/IPyhton/user names get
5665 * Fixed namespace problems. Now builtin/IPyhton/user names get
5658 properly reported in their namespace. Internal namespace handling
5666 properly reported in their namespace. Internal namespace handling
5659 is finally getting decent (not perfect yet, but much better than
5667 is finally getting decent (not perfect yet, but much better than
5660 the ad-hoc mess we had).
5668 the ad-hoc mess we had).
5661
5669
5662 * Removed -exit option. If people just want to run a python
5670 * Removed -exit option. If people just want to run a python
5663 script, that's what the normal interpreter is for. Less
5671 script, that's what the normal interpreter is for. Less
5664 unnecessary options, less chances for bugs.
5672 unnecessary options, less chances for bugs.
5665
5673
5666 * Added a crash handler which generates a complete post-mortem if
5674 * Added a crash handler which generates a complete post-mortem if
5667 IPython crashes. This will help a lot in tracking bugs down the
5675 IPython crashes. This will help a lot in tracking bugs down the
5668 road.
5676 road.
5669
5677
5670 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5678 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5671 which were boud to functions being reassigned would bypass the
5679 which were boud to functions being reassigned would bypass the
5672 logger, breaking the sync of _il with the prompt counter. This
5680 logger, breaking the sync of _il with the prompt counter. This
5673 would then crash IPython later when a new line was logged.
5681 would then crash IPython later when a new line was logged.
5674
5682
5675 2001-12-02 Fernando Perez <fperez@colorado.edu>
5683 2001-12-02 Fernando Perez <fperez@colorado.edu>
5676
5684
5677 * Made IPython a package. This means people don't have to clutter
5685 * Made IPython a package. This means people don't have to clutter
5678 their sys.path with yet another directory. Changed the INSTALL
5686 their sys.path with yet another directory. Changed the INSTALL
5679 file accordingly.
5687 file accordingly.
5680
5688
5681 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5689 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5682 sorts its output (so @who shows it sorted) and @whos formats the
5690 sorts its output (so @who shows it sorted) and @whos formats the
5683 table according to the width of the first column. Nicer, easier to
5691 table according to the width of the first column. Nicer, easier to
5684 read. Todo: write a generic table_format() which takes a list of
5692 read. Todo: write a generic table_format() which takes a list of
5685 lists and prints it nicely formatted, with optional row/column
5693 lists and prints it nicely formatted, with optional row/column
5686 separators and proper padding and justification.
5694 separators and proper padding and justification.
5687
5695
5688 * Released 0.1.20
5696 * Released 0.1.20
5689
5697
5690 * Fixed bug in @log which would reverse the inputcache list (a
5698 * Fixed bug in @log which would reverse the inputcache list (a
5691 copy operation was missing).
5699 copy operation was missing).
5692
5700
5693 * Code cleanup. @config was changed to use page(). Better, since
5701 * Code cleanup. @config was changed to use page(). Better, since
5694 its output is always quite long.
5702 its output is always quite long.
5695
5703
5696 * Itpl is back as a dependency. I was having too many problems
5704 * Itpl is back as a dependency. I was having too many problems
5697 getting the parametric aliases to work reliably, and it's just
5705 getting the parametric aliases to work reliably, and it's just
5698 easier to code weird string operations with it than playing %()s
5706 easier to code weird string operations with it than playing %()s
5699 games. It's only ~6k, so I don't think it's too big a deal.
5707 games. It's only ~6k, so I don't think it's too big a deal.
5700
5708
5701 * Found (and fixed) a very nasty bug with history. !lines weren't
5709 * Found (and fixed) a very nasty bug with history. !lines weren't
5702 getting cached, and the out of sync caches would crash
5710 getting cached, and the out of sync caches would crash
5703 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5711 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5704 division of labor a bit better. Bug fixed, cleaner structure.
5712 division of labor a bit better. Bug fixed, cleaner structure.
5705
5713
5706 2001-12-01 Fernando Perez <fperez@colorado.edu>
5714 2001-12-01 Fernando Perez <fperez@colorado.edu>
5707
5715
5708 * Released 0.1.19
5716 * Released 0.1.19
5709
5717
5710 * Added option -n to @hist to prevent line number printing. Much
5718 * Added option -n to @hist to prevent line number printing. Much
5711 easier to copy/paste code this way.
5719 easier to copy/paste code this way.
5712
5720
5713 * Created global _il to hold the input list. Allows easy
5721 * Created global _il to hold the input list. Allows easy
5714 re-execution of blocks of code by slicing it (inspired by Janko's
5722 re-execution of blocks of code by slicing it (inspired by Janko's
5715 comment on 'macros').
5723 comment on 'macros').
5716
5724
5717 * Small fixes and doc updates.
5725 * Small fixes and doc updates.
5718
5726
5719 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5727 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5720 much too fragile with automagic. Handles properly multi-line
5728 much too fragile with automagic. Handles properly multi-line
5721 statements and takes parameters.
5729 statements and takes parameters.
5722
5730
5723 2001-11-30 Fernando Perez <fperez@colorado.edu>
5731 2001-11-30 Fernando Perez <fperez@colorado.edu>
5724
5732
5725 * Version 0.1.18 released.
5733 * Version 0.1.18 released.
5726
5734
5727 * Fixed nasty namespace bug in initial module imports.
5735 * Fixed nasty namespace bug in initial module imports.
5728
5736
5729 * Added copyright/license notes to all code files (except
5737 * Added copyright/license notes to all code files (except
5730 DPyGetOpt). For the time being, LGPL. That could change.
5738 DPyGetOpt). For the time being, LGPL. That could change.
5731
5739
5732 * Rewrote a much nicer README, updated INSTALL, cleaned up
5740 * Rewrote a much nicer README, updated INSTALL, cleaned up
5733 ipythonrc-* samples.
5741 ipythonrc-* samples.
5734
5742
5735 * Overall code/documentation cleanup. Basically ready for
5743 * Overall code/documentation cleanup. Basically ready for
5736 release. Only remaining thing: licence decision (LGPL?).
5744 release. Only remaining thing: licence decision (LGPL?).
5737
5745
5738 * Converted load_config to a class, ConfigLoader. Now recursion
5746 * Converted load_config to a class, ConfigLoader. Now recursion
5739 control is better organized. Doesn't include the same file twice.
5747 control is better organized. Doesn't include the same file twice.
5740
5748
5741 2001-11-29 Fernando Perez <fperez@colorado.edu>
5749 2001-11-29 Fernando Perez <fperez@colorado.edu>
5742
5750
5743 * Got input history working. Changed output history variables from
5751 * Got input history working. Changed output history variables from
5744 _p to _o so that _i is for input and _o for output. Just cleaner
5752 _p to _o so that _i is for input and _o for output. Just cleaner
5745 convention.
5753 convention.
5746
5754
5747 * Implemented parametric aliases. This pretty much allows the
5755 * Implemented parametric aliases. This pretty much allows the
5748 alias system to offer full-blown shell convenience, I think.
5756 alias system to offer full-blown shell convenience, I think.
5749
5757
5750 * Version 0.1.17 released, 0.1.18 opened.
5758 * Version 0.1.17 released, 0.1.18 opened.
5751
5759
5752 * dot_ipython/ipythonrc (alias): added documentation.
5760 * dot_ipython/ipythonrc (alias): added documentation.
5753 (xcolor): Fixed small bug (xcolors -> xcolor)
5761 (xcolor): Fixed small bug (xcolors -> xcolor)
5754
5762
5755 * Changed the alias system. Now alias is a magic command to define
5763 * Changed the alias system. Now alias is a magic command to define
5756 aliases just like the shell. Rationale: the builtin magics should
5764 aliases just like the shell. Rationale: the builtin magics should
5757 be there for things deeply connected to IPython's
5765 be there for things deeply connected to IPython's
5758 architecture. And this is a much lighter system for what I think
5766 architecture. And this is a much lighter system for what I think
5759 is the really important feature: allowing users to define quickly
5767 is the really important feature: allowing users to define quickly
5760 magics that will do shell things for them, so they can customize
5768 magics that will do shell things for them, so they can customize
5761 IPython easily to match their work habits. If someone is really
5769 IPython easily to match their work habits. If someone is really
5762 desperate to have another name for a builtin alias, they can
5770 desperate to have another name for a builtin alias, they can
5763 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5771 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5764 works.
5772 works.
5765
5773
5766 2001-11-28 Fernando Perez <fperez@colorado.edu>
5774 2001-11-28 Fernando Perez <fperez@colorado.edu>
5767
5775
5768 * Changed @file so that it opens the source file at the proper
5776 * Changed @file so that it opens the source file at the proper
5769 line. Since it uses less, if your EDITOR environment is
5777 line. Since it uses less, if your EDITOR environment is
5770 configured, typing v will immediately open your editor of choice
5778 configured, typing v will immediately open your editor of choice
5771 right at the line where the object is defined. Not as quick as
5779 right at the line where the object is defined. Not as quick as
5772 having a direct @edit command, but for all intents and purposes it
5780 having a direct @edit command, but for all intents and purposes it
5773 works. And I don't have to worry about writing @edit to deal with
5781 works. And I don't have to worry about writing @edit to deal with
5774 all the editors, less does that.
5782 all the editors, less does that.
5775
5783
5776 * Version 0.1.16 released, 0.1.17 opened.
5784 * Version 0.1.16 released, 0.1.17 opened.
5777
5785
5778 * Fixed some nasty bugs in the page/page_dumb combo that could
5786 * Fixed some nasty bugs in the page/page_dumb combo that could
5779 crash IPython.
5787 crash IPython.
5780
5788
5781 2001-11-27 Fernando Perez <fperez@colorado.edu>
5789 2001-11-27 Fernando Perez <fperez@colorado.edu>
5782
5790
5783 * Version 0.1.15 released, 0.1.16 opened.
5791 * Version 0.1.15 released, 0.1.16 opened.
5784
5792
5785 * Finally got ? and ?? to work for undefined things: now it's
5793 * Finally got ? and ?? to work for undefined things: now it's
5786 possible to type {}.get? and get information about the get method
5794 possible to type {}.get? and get information about the get method
5787 of dicts, or os.path? even if only os is defined (so technically
5795 of dicts, or os.path? even if only os is defined (so technically
5788 os.path isn't). Works at any level. For example, after import os,
5796 os.path isn't). Works at any level. For example, after import os,
5789 os?, os.path?, os.path.abspath? all work. This is great, took some
5797 os?, os.path?, os.path.abspath? all work. This is great, took some
5790 work in _ofind.
5798 work in _ofind.
5791
5799
5792 * Fixed more bugs with logging. The sanest way to do it was to add
5800 * Fixed more bugs with logging. The sanest way to do it was to add
5793 to @log a 'mode' parameter. Killed two in one shot (this mode
5801 to @log a 'mode' parameter. Killed two in one shot (this mode
5794 option was a request of Janko's). I think it's finally clean
5802 option was a request of Janko's). I think it's finally clean
5795 (famous last words).
5803 (famous last words).
5796
5804
5797 * Added a page_dumb() pager which does a decent job of paging on
5805 * Added a page_dumb() pager which does a decent job of paging on
5798 screen, if better things (like less) aren't available. One less
5806 screen, if better things (like less) aren't available. One less
5799 unix dependency (someday maybe somebody will port this to
5807 unix dependency (someday maybe somebody will port this to
5800 windows).
5808 windows).
5801
5809
5802 * Fixed problem in magic_log: would lock of logging out if log
5810 * Fixed problem in magic_log: would lock of logging out if log
5803 creation failed (because it would still think it had succeeded).
5811 creation failed (because it would still think it had succeeded).
5804
5812
5805 * Improved the page() function using curses to auto-detect screen
5813 * Improved the page() function using curses to auto-detect screen
5806 size. Now it can make a much better decision on whether to print
5814 size. Now it can make a much better decision on whether to print
5807 or page a string. Option screen_length was modified: a value 0
5815 or page a string. Option screen_length was modified: a value 0
5808 means auto-detect, and that's the default now.
5816 means auto-detect, and that's the default now.
5809
5817
5810 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5818 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5811 go out. I'll test it for a few days, then talk to Janko about
5819 go out. I'll test it for a few days, then talk to Janko about
5812 licences and announce it.
5820 licences and announce it.
5813
5821
5814 * Fixed the length of the auto-generated ---> prompt which appears
5822 * Fixed the length of the auto-generated ---> prompt which appears
5815 for auto-parens and auto-quotes. Getting this right isn't trivial,
5823 for auto-parens and auto-quotes. Getting this right isn't trivial,
5816 with all the color escapes, different prompt types and optional
5824 with all the color escapes, different prompt types and optional
5817 separators. But it seems to be working in all the combinations.
5825 separators. But it seems to be working in all the combinations.
5818
5826
5819 2001-11-26 Fernando Perez <fperez@colorado.edu>
5827 2001-11-26 Fernando Perez <fperez@colorado.edu>
5820
5828
5821 * Wrote a regexp filter to get option types from the option names
5829 * Wrote a regexp filter to get option types from the option names
5822 string. This eliminates the need to manually keep two duplicate
5830 string. This eliminates the need to manually keep two duplicate
5823 lists.
5831 lists.
5824
5832
5825 * Removed the unneeded check_option_names. Now options are handled
5833 * Removed the unneeded check_option_names. Now options are handled
5826 in a much saner manner and it's easy to visually check that things
5834 in a much saner manner and it's easy to visually check that things
5827 are ok.
5835 are ok.
5828
5836
5829 * Updated version numbers on all files I modified to carry a
5837 * Updated version numbers on all files I modified to carry a
5830 notice so Janko and Nathan have clear version markers.
5838 notice so Janko and Nathan have clear version markers.
5831
5839
5832 * Updated docstring for ultraTB with my changes. I should send
5840 * Updated docstring for ultraTB with my changes. I should send
5833 this to Nathan.
5841 this to Nathan.
5834
5842
5835 * Lots of small fixes. Ran everything through pychecker again.
5843 * Lots of small fixes. Ran everything through pychecker again.
5836
5844
5837 * Made loading of deep_reload an cmd line option. If it's not too
5845 * Made loading of deep_reload an cmd line option. If it's not too
5838 kosher, now people can just disable it. With -nodeep_reload it's
5846 kosher, now people can just disable it. With -nodeep_reload it's
5839 still available as dreload(), it just won't overwrite reload().
5847 still available as dreload(), it just won't overwrite reload().
5840
5848
5841 * Moved many options to the no| form (-opt and -noopt
5849 * Moved many options to the no| form (-opt and -noopt
5842 accepted). Cleaner.
5850 accepted). Cleaner.
5843
5851
5844 * Changed magic_log so that if called with no parameters, it uses
5852 * Changed magic_log so that if called with no parameters, it uses
5845 'rotate' mode. That way auto-generated logs aren't automatically
5853 'rotate' mode. That way auto-generated logs aren't automatically
5846 over-written. For normal logs, now a backup is made if it exists
5854 over-written. For normal logs, now a backup is made if it exists
5847 (only 1 level of backups). A new 'backup' mode was added to the
5855 (only 1 level of backups). A new 'backup' mode was added to the
5848 Logger class to support this. This was a request by Janko.
5856 Logger class to support this. This was a request by Janko.
5849
5857
5850 * Added @logoff/@logon to stop/restart an active log.
5858 * Added @logoff/@logon to stop/restart an active log.
5851
5859
5852 * Fixed a lot of bugs in log saving/replay. It was pretty
5860 * Fixed a lot of bugs in log saving/replay. It was pretty
5853 broken. Now special lines (!@,/) appear properly in the command
5861 broken. Now special lines (!@,/) appear properly in the command
5854 history after a log replay.
5862 history after a log replay.
5855
5863
5856 * Tried and failed to implement full session saving via pickle. My
5864 * Tried and failed to implement full session saving via pickle. My
5857 idea was to pickle __main__.__dict__, but modules can't be
5865 idea was to pickle __main__.__dict__, but modules can't be
5858 pickled. This would be a better alternative to replaying logs, but
5866 pickled. This would be a better alternative to replaying logs, but
5859 seems quite tricky to get to work. Changed -session to be called
5867 seems quite tricky to get to work. Changed -session to be called
5860 -logplay, which more accurately reflects what it does. And if we
5868 -logplay, which more accurately reflects what it does. And if we
5861 ever get real session saving working, -session is now available.
5869 ever get real session saving working, -session is now available.
5862
5870
5863 * Implemented color schemes for prompts also. As for tracebacks,
5871 * Implemented color schemes for prompts also. As for tracebacks,
5864 currently only NoColor and Linux are supported. But now the
5872 currently only NoColor and Linux are supported. But now the
5865 infrastructure is in place, based on a generic ColorScheme
5873 infrastructure is in place, based on a generic ColorScheme
5866 class. So writing and activating new schemes both for the prompts
5874 class. So writing and activating new schemes both for the prompts
5867 and the tracebacks should be straightforward.
5875 and the tracebacks should be straightforward.
5868
5876
5869 * Version 0.1.13 released, 0.1.14 opened.
5877 * Version 0.1.13 released, 0.1.14 opened.
5870
5878
5871 * Changed handling of options for output cache. Now counter is
5879 * Changed handling of options for output cache. Now counter is
5872 hardwired starting at 1 and one specifies the maximum number of
5880 hardwired starting at 1 and one specifies the maximum number of
5873 entries *in the outcache* (not the max prompt counter). This is
5881 entries *in the outcache* (not the max prompt counter). This is
5874 much better, since many statements won't increase the cache
5882 much better, since many statements won't increase the cache
5875 count. It also eliminated some confusing options, now there's only
5883 count. It also eliminated some confusing options, now there's only
5876 one: cache_size.
5884 one: cache_size.
5877
5885
5878 * Added 'alias' magic function and magic_alias option in the
5886 * Added 'alias' magic function and magic_alias option in the
5879 ipythonrc file. Now the user can easily define whatever names he
5887 ipythonrc file. Now the user can easily define whatever names he
5880 wants for the magic functions without having to play weird
5888 wants for the magic functions without having to play weird
5881 namespace games. This gives IPython a real shell-like feel.
5889 namespace games. This gives IPython a real shell-like feel.
5882
5890
5883 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5891 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5884 @ or not).
5892 @ or not).
5885
5893
5886 This was one of the last remaining 'visible' bugs (that I know
5894 This was one of the last remaining 'visible' bugs (that I know
5887 of). I think if I can clean up the session loading so it works
5895 of). I think if I can clean up the session loading so it works
5888 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5896 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5889 about licensing).
5897 about licensing).
5890
5898
5891 2001-11-25 Fernando Perez <fperez@colorado.edu>
5899 2001-11-25 Fernando Perez <fperez@colorado.edu>
5892
5900
5893 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5901 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5894 there's a cleaner distinction between what ? and ?? show.
5902 there's a cleaner distinction between what ? and ?? show.
5895
5903
5896 * Added screen_length option. Now the user can define his own
5904 * Added screen_length option. Now the user can define his own
5897 screen size for page() operations.
5905 screen size for page() operations.
5898
5906
5899 * Implemented magic shell-like functions with automatic code
5907 * Implemented magic shell-like functions with automatic code
5900 generation. Now adding another function is just a matter of adding
5908 generation. Now adding another function is just a matter of adding
5901 an entry to a dict, and the function is dynamically generated at
5909 an entry to a dict, and the function is dynamically generated at
5902 run-time. Python has some really cool features!
5910 run-time. Python has some really cool features!
5903
5911
5904 * Renamed many options to cleanup conventions a little. Now all
5912 * Renamed many options to cleanup conventions a little. Now all
5905 are lowercase, and only underscores where needed. Also in the code
5913 are lowercase, and only underscores where needed. Also in the code
5906 option name tables are clearer.
5914 option name tables are clearer.
5907
5915
5908 * Changed prompts a little. Now input is 'In [n]:' instead of
5916 * Changed prompts a little. Now input is 'In [n]:' instead of
5909 'In[n]:='. This allows it the numbers to be aligned with the
5917 'In[n]:='. This allows it the numbers to be aligned with the
5910 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5918 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5911 Python (it was a Mathematica thing). The '...' continuation prompt
5919 Python (it was a Mathematica thing). The '...' continuation prompt
5912 was also changed a little to align better.
5920 was also changed a little to align better.
5913
5921
5914 * Fixed bug when flushing output cache. Not all _p<n> variables
5922 * Fixed bug when flushing output cache. Not all _p<n> variables
5915 exist, so their deletion needs to be wrapped in a try:
5923 exist, so their deletion needs to be wrapped in a try:
5916
5924
5917 * Figured out how to properly use inspect.formatargspec() (it
5925 * Figured out how to properly use inspect.formatargspec() (it
5918 requires the args preceded by *). So I removed all the code from
5926 requires the args preceded by *). So I removed all the code from
5919 _get_pdef in Magic, which was just replicating that.
5927 _get_pdef in Magic, which was just replicating that.
5920
5928
5921 * Added test to prefilter to allow redefining magic function names
5929 * Added test to prefilter to allow redefining magic function names
5922 as variables. This is ok, since the @ form is always available,
5930 as variables. This is ok, since the @ form is always available,
5923 but whe should allow the user to define a variable called 'ls' if
5931 but whe should allow the user to define a variable called 'ls' if
5924 he needs it.
5932 he needs it.
5925
5933
5926 * Moved the ToDo information from README into a separate ToDo.
5934 * Moved the ToDo information from README into a separate ToDo.
5927
5935
5928 * General code cleanup and small bugfixes. I think it's close to a
5936 * General code cleanup and small bugfixes. I think it's close to a
5929 state where it can be released, obviously with a big 'beta'
5937 state where it can be released, obviously with a big 'beta'
5930 warning on it.
5938 warning on it.
5931
5939
5932 * Got the magic function split to work. Now all magics are defined
5940 * Got the magic function split to work. Now all magics are defined
5933 in a separate class. It just organizes things a bit, and now
5941 in a separate class. It just organizes things a bit, and now
5934 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5942 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5935 was too long).
5943 was too long).
5936
5944
5937 * Changed @clear to @reset to avoid potential confusions with
5945 * Changed @clear to @reset to avoid potential confusions with
5938 the shell command clear. Also renamed @cl to @clear, which does
5946 the shell command clear. Also renamed @cl to @clear, which does
5939 exactly what people expect it to from their shell experience.
5947 exactly what people expect it to from their shell experience.
5940
5948
5941 Added a check to the @reset command (since it's so
5949 Added a check to the @reset command (since it's so
5942 destructive, it's probably a good idea to ask for confirmation).
5950 destructive, it's probably a good idea to ask for confirmation).
5943 But now reset only works for full namespace resetting. Since the
5951 But now reset only works for full namespace resetting. Since the
5944 del keyword is already there for deleting a few specific
5952 del keyword is already there for deleting a few specific
5945 variables, I don't see the point of having a redundant magic
5953 variables, I don't see the point of having a redundant magic
5946 function for the same task.
5954 function for the same task.
5947
5955
5948 2001-11-24 Fernando Perez <fperez@colorado.edu>
5956 2001-11-24 Fernando Perez <fperez@colorado.edu>
5949
5957
5950 * Updated the builtin docs (esp. the ? ones).
5958 * Updated the builtin docs (esp. the ? ones).
5951
5959
5952 * Ran all the code through pychecker. Not terribly impressed with
5960 * Ran all the code through pychecker. Not terribly impressed with
5953 it: lots of spurious warnings and didn't really find anything of
5961 it: lots of spurious warnings and didn't really find anything of
5954 substance (just a few modules being imported and not used).
5962 substance (just a few modules being imported and not used).
5955
5963
5956 * Implemented the new ultraTB functionality into IPython. New
5964 * Implemented the new ultraTB functionality into IPython. New
5957 option: xcolors. This chooses color scheme. xmode now only selects
5965 option: xcolors. This chooses color scheme. xmode now only selects
5958 between Plain and Verbose. Better orthogonality.
5966 between Plain and Verbose. Better orthogonality.
5959
5967
5960 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5968 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5961 mode and color scheme for the exception handlers. Now it's
5969 mode and color scheme for the exception handlers. Now it's
5962 possible to have the verbose traceback with no coloring.
5970 possible to have the verbose traceback with no coloring.
5963
5971
5964 2001-11-23 Fernando Perez <fperez@colorado.edu>
5972 2001-11-23 Fernando Perez <fperez@colorado.edu>
5965
5973
5966 * Version 0.1.12 released, 0.1.13 opened.
5974 * Version 0.1.12 released, 0.1.13 opened.
5967
5975
5968 * Removed option to set auto-quote and auto-paren escapes by
5976 * Removed option to set auto-quote and auto-paren escapes by
5969 user. The chances of breaking valid syntax are just too high. If
5977 user. The chances of breaking valid syntax are just too high. If
5970 someone *really* wants, they can always dig into the code.
5978 someone *really* wants, they can always dig into the code.
5971
5979
5972 * Made prompt separators configurable.
5980 * Made prompt separators configurable.
5973
5981
5974 2001-11-22 Fernando Perez <fperez@colorado.edu>
5982 2001-11-22 Fernando Perez <fperez@colorado.edu>
5975
5983
5976 * Small bugfixes in many places.
5984 * Small bugfixes in many places.
5977
5985
5978 * Removed the MyCompleter class from ipplib. It seemed redundant
5986 * Removed the MyCompleter class from ipplib. It seemed redundant
5979 with the C-p,C-n history search functionality. Less code to
5987 with the C-p,C-n history search functionality. Less code to
5980 maintain.
5988 maintain.
5981
5989
5982 * Moved all the original ipython.py code into ipythonlib.py. Right
5990 * Moved all the original ipython.py code into ipythonlib.py. Right
5983 now it's just one big dump into a function called make_IPython, so
5991 now it's just one big dump into a function called make_IPython, so
5984 no real modularity has been gained. But at least it makes the
5992 no real modularity has been gained. But at least it makes the
5985 wrapper script tiny, and since ipythonlib is a module, it gets
5993 wrapper script tiny, and since ipythonlib is a module, it gets
5986 compiled and startup is much faster.
5994 compiled and startup is much faster.
5987
5995
5988 This is a reasobably 'deep' change, so we should test it for a
5996 This is a reasobably 'deep' change, so we should test it for a
5989 while without messing too much more with the code.
5997 while without messing too much more with the code.
5990
5998
5991 2001-11-21 Fernando Perez <fperez@colorado.edu>
5999 2001-11-21 Fernando Perez <fperez@colorado.edu>
5992
6000
5993 * Version 0.1.11 released, 0.1.12 opened for further work.
6001 * Version 0.1.11 released, 0.1.12 opened for further work.
5994
6002
5995 * Removed dependency on Itpl. It was only needed in one place. It
6003 * Removed dependency on Itpl. It was only needed in one place. It
5996 would be nice if this became part of python, though. It makes life
6004 would be nice if this became part of python, though. It makes life
5997 *a lot* easier in some cases.
6005 *a lot* easier in some cases.
5998
6006
5999 * Simplified the prefilter code a bit. Now all handlers are
6007 * Simplified the prefilter code a bit. Now all handlers are
6000 expected to explicitly return a value (at least a blank string).
6008 expected to explicitly return a value (at least a blank string).
6001
6009
6002 * Heavy edits in ipplib. Removed the help system altogether. Now
6010 * Heavy edits in ipplib. Removed the help system altogether. Now
6003 obj?/?? is used for inspecting objects, a magic @doc prints
6011 obj?/?? is used for inspecting objects, a magic @doc prints
6004 docstrings, and full-blown Python help is accessed via the 'help'
6012 docstrings, and full-blown Python help is accessed via the 'help'
6005 keyword. This cleans up a lot of code (less to maintain) and does
6013 keyword. This cleans up a lot of code (less to maintain) and does
6006 the job. Since 'help' is now a standard Python component, might as
6014 the job. Since 'help' is now a standard Python component, might as
6007 well use it and remove duplicate functionality.
6015 well use it and remove duplicate functionality.
6008
6016
6009 Also removed the option to use ipplib as a standalone program. By
6017 Also removed the option to use ipplib as a standalone program. By
6010 now it's too dependent on other parts of IPython to function alone.
6018 now it's too dependent on other parts of IPython to function alone.
6011
6019
6012 * Fixed bug in genutils.pager. It would crash if the pager was
6020 * Fixed bug in genutils.pager. It would crash if the pager was
6013 exited immediately after opening (broken pipe).
6021 exited immediately after opening (broken pipe).
6014
6022
6015 * Trimmed down the VerboseTB reporting a little. The header is
6023 * Trimmed down the VerboseTB reporting a little. The header is
6016 much shorter now and the repeated exception arguments at the end
6024 much shorter now and the repeated exception arguments at the end
6017 have been removed. For interactive use the old header seemed a bit
6025 have been removed. For interactive use the old header seemed a bit
6018 excessive.
6026 excessive.
6019
6027
6020 * Fixed small bug in output of @whos for variables with multi-word
6028 * Fixed small bug in output of @whos for variables with multi-word
6021 types (only first word was displayed).
6029 types (only first word was displayed).
6022
6030
6023 2001-11-17 Fernando Perez <fperez@colorado.edu>
6031 2001-11-17 Fernando Perez <fperez@colorado.edu>
6024
6032
6025 * Version 0.1.10 released, 0.1.11 opened for further work.
6033 * Version 0.1.10 released, 0.1.11 opened for further work.
6026
6034
6027 * Modified dirs and friends. dirs now *returns* the stack (not
6035 * Modified dirs and friends. dirs now *returns* the stack (not
6028 prints), so one can manipulate it as a variable. Convenient to
6036 prints), so one can manipulate it as a variable. Convenient to
6029 travel along many directories.
6037 travel along many directories.
6030
6038
6031 * Fixed bug in magic_pdef: would only work with functions with
6039 * Fixed bug in magic_pdef: would only work with functions with
6032 arguments with default values.
6040 arguments with default values.
6033
6041
6034 2001-11-14 Fernando Perez <fperez@colorado.edu>
6042 2001-11-14 Fernando Perez <fperez@colorado.edu>
6035
6043
6036 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6044 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6037 example with IPython. Various other minor fixes and cleanups.
6045 example with IPython. Various other minor fixes and cleanups.
6038
6046
6039 * Version 0.1.9 released, 0.1.10 opened for further work.
6047 * Version 0.1.9 released, 0.1.10 opened for further work.
6040
6048
6041 * Added sys.path to the list of directories searched in the
6049 * Added sys.path to the list of directories searched in the
6042 execfile= option. It used to be the current directory and the
6050 execfile= option. It used to be the current directory and the
6043 user's IPYTHONDIR only.
6051 user's IPYTHONDIR only.
6044
6052
6045 2001-11-13 Fernando Perez <fperez@colorado.edu>
6053 2001-11-13 Fernando Perez <fperez@colorado.edu>
6046
6054
6047 * Reinstated the raw_input/prefilter separation that Janko had
6055 * Reinstated the raw_input/prefilter separation that Janko had
6048 initially. This gives a more convenient setup for extending the
6056 initially. This gives a more convenient setup for extending the
6049 pre-processor from the outside: raw_input always gets a string,
6057 pre-processor from the outside: raw_input always gets a string,
6050 and prefilter has to process it. We can then redefine prefilter
6058 and prefilter has to process it. We can then redefine prefilter
6051 from the outside and implement extensions for special
6059 from the outside and implement extensions for special
6052 purposes.
6060 purposes.
6053
6061
6054 Today I got one for inputting PhysicalQuantity objects
6062 Today I got one for inputting PhysicalQuantity objects
6055 (from Scientific) without needing any function calls at
6063 (from Scientific) without needing any function calls at
6056 all. Extremely convenient, and it's all done as a user-level
6064 all. Extremely convenient, and it's all done as a user-level
6057 extension (no IPython code was touched). Now instead of:
6065 extension (no IPython code was touched). Now instead of:
6058 a = PhysicalQuantity(4.2,'m/s**2')
6066 a = PhysicalQuantity(4.2,'m/s**2')
6059 one can simply say
6067 one can simply say
6060 a = 4.2 m/s**2
6068 a = 4.2 m/s**2
6061 or even
6069 or even
6062 a = 4.2 m/s^2
6070 a = 4.2 m/s^2
6063
6071
6064 I use this, but it's also a proof of concept: IPython really is
6072 I use this, but it's also a proof of concept: IPython really is
6065 fully user-extensible, even at the level of the parsing of the
6073 fully user-extensible, even at the level of the parsing of the
6066 command line. It's not trivial, but it's perfectly doable.
6074 command line. It's not trivial, but it's perfectly doable.
6067
6075
6068 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6076 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6069 the problem of modules being loaded in the inverse order in which
6077 the problem of modules being loaded in the inverse order in which
6070 they were defined in
6078 they were defined in
6071
6079
6072 * Version 0.1.8 released, 0.1.9 opened for further work.
6080 * Version 0.1.8 released, 0.1.9 opened for further work.
6073
6081
6074 * Added magics pdef, source and file. They respectively show the
6082 * Added magics pdef, source and file. They respectively show the
6075 definition line ('prototype' in C), source code and full python
6083 definition line ('prototype' in C), source code and full python
6076 file for any callable object. The object inspector oinfo uses
6084 file for any callable object. The object inspector oinfo uses
6077 these to show the same information.
6085 these to show the same information.
6078
6086
6079 * Version 0.1.7 released, 0.1.8 opened for further work.
6087 * Version 0.1.7 released, 0.1.8 opened for further work.
6080
6088
6081 * Separated all the magic functions into a class called Magic. The
6089 * Separated all the magic functions into a class called Magic. The
6082 InteractiveShell class was becoming too big for Xemacs to handle
6090 InteractiveShell class was becoming too big for Xemacs to handle
6083 (de-indenting a line would lock it up for 10 seconds while it
6091 (de-indenting a line would lock it up for 10 seconds while it
6084 backtracked on the whole class!)
6092 backtracked on the whole class!)
6085
6093
6086 FIXME: didn't work. It can be done, but right now namespaces are
6094 FIXME: didn't work. It can be done, but right now namespaces are
6087 all messed up. Do it later (reverted it for now, so at least
6095 all messed up. Do it later (reverted it for now, so at least
6088 everything works as before).
6096 everything works as before).
6089
6097
6090 * Got the object introspection system (magic_oinfo) working! I
6098 * Got the object introspection system (magic_oinfo) working! I
6091 think this is pretty much ready for release to Janko, so he can
6099 think this is pretty much ready for release to Janko, so he can
6092 test it for a while and then announce it. Pretty much 100% of what
6100 test it for a while and then announce it. Pretty much 100% of what
6093 I wanted for the 'phase 1' release is ready. Happy, tired.
6101 I wanted for the 'phase 1' release is ready. Happy, tired.
6094
6102
6095 2001-11-12 Fernando Perez <fperez@colorado.edu>
6103 2001-11-12 Fernando Perez <fperez@colorado.edu>
6096
6104
6097 * Version 0.1.6 released, 0.1.7 opened for further work.
6105 * Version 0.1.6 released, 0.1.7 opened for further work.
6098
6106
6099 * Fixed bug in printing: it used to test for truth before
6107 * Fixed bug in printing: it used to test for truth before
6100 printing, so 0 wouldn't print. Now checks for None.
6108 printing, so 0 wouldn't print. Now checks for None.
6101
6109
6102 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6110 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6103 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6111 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6104 reaches by hand into the outputcache. Think of a better way to do
6112 reaches by hand into the outputcache. Think of a better way to do
6105 this later.
6113 this later.
6106
6114
6107 * Various small fixes thanks to Nathan's comments.
6115 * Various small fixes thanks to Nathan's comments.
6108
6116
6109 * Changed magic_pprint to magic_Pprint. This way it doesn't
6117 * Changed magic_pprint to magic_Pprint. This way it doesn't
6110 collide with pprint() and the name is consistent with the command
6118 collide with pprint() and the name is consistent with the command
6111 line option.
6119 line option.
6112
6120
6113 * Changed prompt counter behavior to be fully like
6121 * Changed prompt counter behavior to be fully like
6114 Mathematica's. That is, even input that doesn't return a result
6122 Mathematica's. That is, even input that doesn't return a result
6115 raises the prompt counter. The old behavior was kind of confusing
6123 raises the prompt counter. The old behavior was kind of confusing
6116 (getting the same prompt number several times if the operation
6124 (getting the same prompt number several times if the operation
6117 didn't return a result).
6125 didn't return a result).
6118
6126
6119 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6127 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6120
6128
6121 * Fixed -Classic mode (wasn't working anymore).
6129 * Fixed -Classic mode (wasn't working anymore).
6122
6130
6123 * Added colored prompts using Nathan's new code. Colors are
6131 * Added colored prompts using Nathan's new code. Colors are
6124 currently hardwired, they can be user-configurable. For
6132 currently hardwired, they can be user-configurable. For
6125 developers, they can be chosen in file ipythonlib.py, at the
6133 developers, they can be chosen in file ipythonlib.py, at the
6126 beginning of the CachedOutput class def.
6134 beginning of the CachedOutput class def.
6127
6135
6128 2001-11-11 Fernando Perez <fperez@colorado.edu>
6136 2001-11-11 Fernando Perez <fperez@colorado.edu>
6129
6137
6130 * Version 0.1.5 released, 0.1.6 opened for further work.
6138 * Version 0.1.5 released, 0.1.6 opened for further work.
6131
6139
6132 * Changed magic_env to *return* the environment as a dict (not to
6140 * Changed magic_env to *return* the environment as a dict (not to
6133 print it). This way it prints, but it can also be processed.
6141 print it). This way it prints, but it can also be processed.
6134
6142
6135 * Added Verbose exception reporting to interactive
6143 * Added Verbose exception reporting to interactive
6136 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6144 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6137 traceback. Had to make some changes to the ultraTB file. This is
6145 traceback. Had to make some changes to the ultraTB file. This is
6138 probably the last 'big' thing in my mental todo list. This ties
6146 probably the last 'big' thing in my mental todo list. This ties
6139 in with the next entry:
6147 in with the next entry:
6140
6148
6141 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6149 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6142 has to specify is Plain, Color or Verbose for all exception
6150 has to specify is Plain, Color or Verbose for all exception
6143 handling.
6151 handling.
6144
6152
6145 * Removed ShellServices option. All this can really be done via
6153 * Removed ShellServices option. All this can really be done via
6146 the magic system. It's easier to extend, cleaner and has automatic
6154 the magic system. It's easier to extend, cleaner and has automatic
6147 namespace protection and documentation.
6155 namespace protection and documentation.
6148
6156
6149 2001-11-09 Fernando Perez <fperez@colorado.edu>
6157 2001-11-09 Fernando Perez <fperez@colorado.edu>
6150
6158
6151 * Fixed bug in output cache flushing (missing parameter to
6159 * Fixed bug in output cache flushing (missing parameter to
6152 __init__). Other small bugs fixed (found using pychecker).
6160 __init__). Other small bugs fixed (found using pychecker).
6153
6161
6154 * Version 0.1.4 opened for bugfixing.
6162 * Version 0.1.4 opened for bugfixing.
6155
6163
6156 2001-11-07 Fernando Perez <fperez@colorado.edu>
6164 2001-11-07 Fernando Perez <fperez@colorado.edu>
6157
6165
6158 * Version 0.1.3 released, mainly because of the raw_input bug.
6166 * Version 0.1.3 released, mainly because of the raw_input bug.
6159
6167
6160 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6168 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6161 and when testing for whether things were callable, a call could
6169 and when testing for whether things were callable, a call could
6162 actually be made to certain functions. They would get called again
6170 actually be made to certain functions. They would get called again
6163 once 'really' executed, with a resulting double call. A disaster
6171 once 'really' executed, with a resulting double call. A disaster
6164 in many cases (list.reverse() would never work!).
6172 in many cases (list.reverse() would never work!).
6165
6173
6166 * Removed prefilter() function, moved its code to raw_input (which
6174 * Removed prefilter() function, moved its code to raw_input (which
6167 after all was just a near-empty caller for prefilter). This saves
6175 after all was just a near-empty caller for prefilter). This saves
6168 a function call on every prompt, and simplifies the class a tiny bit.
6176 a function call on every prompt, and simplifies the class a tiny bit.
6169
6177
6170 * Fix _ip to __ip name in magic example file.
6178 * Fix _ip to __ip name in magic example file.
6171
6179
6172 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6180 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6173 work with non-gnu versions of tar.
6181 work with non-gnu versions of tar.
6174
6182
6175 2001-11-06 Fernando Perez <fperez@colorado.edu>
6183 2001-11-06 Fernando Perez <fperez@colorado.edu>
6176
6184
6177 * Version 0.1.2. Just to keep track of the recent changes.
6185 * Version 0.1.2. Just to keep track of the recent changes.
6178
6186
6179 * Fixed nasty bug in output prompt routine. It used to check 'if
6187 * Fixed nasty bug in output prompt routine. It used to check 'if
6180 arg != None...'. Problem is, this fails if arg implements a
6188 arg != None...'. Problem is, this fails if arg implements a
6181 special comparison (__cmp__) which disallows comparing to
6189 special comparison (__cmp__) which disallows comparing to
6182 None. Found it when trying to use the PhysicalQuantity module from
6190 None. Found it when trying to use the PhysicalQuantity module from
6183 ScientificPython.
6191 ScientificPython.
6184
6192
6185 2001-11-05 Fernando Perez <fperez@colorado.edu>
6193 2001-11-05 Fernando Perez <fperez@colorado.edu>
6186
6194
6187 * Also added dirs. Now the pushd/popd/dirs family functions
6195 * Also added dirs. Now the pushd/popd/dirs family functions
6188 basically like the shell, with the added convenience of going home
6196 basically like the shell, with the added convenience of going home
6189 when called with no args.
6197 when called with no args.
6190
6198
6191 * pushd/popd slightly modified to mimic shell behavior more
6199 * pushd/popd slightly modified to mimic shell behavior more
6192 closely.
6200 closely.
6193
6201
6194 * Added env,pushd,popd from ShellServices as magic functions. I
6202 * Added env,pushd,popd from ShellServices as magic functions. I
6195 think the cleanest will be to port all desired functions from
6203 think the cleanest will be to port all desired functions from
6196 ShellServices as magics and remove ShellServices altogether. This
6204 ShellServices as magics and remove ShellServices altogether. This
6197 will provide a single, clean way of adding functionality
6205 will provide a single, clean way of adding functionality
6198 (shell-type or otherwise) to IP.
6206 (shell-type or otherwise) to IP.
6199
6207
6200 2001-11-04 Fernando Perez <fperez@colorado.edu>
6208 2001-11-04 Fernando Perez <fperez@colorado.edu>
6201
6209
6202 * Added .ipython/ directory to sys.path. This way users can keep
6210 * Added .ipython/ directory to sys.path. This way users can keep
6203 customizations there and access them via import.
6211 customizations there and access them via import.
6204
6212
6205 2001-11-03 Fernando Perez <fperez@colorado.edu>
6213 2001-11-03 Fernando Perez <fperez@colorado.edu>
6206
6214
6207 * Opened version 0.1.1 for new changes.
6215 * Opened version 0.1.1 for new changes.
6208
6216
6209 * Changed version number to 0.1.0: first 'public' release, sent to
6217 * Changed version number to 0.1.0: first 'public' release, sent to
6210 Nathan and Janko.
6218 Nathan and Janko.
6211
6219
6212 * Lots of small fixes and tweaks.
6220 * Lots of small fixes and tweaks.
6213
6221
6214 * Minor changes to whos format. Now strings are shown, snipped if
6222 * Minor changes to whos format. Now strings are shown, snipped if
6215 too long.
6223 too long.
6216
6224
6217 * Changed ShellServices to work on __main__ so they show up in @who
6225 * Changed ShellServices to work on __main__ so they show up in @who
6218
6226
6219 * Help also works with ? at the end of a line:
6227 * Help also works with ? at the end of a line:
6220 ?sin and sin?
6228 ?sin and sin?
6221 both produce the same effect. This is nice, as often I use the
6229 both produce the same effect. This is nice, as often I use the
6222 tab-complete to find the name of a method, but I used to then have
6230 tab-complete to find the name of a method, but I used to then have
6223 to go to the beginning of the line to put a ? if I wanted more
6231 to go to the beginning of the line to put a ? if I wanted more
6224 info. Now I can just add the ? and hit return. Convenient.
6232 info. Now I can just add the ? and hit return. Convenient.
6225
6233
6226 2001-11-02 Fernando Perez <fperez@colorado.edu>
6234 2001-11-02 Fernando Perez <fperez@colorado.edu>
6227
6235
6228 * Python version check (>=2.1) added.
6236 * Python version check (>=2.1) added.
6229
6237
6230 * Added LazyPython documentation. At this point the docs are quite
6238 * Added LazyPython documentation. At this point the docs are quite
6231 a mess. A cleanup is in order.
6239 a mess. A cleanup is in order.
6232
6240
6233 * Auto-installer created. For some bizarre reason, the zipfiles
6241 * Auto-installer created. For some bizarre reason, the zipfiles
6234 module isn't working on my system. So I made a tar version
6242 module isn't working on my system. So I made a tar version
6235 (hopefully the command line options in various systems won't kill
6243 (hopefully the command line options in various systems won't kill
6236 me).
6244 me).
6237
6245
6238 * Fixes to Struct in genutils. Now all dictionary-like methods are
6246 * Fixes to Struct in genutils. Now all dictionary-like methods are
6239 protected (reasonably).
6247 protected (reasonably).
6240
6248
6241 * Added pager function to genutils and changed ? to print usage
6249 * Added pager function to genutils and changed ? to print usage
6242 note through it (it was too long).
6250 note through it (it was too long).
6243
6251
6244 * Added the LazyPython functionality. Works great! I changed the
6252 * Added the LazyPython functionality. Works great! I changed the
6245 auto-quote escape to ';', it's on home row and next to '. But
6253 auto-quote escape to ';', it's on home row and next to '. But
6246 both auto-quote and auto-paren (still /) escapes are command-line
6254 both auto-quote and auto-paren (still /) escapes are command-line
6247 parameters.
6255 parameters.
6248
6256
6249
6257
6250 2001-11-01 Fernando Perez <fperez@colorado.edu>
6258 2001-11-01 Fernando Perez <fperez@colorado.edu>
6251
6259
6252 * Version changed to 0.0.7. Fairly large change: configuration now
6260 * Version changed to 0.0.7. Fairly large change: configuration now
6253 is all stored in a directory, by default .ipython. There, all
6261 is all stored in a directory, by default .ipython. There, all
6254 config files have normal looking names (not .names)
6262 config files have normal looking names (not .names)
6255
6263
6256 * Version 0.0.6 Released first to Lucas and Archie as a test
6264 * Version 0.0.6 Released first to Lucas and Archie as a test
6257 run. Since it's the first 'semi-public' release, change version to
6265 run. Since it's the first 'semi-public' release, change version to
6258 > 0.0.6 for any changes now.
6266 > 0.0.6 for any changes now.
6259
6267
6260 * Stuff I had put in the ipplib.py changelog:
6268 * Stuff I had put in the ipplib.py changelog:
6261
6269
6262 Changes to InteractiveShell:
6270 Changes to InteractiveShell:
6263
6271
6264 - Made the usage message a parameter.
6272 - Made the usage message a parameter.
6265
6273
6266 - Require the name of the shell variable to be given. It's a bit
6274 - Require the name of the shell variable to be given. It's a bit
6267 of a hack, but allows the name 'shell' not to be hardwired in the
6275 of a hack, but allows the name 'shell' not to be hardwired in the
6268 magic (@) handler, which is problematic b/c it requires
6276 magic (@) handler, which is problematic b/c it requires
6269 polluting the global namespace with 'shell'. This in turn is
6277 polluting the global namespace with 'shell'. This in turn is
6270 fragile: if a user redefines a variable called shell, things
6278 fragile: if a user redefines a variable called shell, things
6271 break.
6279 break.
6272
6280
6273 - magic @: all functions available through @ need to be defined
6281 - magic @: all functions available through @ need to be defined
6274 as magic_<name>, even though they can be called simply as
6282 as magic_<name>, even though they can be called simply as
6275 @<name>. This allows the special command @magic to gather
6283 @<name>. This allows the special command @magic to gather
6276 information automatically about all existing magic functions,
6284 information automatically about all existing magic functions,
6277 even if they are run-time user extensions, by parsing the shell
6285 even if they are run-time user extensions, by parsing the shell
6278 instance __dict__ looking for special magic_ names.
6286 instance __dict__ looking for special magic_ names.
6279
6287
6280 - mainloop: added *two* local namespace parameters. This allows
6288 - mainloop: added *two* local namespace parameters. This allows
6281 the class to differentiate between parameters which were there
6289 the class to differentiate between parameters which were there
6282 before and after command line initialization was processed. This
6290 before and after command line initialization was processed. This
6283 way, later @who can show things loaded at startup by the
6291 way, later @who can show things loaded at startup by the
6284 user. This trick was necessary to make session saving/reloading
6292 user. This trick was necessary to make session saving/reloading
6285 really work: ideally after saving/exiting/reloading a session,
6293 really work: ideally after saving/exiting/reloading a session,
6286 *everything* should look the same, including the output of @who. I
6294 *everything* should look the same, including the output of @who. I
6287 was only able to make this work with this double namespace
6295 was only able to make this work with this double namespace
6288 trick.
6296 trick.
6289
6297
6290 - added a header to the logfile which allows (almost) full
6298 - added a header to the logfile which allows (almost) full
6291 session restoring.
6299 session restoring.
6292
6300
6293 - prepend lines beginning with @ or !, with a and log
6301 - prepend lines beginning with @ or !, with a and log
6294 them. Why? !lines: may be useful to know what you did @lines:
6302 them. Why? !lines: may be useful to know what you did @lines:
6295 they may affect session state. So when restoring a session, at
6303 they may affect session state. So when restoring a session, at
6296 least inform the user of their presence. I couldn't quite get
6304 least inform the user of their presence. I couldn't quite get
6297 them to properly re-execute, but at least the user is warned.
6305 them to properly re-execute, but at least the user is warned.
6298
6306
6299 * Started ChangeLog.
6307 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now