##// END OF EJS Templates
comment out ipy_stock_completers on default profile
vivainio -
Show More
@@ -1,188 +1,189 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
32 # beefed up %env is handy in shell mode
33 import envpersist
33 import envpersist
34 import ipy_which
34 import ipy_which
35 import ipy_stock_completers
35
36
36
37
37 ip.ex('import os')
38 ip.ex('import os')
38 ip.ex("def up(): os.chdir('..')")
39 ip.ex("def up(): os.chdir('..')")
39
40
40 # Get pysh-like prompt for all profiles.
41 # Get pysh-like prompt for all profiles.
41
42
42 o.prompt_in1= '\C_LightBlue[\C_LightCyan\Y1\C_LightBlue]\C_Green|\#> '
43 o.prompt_in1= '\C_LightBlue[\C_LightCyan\Y1\C_LightBlue]\C_Green|\#> '
43 o.prompt_in2= '\C_Green|\C_LightGreen\D\C_Green> '
44 o.prompt_in2= '\C_Green|\C_LightGreen\D\C_Green> '
44 o.prompt_out= '<\#> '
45 o.prompt_out= '<\#> '
45
46
46 from IPython import Release
47 from IPython import Release
47
48
48 import sys
49 import sys
49 # I like my banner minimal.
50 # I like my banner minimal.
50 o.banner = "Py %s IPy %s\n" % (sys.version.split('\n')[0],Release.version)
51 o.banner = "Py %s IPy %s\n" % (sys.version.split('\n')[0],Release.version)
51
52
52 # make 'd' an alias for ls -F
53 # make 'd' an alias for ls -F
53
54
54 ip.magic('alias d ls -F --color=auto')
55 ip.magic('alias d ls -F --color=auto')
55
56
56 ip.IP.default_option('cd','-q')
57 ip.IP.default_option('cd','-q')
57
58
58 # If you only rarely want to execute the things you %edit...
59 # If you only rarely want to execute the things you %edit...
59
60
60 #ip.IP.default_option('edit','-x')
61 #ip.IP.default_option('edit','-x')
61
62
62
63
63 o.prompts_pad_left="1"
64 o.prompts_pad_left="1"
64 # Remove all blank lines in between prompts, like a normal shell.
65 # Remove all blank lines in between prompts, like a normal shell.
65 o.separate_in="0"
66 o.separate_in="0"
66 o.separate_out="0"
67 o.separate_out="0"
67 o.separate_out2="0"
68 o.separate_out2="0"
68
69
69 # now alias all syscommands
70 # now alias all syscommands
70
71
71 db = ip.db
72 db = ip.db
72
73
73 syscmds = db.get("syscmdlist",[] )
74 syscmds = db.get("syscmdlist",[] )
74 if not syscmds:
75 if not syscmds:
75 print textwrap.dedent("""
76 print textwrap.dedent("""
76 System command list not initialized, probably the first run...
77 System command list not initialized, probably the first run...
77 running %rehashx to refresh the command list. Run %rehashx
78 running %rehashx to refresh the command list. Run %rehashx
78 again to refresh command list (after installing new software etc.)
79 again to refresh command list (after installing new software etc.)
79 """)
80 """)
80 ip.magic('rehashx')
81 ip.magic('rehashx')
81 syscmds = db.get("syscmdlist")
82 syscmds = db.get("syscmdlist")
82 for cmd in syscmds:
83 for cmd in syscmds:
83 #print "al",cmd
84 #print "al",cmd
84 noext, ext = os.path.splitext(cmd)
85 noext, ext = os.path.splitext(cmd)
85 ip.IP.alias_table[noext] = (0,cmd)
86 ip.IP.alias_table[noext] = (0,cmd)
86 extend_shell_behavior(ip)
87 extend_shell_behavior(ip)
87
88
88 def extend_shell_behavior(ip):
89 def extend_shell_behavior(ip):
89
90
90 # Instead of making signature a global variable tie it to IPSHELL.
91 # Instead of making signature a global variable tie it to IPSHELL.
91 # In future if it is required to distinguish between different
92 # In future if it is required to distinguish between different
92 # shells we can assign a signature per shell basis
93 # shells we can assign a signature per shell basis
93 ip.IP.__sig__ = 0xa005
94 ip.IP.__sig__ = 0xa005
94 # mark the IPSHELL with this signature
95 # mark the IPSHELL with this signature
95 ip.IP.user_ns['__builtins__'].__dict__['__sig__'] = ip.IP.__sig__
96 ip.IP.user_ns['__builtins__'].__dict__['__sig__'] = ip.IP.__sig__
96
97
97 from IPython.Itpl import ItplNS
98 from IPython.Itpl import ItplNS
98 from IPython.genutils import shell
99 from IPython.genutils import shell
99 # utility to expand user variables via Itpl
100 # utility to expand user variables via Itpl
100 # xxx do something sensible with depth?
101 # xxx do something sensible with depth?
101 ip.IP.var_expand = lambda cmd, lvars=None, depth=2: \
102 ip.IP.var_expand = lambda cmd, lvars=None, depth=2: \
102 str(ItplNS(cmd.replace('#','\#'), ip.IP.user_ns, get_locals()))
103 str(ItplNS(cmd.replace('#','\#'), ip.IP.user_ns, get_locals()))
103
104
104 def get_locals():
105 def get_locals():
105 """ Substituting a variable through Itpl deep inside the IPSHELL stack
106 """ Substituting a variable through Itpl deep inside the IPSHELL stack
106 requires the knowledge of all the variables in scope upto the last
107 requires the knowledge of all the variables in scope upto the last
107 IPSHELL frame. This routine simply merges all the local variables
108 IPSHELL frame. This routine simply merges all the local variables
108 on the IPSHELL stack without worrying about their scope rules
109 on the IPSHELL stack without worrying about their scope rules
109 """
110 """
110 import sys
111 import sys
111 # note lambda expression constitues a function call
112 # note lambda expression constitues a function call
112 # hence fno should be incremented by one
113 # hence fno should be incremented by one
113 getsig = lambda fno: sys._getframe(fno+1).f_globals \
114 getsig = lambda fno: sys._getframe(fno+1).f_globals \
114 ['__builtins__'].__dict__['__sig__']
115 ['__builtins__'].__dict__['__sig__']
115 getlvars = lambda fno: sys._getframe(fno+1).f_locals
116 getlvars = lambda fno: sys._getframe(fno+1).f_locals
116 # trackback until we enter the IPSHELL
117 # trackback until we enter the IPSHELL
117 frame_no = 1
118 frame_no = 1
118 sig = ip.IP.__sig__
119 sig = ip.IP.__sig__
119 fsig = ~sig
120 fsig = ~sig
120 while fsig != sig :
121 while fsig != sig :
121 try:
122 try:
122 fsig = getsig(frame_no)
123 fsig = getsig(frame_no)
123 except (AttributeError, KeyError):
124 except (AttributeError, KeyError):
124 frame_no += 1
125 frame_no += 1
125 except ValueError:
126 except ValueError:
126 # stack is depleted
127 # stack is depleted
127 # call did not originate from IPSHELL
128 # call did not originate from IPSHELL
128 return {}
129 return {}
129 first_frame = frame_no
130 first_frame = frame_no
130 # walk further back until we exit from IPSHELL or deplete stack
131 # walk further back until we exit from IPSHELL or deplete stack
131 try:
132 try:
132 while(sig == getsig(frame_no+1)):
133 while(sig == getsig(frame_no+1)):
133 frame_no += 1
134 frame_no += 1
134 except (AttributeError, KeyError, ValueError):
135 except (AttributeError, KeyError, ValueError):
135 pass
136 pass
136 # merge the locals from top down hence overriding
137 # merge the locals from top down hence overriding
137 # any re-definitions of variables, functions etc.
138 # any re-definitions of variables, functions etc.
138 lvars = {}
139 lvars = {}
139 for fno in range(frame_no, first_frame-1, -1):
140 for fno in range(frame_no, first_frame-1, -1):
140 lvars.update(getlvars(fno))
141 lvars.update(getlvars(fno))
141 #print '\n'*5, first_frame, frame_no, '\n', lvars, '\n'*5 #dbg
142 #print '\n'*5, first_frame, frame_no, '\n', lvars, '\n'*5 #dbg
142 return lvars
143 return lvars
143
144
144 def _runlines(lines):
145 def _runlines(lines):
145 """Run a string of one or more lines of source.
146 """Run a string of one or more lines of source.
146
147
147 This method is capable of running a string containing multiple source
148 This method is capable of running a string containing multiple source
148 lines, as if they had been entered at the IPython prompt. Since it
149 lines, as if they had been entered at the IPython prompt. Since it
149 exposes IPython's processing machinery, the given strings can contain
150 exposes IPython's processing machinery, the given strings can contain
150 magic calls (%magic), special shell access (!cmd), etc."""
151 magic calls (%magic), special shell access (!cmd), etc."""
151
152
152 # We must start with a clean buffer, in case this is run from an
153 # We must start with a clean buffer, in case this is run from an
153 # interactive IPython session (via a magic, for example).
154 # interactive IPython session (via a magic, for example).
154 ip.IP.resetbuffer()
155 ip.IP.resetbuffer()
155 lines = lines.split('\n')
156 lines = lines.split('\n')
156 more = 0
157 more = 0
157 command = ''
158 command = ''
158 for line in lines:
159 for line in lines:
159 # skip blank lines so we don't mess up the prompt counter, but do
160 # skip blank lines so we don't mess up the prompt counter, but do
160 # NOT skip even a blank line if we are in a code block (more is
161 # NOT skip even a blank line if we are in a code block (more is
161 # true)
162 # true)
162 # if command is not empty trim the line
163 # if command is not empty trim the line
163 if command != '' :
164 if command != '' :
164 line = line.strip()
165 line = line.strip()
165 # add the broken line to the command
166 # add the broken line to the command
166 if line and line[-1] == '\\' :
167 if line and line[-1] == '\\' :
167 command += line[0:-1] + ' '
168 command += line[0:-1] + ' '
168 more = True
169 more = True
169 continue
170 continue
170 else :
171 else :
171 # add the last (current) line to the command
172 # add the last (current) line to the command
172 command += line
173 command += line
173 if command or more:
174 if command or more:
174 more = ip.IP.push(ip.IP.prefilter(command,more))
175 more = ip.IP.push(ip.IP.prefilter(command,more))
175 command = ''
176 command = ''
176 # IPython's runsource returns None if there was an error
177 # IPython's runsource returns None if there was an error
177 # compiling the code. This allows us to stop processing right
178 # compiling the code. This allows us to stop processing right
178 # away, so the user gets the error message at the right place.
179 # away, so the user gets the error message at the right place.
179 if more is None:
180 if more is None:
180 break
181 break
181 # final newline in case the input didn't have it, so that the code
182 # final newline in case the input didn't have it, so that the code
182 # actually does get executed
183 # actually does get executed
183 if more:
184 if more:
184 ip.IP.push('\n')
185 ip.IP.push('\n')
185
186
186 ip.IP.runlines = _runlines
187 ip.IP.runlines = _runlines
187
188
188 main()
189 main()
@@ -1,43 +1,43 b''
1 """ User configuration file for IPython
1 """ User configuration file for IPython
2
2
3 This is a more flexible and safe way to configure ipython than *rc files
3 This is a more flexible and safe way to configure ipython than *rc files
4 (ipythonrc, ipythonrc-pysh etc.)
4 (ipythonrc, ipythonrc-pysh etc.)
5
5
6 This file is always imported on ipython startup. You can import the
6 This file is always imported on ipython startup. You can import the
7 ipython extensions you need here (see IPython/Extensions directory).
7 ipython extensions you need here (see IPython/Extensions directory).
8
8
9 Feel free to edit this file to customize your ipython experience.
9 Feel free to edit this file to customize your ipython experience.
10
10
11 Note that as such this file does nothing, for backwards compatibility.
11 Note that as such this file does nothing, for backwards compatibility.
12 Consult e.g. file 'ipy_profile_sh.py' for an example of the things
12 Consult e.g. file 'ipy_profile_sh.py' for an example of the things
13 you can do here.
13 you can do here.
14
14
15 See http://ipython.scipy.org/moin/IpythonExtensionApi for detailed
15 See http://ipython.scipy.org/moin/IpythonExtensionApi for detailed
16 description on what you could do here.
16 description on what you could do here.
17 """
17 """
18
18
19 # Most of your config files and extensions will probably start with this import
19 # Most of your config files and extensions will probably start with this import
20
20
21 import IPython.ipapi
21 import IPython.ipapi
22 ip = IPython.ipapi.get()
22 ip = IPython.ipapi.get()
23
23
24 # You probably want to uncomment this if you did %upgrade -nolegacy
24 # You probably want to uncomment this if you did %upgrade -nolegacy
25 # import ipy_defaults
25 # import ipy_defaults
26
26
27 def main():
27 def main():
28 # Handy tab-completers for %cd, %run, import etc.
28 # Handy tab-completers for %cd, %run, import etc.
29 # Try commenting this out if you have completion problems/slowness
29 # Try commenting this out if you have completion problems/slowness
30 import ipy_stock_completers
30 # import ipy_stock_completers
31
31
32 # uncomment if you want to get ipython -p sh behaviour
32 # uncomment if you want to get ipython -p sh behaviour
33 # without having to use command line switches
33 # without having to use command line switches
34
34
35 # import ipy_profile_sh
35 # import ipy_profile_sh
36
36
37
37
38 o = ip.options
38 o = ip.options
39 # An example on how to set options
39 # An example on how to set options
40 #o.autocall = 1
40 #o.autocall = 1
41 o.system_verbose = 0
41 o.system_verbose = 0
42
42
43 main()
43 main()
@@ -1,6592 +1,6595 b''
1 2007-04-25 Ville Vainio <vivainio@gmail.com>
1 2007-04-25 Ville Vainio <vivainio@gmail.com>
2
2
3 * Extensions/ipy_which.py: added extension for %which magic, works
3 * Extensions/ipy_which.py: added extension for %which magic, works
4 a lot like unix 'which' but also finds and expands aliases, and
4 a lot like unix 'which' but also finds and expands aliases, and
5 allows wildcards.
5 allows wildcards.
6
6
7 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
7 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
8 as opposed to returning nothing.
8 as opposed to returning nothing.
9
10 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
11 ipy_stock_completers on default profile, do import on sh profile.
9
12
10 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
13 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
11
14
12 * Fix bug in iplib.py/safe_execfile when launching ipython with a script like ipython.py foo.py
15 * Fix bug in iplib.py/safe_execfile when launching ipython with a script like ipython.py foo.py
13 which raised a IndexError.
16 which raised a IndexError.
14
17
15 2007-04-21 Ville Vainio <vivainio@gmail.com>
18 2007-04-21 Ville Vainio <vivainio@gmail.com>
16
19
17 * Extensions/ipy_extutil.py: added extension to manage other ipython
20 * Extensions/ipy_extutil.py: added extension to manage other ipython
18 extensions. Now only supports 'ls' == list extensions.
21 extensions. Now only supports 'ls' == list extensions.
19
22
20 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
23 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
21
24
22 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
25 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
23 would prevent use of the exception system outside of a running
26 would prevent use of the exception system outside of a running
24 IPython instance.
27 IPython instance.
25
28
26 2007-04-20 Ville Vainio <vivainio@gmail.com>
29 2007-04-20 Ville Vainio <vivainio@gmail.com>
27
30
28 * Extensions/ipy_render.py: added extension for easy
31 * Extensions/ipy_render.py: added extension for easy
29 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
32 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
30 'Iptl' template notation,
33 'Iptl' template notation,
31
34
32 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
35 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
33 safer & faster 'import' completer.
36 safer & faster 'import' completer.
34
37
35 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
38 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
36 and _ip.defalias(name, command).
39 and _ip.defalias(name, command).
37
40
38 * Extensions/ipy_exportdb.py: New extension for exporting all the
41 * Extensions/ipy_exportdb.py: New extension for exporting all the
39 %store'd data in a portable format (normal ipapi calls like
42 %store'd data in a portable format (normal ipapi calls like
40 defmacro() etc.)
43 defmacro() etc.)
41
44
42 2007-04-19 Ville Vainio <vivainio@gmail.com>
45 2007-04-19 Ville Vainio <vivainio@gmail.com>
43
46
44 * upgrade_dir.py: skip junk files like *.pyc
47 * upgrade_dir.py: skip junk files like *.pyc
45
48
46 * Release.py: version number to 0.8.1
49 * Release.py: version number to 0.8.1
47
50
48 2007-04-18 Ville Vainio <vivainio@gmail.com>
51 2007-04-18 Ville Vainio <vivainio@gmail.com>
49
52
50 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
53 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
51 and later on win32.
54 and later on win32.
52
55
53 2007-04-16 Ville Vainio <vivainio@gmail.com>
56 2007-04-16 Ville Vainio <vivainio@gmail.com>
54
57
55 * iplib.py (showtraceback): Do not crash when running w/o readline.
58 * iplib.py (showtraceback): Do not crash when running w/o readline.
56
59
57 2007-04-12 Walter Doerwald <walter@livinglogic.de>
60 2007-04-12 Walter Doerwald <walter@livinglogic.de>
58
61
59 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
62 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
60 sorted (case sensitive with files and dirs mixed).
63 sorted (case sensitive with files and dirs mixed).
61
64
62 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
65 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
63
66
64 * IPython/Release.py (version): Open trunk for 0.8.1 development.
67 * IPython/Release.py (version): Open trunk for 0.8.1 development.
65
68
66 2007-04-10 *** Released version 0.8.0
69 2007-04-10 *** Released version 0.8.0
67
70
68 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
71 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
69
72
70 * Tag 0.8.0 for release.
73 * Tag 0.8.0 for release.
71
74
72 * IPython/iplib.py (reloadhist): add API function to cleanly
75 * IPython/iplib.py (reloadhist): add API function to cleanly
73 reload the readline history, which was growing inappropriately on
76 reload the readline history, which was growing inappropriately on
74 every %run call.
77 every %run call.
75
78
76 * win32_manual_post_install.py (run): apply last part of Nicolas
79 * win32_manual_post_install.py (run): apply last part of Nicolas
77 Pernetty's patch (I'd accidentally applied it in a different
80 Pernetty's patch (I'd accidentally applied it in a different
78 directory and this particular file didn't get patched).
81 directory and this particular file didn't get patched).
79
82
80 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
83 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
81
84
82 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
85 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
83 find the main thread id and use the proper API call. Thanks to
86 find the main thread id and use the proper API call. Thanks to
84 Stefan for the fix.
87 Stefan for the fix.
85
88
86 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
89 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
87 unit tests to reflect fixed ticket #52, and add more tests sent by
90 unit tests to reflect fixed ticket #52, and add more tests sent by
88 him.
91 him.
89
92
90 * IPython/iplib.py (raw_input): restore the readline completer
93 * IPython/iplib.py (raw_input): restore the readline completer
91 state on every input, in case third-party code messed it up.
94 state on every input, in case third-party code messed it up.
92 (_prefilter): revert recent addition of early-escape checks which
95 (_prefilter): revert recent addition of early-escape checks which
93 prevent many valid alias calls from working.
96 prevent many valid alias calls from working.
94
97
95 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
98 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
96 flag for sigint handler so we don't run a full signal() call on
99 flag for sigint handler so we don't run a full signal() call on
97 each runcode access.
100 each runcode access.
98
101
99 * IPython/Magic.py (magic_whos): small improvement to diagnostic
102 * IPython/Magic.py (magic_whos): small improvement to diagnostic
100 message.
103 message.
101
104
102 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
105 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
103
106
104 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
107 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
105 asynchronous exceptions working, i.e., Ctrl-C can actually
108 asynchronous exceptions working, i.e., Ctrl-C can actually
106 interrupt long-running code in the multithreaded shells.
109 interrupt long-running code in the multithreaded shells.
107
110
108 This is using Tomer Filiba's great ctypes-based trick:
111 This is using Tomer Filiba's great ctypes-based trick:
109 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
112 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
110 this in the past, but hadn't been able to make it work before. So
113 this in the past, but hadn't been able to make it work before. So
111 far it looks like it's actually running, but this needs more
114 far it looks like it's actually running, but this needs more
112 testing. If it really works, I'll be *very* happy, and we'll owe
115 testing. If it really works, I'll be *very* happy, and we'll owe
113 a huge thank you to Tomer. My current implementation is ugly,
116 a huge thank you to Tomer. My current implementation is ugly,
114 hackish and uses nasty globals, but I don't want to try and clean
117 hackish and uses nasty globals, but I don't want to try and clean
115 anything up until we know if it actually works.
118 anything up until we know if it actually works.
116
119
117 NOTE: this feature needs ctypes to work. ctypes is included in
120 NOTE: this feature needs ctypes to work. ctypes is included in
118 Python2.5, but 2.4 users will need to manually install it. This
121 Python2.5, but 2.4 users will need to manually install it. This
119 feature makes multi-threaded shells so much more usable that it's
122 feature makes multi-threaded shells so much more usable that it's
120 a minor price to pay (ctypes is very easy to install, already a
123 a minor price to pay (ctypes is very easy to install, already a
121 requirement for win32 and available in major linux distros).
124 requirement for win32 and available in major linux distros).
122
125
123 2007-04-04 Ville Vainio <vivainio@gmail.com>
126 2007-04-04 Ville Vainio <vivainio@gmail.com>
124
127
125 * Extensions/ipy_completers.py, ipy_stock_completers.py:
128 * Extensions/ipy_completers.py, ipy_stock_completers.py:
126 Moved implementations of 'bundled' completers to ipy_completers.py,
129 Moved implementations of 'bundled' completers to ipy_completers.py,
127 they are only enabled in ipy_stock_completers.py.
130 they are only enabled in ipy_stock_completers.py.
128
131
129 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
132 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
130
133
131 * IPython/PyColorize.py (Parser.format2): Fix identation of
134 * IPython/PyColorize.py (Parser.format2): Fix identation of
132 colorzied output and return early if color scheme is NoColor, to
135 colorzied output and return early if color scheme is NoColor, to
133 avoid unnecessary and expensive tokenization. Closes #131.
136 avoid unnecessary and expensive tokenization. Closes #131.
134
137
135 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
138 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
136
139
137 * IPython/Debugger.py: disable the use of pydb version 1.17. It
140 * IPython/Debugger.py: disable the use of pydb version 1.17. It
138 has a critical bug (a missing import that makes post-mortem not
141 has a critical bug (a missing import that makes post-mortem not
139 work at all). Unfortunately as of this time, this is the version
142 work at all). Unfortunately as of this time, this is the version
140 shipped with Ubuntu Edgy, so quite a few people have this one. I
143 shipped with Ubuntu Edgy, so quite a few people have this one. I
141 hope Edgy will update to a more recent package.
144 hope Edgy will update to a more recent package.
142
145
143 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
146 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
144
147
145 * IPython/iplib.py (_prefilter): close #52, second part of a patch
148 * IPython/iplib.py (_prefilter): close #52, second part of a patch
146 set by Stefan (only the first part had been applied before).
149 set by Stefan (only the first part had been applied before).
147
150
148 * IPython/Extensions/ipy_stock_completers.py (module_completer):
151 * IPython/Extensions/ipy_stock_completers.py (module_completer):
149 remove usage of the dangerous pkgutil.walk_packages(). See
152 remove usage of the dangerous pkgutil.walk_packages(). See
150 details in comments left in the code.
153 details in comments left in the code.
151
154
152 * IPython/Magic.py (magic_whos): add support for numpy arrays
155 * IPython/Magic.py (magic_whos): add support for numpy arrays
153 similar to what we had for Numeric.
156 similar to what we had for Numeric.
154
157
155 * IPython/completer.py (IPCompleter.complete): extend the
158 * IPython/completer.py (IPCompleter.complete): extend the
156 complete() call API to support completions by other mechanisms
159 complete() call API to support completions by other mechanisms
157 than readline. Closes #109.
160 than readline. Closes #109.
158
161
159 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
162 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
160 protect against a bug in Python's execfile(). Closes #123.
163 protect against a bug in Python's execfile(). Closes #123.
161
164
162 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
165 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
163
166
164 * IPython/iplib.py (split_user_input): ensure that when splitting
167 * IPython/iplib.py (split_user_input): ensure that when splitting
165 user input, the part that can be treated as a python name is pure
168 user input, the part that can be treated as a python name is pure
166 ascii (Python identifiers MUST be pure ascii). Part of the
169 ascii (Python identifiers MUST be pure ascii). Part of the
167 ongoing Unicode support work.
170 ongoing Unicode support work.
168
171
169 * IPython/Prompts.py (prompt_specials_color): Add \N for the
172 * IPython/Prompts.py (prompt_specials_color): Add \N for the
170 actual prompt number, without any coloring. This allows users to
173 actual prompt number, without any coloring. This allows users to
171 produce numbered prompts with their own colors. Added after a
174 produce numbered prompts with their own colors. Added after a
172 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
175 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
173
176
174 2007-03-31 Walter Doerwald <walter@livinglogic.de>
177 2007-03-31 Walter Doerwald <walter@livinglogic.de>
175
178
176 * IPython/Extensions/igrid.py: Map the return key
179 * IPython/Extensions/igrid.py: Map the return key
177 to enter() and shift-return to enterattr().
180 to enter() and shift-return to enterattr().
178
181
179 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
182 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
180
183
181 * IPython/Magic.py (magic_psearch): add unicode support by
184 * IPython/Magic.py (magic_psearch): add unicode support by
182 encoding to ascii the input, since this routine also only deals
185 encoding to ascii the input, since this routine also only deals
183 with valid Python names. Fixes a bug reported by Stefan.
186 with valid Python names. Fixes a bug reported by Stefan.
184
187
185 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
188 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
186
189
187 * IPython/Magic.py (_inspect): convert unicode input into ascii
190 * IPython/Magic.py (_inspect): convert unicode input into ascii
188 before trying to evaluate it as a Python identifier. This fixes a
191 before trying to evaluate it as a Python identifier. This fixes a
189 problem that the new unicode support had introduced when analyzing
192 problem that the new unicode support had introduced when analyzing
190 long definition lines for functions.
193 long definition lines for functions.
191
194
192 2007-03-24 Walter Doerwald <walter@livinglogic.de>
195 2007-03-24 Walter Doerwald <walter@livinglogic.de>
193
196
194 * IPython/Extensions/igrid.py: Fix picking. Using
197 * IPython/Extensions/igrid.py: Fix picking. Using
195 igrid with wxPython 2.6 and -wthread should work now.
198 igrid with wxPython 2.6 and -wthread should work now.
196 igrid.display() simply tries to create a frame without
199 igrid.display() simply tries to create a frame without
197 an application. Only if this fails an application is created.
200 an application. Only if this fails an application is created.
198
201
199 2007-03-23 Walter Doerwald <walter@livinglogic.de>
202 2007-03-23 Walter Doerwald <walter@livinglogic.de>
200
203
201 * IPython/Extensions/path.py: Updated to version 2.2.
204 * IPython/Extensions/path.py: Updated to version 2.2.
202
205
203 2007-03-23 Ville Vainio <vivainio@gmail.com>
206 2007-03-23 Ville Vainio <vivainio@gmail.com>
204
207
205 * iplib.py: recursive alias expansion now works better, so that
208 * iplib.py: recursive alias expansion now works better, so that
206 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
209 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
207 doesn't trip up the process, if 'd' has been aliased to 'ls'.
210 doesn't trip up the process, if 'd' has been aliased to 'ls'.
208
211
209 * Extensions/ipy_gnuglobal.py added, provides %global magic
212 * Extensions/ipy_gnuglobal.py added, provides %global magic
210 for users of http://www.gnu.org/software/global
213 for users of http://www.gnu.org/software/global
211
214
212 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
215 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
213 Closes #52. Patch by Stefan van der Walt.
216 Closes #52. Patch by Stefan van der Walt.
214
217
215 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
218 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
216
219
217 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
220 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
218 respect the __file__ attribute when using %run. Thanks to a bug
221 respect the __file__ attribute when using %run. Thanks to a bug
219 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
222 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
220
223
221 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
224 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
222
225
223 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
226 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
224 input. Patch sent by Stefan.
227 input. Patch sent by Stefan.
225
228
226 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
229 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
227 * IPython/Extensions/ipy_stock_completer.py
230 * IPython/Extensions/ipy_stock_completer.py
228 shlex_split, fix bug in shlex_split. len function
231 shlex_split, fix bug in shlex_split. len function
229 call was missing an if statement. Caused shlex_split to
232 call was missing an if statement. Caused shlex_split to
230 sometimes return "" as last element.
233 sometimes return "" as last element.
231
234
232 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
235 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
233
236
234 * IPython/completer.py
237 * IPython/completer.py
235 (IPCompleter.file_matches.single_dir_expand): fix a problem
238 (IPCompleter.file_matches.single_dir_expand): fix a problem
236 reported by Stefan, where directories containign a single subdir
239 reported by Stefan, where directories containign a single subdir
237 would be completed too early.
240 would be completed too early.
238
241
239 * IPython/Shell.py (_load_pylab): Make the execution of 'from
242 * IPython/Shell.py (_load_pylab): Make the execution of 'from
240 pylab import *' when -pylab is given be optional. A new flag,
243 pylab import *' when -pylab is given be optional. A new flag,
241 pylab_import_all controls this behavior, the default is True for
244 pylab_import_all controls this behavior, the default is True for
242 backwards compatibility.
245 backwards compatibility.
243
246
244 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
247 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
245 modified) R. Bernstein's patch for fully syntax highlighted
248 modified) R. Bernstein's patch for fully syntax highlighted
246 tracebacks. The functionality is also available under ultraTB for
249 tracebacks. The functionality is also available under ultraTB for
247 non-ipython users (someone using ultraTB but outside an ipython
250 non-ipython users (someone using ultraTB but outside an ipython
248 session). They can select the color scheme by setting the
251 session). They can select the color scheme by setting the
249 module-level global DEFAULT_SCHEME. The highlight functionality
252 module-level global DEFAULT_SCHEME. The highlight functionality
250 also works when debugging.
253 also works when debugging.
251
254
252 * IPython/genutils.py (IOStream.close): small patch by
255 * IPython/genutils.py (IOStream.close): small patch by
253 R. Bernstein for improved pydb support.
256 R. Bernstein for improved pydb support.
254
257
255 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
258 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
256 DaveS <davls@telus.net> to improve support of debugging under
259 DaveS <davls@telus.net> to improve support of debugging under
257 NTEmacs, including improved pydb behavior.
260 NTEmacs, including improved pydb behavior.
258
261
259 * IPython/Magic.py (magic_prun): Fix saving of profile info for
262 * IPython/Magic.py (magic_prun): Fix saving of profile info for
260 Python 2.5, where the stats object API changed a little. Thanks
263 Python 2.5, where the stats object API changed a little. Thanks
261 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
264 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
262
265
263 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
266 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
264 Pernetty's patch to improve support for (X)Emacs under Win32.
267 Pernetty's patch to improve support for (X)Emacs under Win32.
265
268
266 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
269 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
267
270
268 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
271 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
269 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
272 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
270 a report by Nik Tautenhahn.
273 a report by Nik Tautenhahn.
271
274
272 2007-03-16 Walter Doerwald <walter@livinglogic.de>
275 2007-03-16 Walter Doerwald <walter@livinglogic.de>
273
276
274 * setup.py: Add the igrid help files to the list of data files
277 * setup.py: Add the igrid help files to the list of data files
275 to be installed alongside igrid.
278 to be installed alongside igrid.
276 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
279 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
277 Show the input object of the igrid browser as the window tile.
280 Show the input object of the igrid browser as the window tile.
278 Show the object the cursor is on in the statusbar.
281 Show the object the cursor is on in the statusbar.
279
282
280 2007-03-15 Ville Vainio <vivainio@gmail.com>
283 2007-03-15 Ville Vainio <vivainio@gmail.com>
281
284
282 * Extensions/ipy_stock_completers.py: Fixed exception
285 * Extensions/ipy_stock_completers.py: Fixed exception
283 on mismatching quotes in %run completer. Patch by
286 on mismatching quotes in %run completer. Patch by
284 JοΏ½rgen Stenarson. Closes #127.
287 JοΏ½rgen Stenarson. Closes #127.
285
288
286 2007-03-14 Ville Vainio <vivainio@gmail.com>
289 2007-03-14 Ville Vainio <vivainio@gmail.com>
287
290
288 * Extensions/ext_rehashdir.py: Do not do auto_alias
291 * Extensions/ext_rehashdir.py: Do not do auto_alias
289 in %rehashdir, it clobbers %store'd aliases.
292 in %rehashdir, it clobbers %store'd aliases.
290
293
291 * UserConfig/ipy_profile_sh.py: envpersist.py extension
294 * UserConfig/ipy_profile_sh.py: envpersist.py extension
292 (beefed up %env) imported for sh profile.
295 (beefed up %env) imported for sh profile.
293
296
294 2007-03-10 Walter Doerwald <walter@livinglogic.de>
297 2007-03-10 Walter Doerwald <walter@livinglogic.de>
295
298
296 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
299 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
297 as the default browser.
300 as the default browser.
298 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
301 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
299 As igrid displays all attributes it ever encounters, fetch() (which has
302 As igrid displays all attributes it ever encounters, fetch() (which has
300 been renamed to _fetch()) doesn't have to recalculate the display attributes
303 been renamed to _fetch()) doesn't have to recalculate the display attributes
301 every time a new item is fetched. This should speed up scrolling.
304 every time a new item is fetched. This should speed up scrolling.
302
305
303 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
306 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
304
307
305 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
308 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
306 Schmolck's recently reported tab-completion bug (my previous one
309 Schmolck's recently reported tab-completion bug (my previous one
307 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
310 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
308
311
309 2007-03-09 Walter Doerwald <walter@livinglogic.de>
312 2007-03-09 Walter Doerwald <walter@livinglogic.de>
310
313
311 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
314 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
312 Close help window if exiting igrid.
315 Close help window if exiting igrid.
313
316
314 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
317 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
315
318
316 * IPython/Extensions/ipy_defaults.py: Check if readline is available
319 * IPython/Extensions/ipy_defaults.py: Check if readline is available
317 before calling functions from readline.
320 before calling functions from readline.
318
321
319 2007-03-02 Walter Doerwald <walter@livinglogic.de>
322 2007-03-02 Walter Doerwald <walter@livinglogic.de>
320
323
321 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
324 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
322 igrid is a wxPython-based display object for ipipe. If your system has
325 igrid is a wxPython-based display object for ipipe. If your system has
323 wx installed igrid will be the default display. Without wx ipipe falls
326 wx installed igrid will be the default display. Without wx ipipe falls
324 back to ibrowse (which needs curses). If no curses is installed ipipe
327 back to ibrowse (which needs curses). If no curses is installed ipipe
325 falls back to idump.
328 falls back to idump.
326
329
327 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
330 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
328
331
329 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
332 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
330 my changes from yesterday, they introduced bugs. Will reactivate
333 my changes from yesterday, they introduced bugs. Will reactivate
331 once I get a correct solution, which will be much easier thanks to
334 once I get a correct solution, which will be much easier thanks to
332 Dan Milstein's new prefilter test suite.
335 Dan Milstein's new prefilter test suite.
333
336
334 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
337 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
335
338
336 * IPython/iplib.py (split_user_input): fix input splitting so we
339 * IPython/iplib.py (split_user_input): fix input splitting so we
337 don't attempt attribute accesses on things that can't possibly be
340 don't attempt attribute accesses on things that can't possibly be
338 valid Python attributes. After a bug report by Alex Schmolck.
341 valid Python attributes. After a bug report by Alex Schmolck.
339 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
342 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
340 %magic with explicit % prefix.
343 %magic with explicit % prefix.
341
344
342 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
345 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
343
346
344 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
347 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
345 avoid a DeprecationWarning from GTK.
348 avoid a DeprecationWarning from GTK.
346
349
347 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
350 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
348
351
349 * IPython/genutils.py (clock): I modified clock() to return total
352 * IPython/genutils.py (clock): I modified clock() to return total
350 time, user+system. This is a more commonly needed metric. I also
353 time, user+system. This is a more commonly needed metric. I also
351 introduced the new clocku/clocks to get only user/system time if
354 introduced the new clocku/clocks to get only user/system time if
352 one wants those instead.
355 one wants those instead.
353
356
354 ***WARNING: API CHANGE*** clock() used to return only user time,
357 ***WARNING: API CHANGE*** clock() used to return only user time,
355 so if you want exactly the same results as before, use clocku
358 so if you want exactly the same results as before, use clocku
356 instead.
359 instead.
357
360
358 2007-02-22 Ville Vainio <vivainio@gmail.com>
361 2007-02-22 Ville Vainio <vivainio@gmail.com>
359
362
360 * IPython/Extensions/ipy_p4.py: Extension for improved
363 * IPython/Extensions/ipy_p4.py: Extension for improved
361 p4 (perforce version control system) experience.
364 p4 (perforce version control system) experience.
362 Adds %p4 magic with p4 command completion and
365 Adds %p4 magic with p4 command completion and
363 automatic -G argument (marshall output as python dict)
366 automatic -G argument (marshall output as python dict)
364
367
365 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
368 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
366
369
367 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
370 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
368 stop marks.
371 stop marks.
369 (ClearingMixin): a simple mixin to easily make a Demo class clear
372 (ClearingMixin): a simple mixin to easily make a Demo class clear
370 the screen in between blocks and have empty marquees. The
373 the screen in between blocks and have empty marquees. The
371 ClearDemo and ClearIPDemo classes that use it are included.
374 ClearDemo and ClearIPDemo classes that use it are included.
372
375
373 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
376 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
374
377
375 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
378 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
376 protect against exceptions at Python shutdown time. Patch
379 protect against exceptions at Python shutdown time. Patch
377 sumbmitted to upstream.
380 sumbmitted to upstream.
378
381
379 2007-02-14 Walter Doerwald <walter@livinglogic.de>
382 2007-02-14 Walter Doerwald <walter@livinglogic.de>
380
383
381 * IPython/Extensions/ibrowse.py: If entering the first object level
384 * IPython/Extensions/ibrowse.py: If entering the first object level
382 (i.e. the object for which the browser has been started) fails,
385 (i.e. the object for which the browser has been started) fails,
383 now the error is raised directly (aborting the browser) instead of
386 now the error is raised directly (aborting the browser) instead of
384 running into an empty levels list later.
387 running into an empty levels list later.
385
388
386 2007-02-03 Walter Doerwald <walter@livinglogic.de>
389 2007-02-03 Walter Doerwald <walter@livinglogic.de>
387
390
388 * IPython/Extensions/ipipe.py: Add an xrepr implementation
391 * IPython/Extensions/ipipe.py: Add an xrepr implementation
389 for the noitem object.
392 for the noitem object.
390
393
391 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
394 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
392
395
393 * IPython/completer.py (Completer.attr_matches): Fix small
396 * IPython/completer.py (Completer.attr_matches): Fix small
394 tab-completion bug with Enthought Traits objects with units.
397 tab-completion bug with Enthought Traits objects with units.
395 Thanks to a bug report by Tom Denniston
398 Thanks to a bug report by Tom Denniston
396 <tom.denniston-AT-alum.dartmouth.org>.
399 <tom.denniston-AT-alum.dartmouth.org>.
397
400
398 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
401 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
399
402
400 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
403 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
401 bug where only .ipy or .py would be completed. Once the first
404 bug where only .ipy or .py would be completed. Once the first
402 argument to %run has been given, all completions are valid because
405 argument to %run has been given, all completions are valid because
403 they are the arguments to the script, which may well be non-python
406 they are the arguments to the script, which may well be non-python
404 filenames.
407 filenames.
405
408
406 * IPython/irunner.py (InteractiveRunner.run_source): major updates
409 * IPython/irunner.py (InteractiveRunner.run_source): major updates
407 to irunner to allow it to correctly support real doctesting of
410 to irunner to allow it to correctly support real doctesting of
408 out-of-process ipython code.
411 out-of-process ipython code.
409
412
410 * IPython/Magic.py (magic_cd): Make the setting of the terminal
413 * IPython/Magic.py (magic_cd): Make the setting of the terminal
411 title an option (-noterm_title) because it completely breaks
414 title an option (-noterm_title) because it completely breaks
412 doctesting.
415 doctesting.
413
416
414 * IPython/demo.py: fix IPythonDemo class that was not actually working.
417 * IPython/demo.py: fix IPythonDemo class that was not actually working.
415
418
416 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
419 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
417
420
418 * IPython/irunner.py (main): fix small bug where extensions were
421 * IPython/irunner.py (main): fix small bug where extensions were
419 not being correctly recognized.
422 not being correctly recognized.
420
423
421 2007-01-23 Walter Doerwald <walter@livinglogic.de>
424 2007-01-23 Walter Doerwald <walter@livinglogic.de>
422
425
423 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
426 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
424 a string containing a single line yields the string itself as the
427 a string containing a single line yields the string itself as the
425 only item.
428 only item.
426
429
427 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
430 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
428 object if it's the same as the one on the last level (This avoids
431 object if it's the same as the one on the last level (This avoids
429 infinite recursion for one line strings).
432 infinite recursion for one line strings).
430
433
431 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
434 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
432
435
433 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
436 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
434 all output streams before printing tracebacks. This ensures that
437 all output streams before printing tracebacks. This ensures that
435 user output doesn't end up interleaved with traceback output.
438 user output doesn't end up interleaved with traceback output.
436
439
437 2007-01-10 Ville Vainio <vivainio@gmail.com>
440 2007-01-10 Ville Vainio <vivainio@gmail.com>
438
441
439 * Extensions/envpersist.py: Turbocharged %env that remembers
442 * Extensions/envpersist.py: Turbocharged %env that remembers
440 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
443 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
441 "%env VISUAL=jed".
444 "%env VISUAL=jed".
442
445
443 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
446 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
444
447
445 * IPython/iplib.py (showtraceback): ensure that we correctly call
448 * IPython/iplib.py (showtraceback): ensure that we correctly call
446 custom handlers in all cases (some with pdb were slipping through,
449 custom handlers in all cases (some with pdb were slipping through,
447 but I'm not exactly sure why).
450 but I'm not exactly sure why).
448
451
449 * IPython/Debugger.py (Tracer.__init__): added new class to
452 * IPython/Debugger.py (Tracer.__init__): added new class to
450 support set_trace-like usage of IPython's enhanced debugger.
453 support set_trace-like usage of IPython's enhanced debugger.
451
454
452 2006-12-24 Ville Vainio <vivainio@gmail.com>
455 2006-12-24 Ville Vainio <vivainio@gmail.com>
453
456
454 * ipmaker.py: more informative message when ipy_user_conf
457 * ipmaker.py: more informative message when ipy_user_conf
455 import fails (suggest running %upgrade).
458 import fails (suggest running %upgrade).
456
459
457 * tools/run_ipy_in_profiler.py: Utility to see where
460 * tools/run_ipy_in_profiler.py: Utility to see where
458 the time during IPython startup is spent.
461 the time during IPython startup is spent.
459
462
460 2006-12-20 Ville Vainio <vivainio@gmail.com>
463 2006-12-20 Ville Vainio <vivainio@gmail.com>
461
464
462 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
465 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
463
466
464 * ipapi.py: Add new ipapi method, expand_alias.
467 * ipapi.py: Add new ipapi method, expand_alias.
465
468
466 * Release.py: Bump up version to 0.7.4.svn
469 * Release.py: Bump up version to 0.7.4.svn
467
470
468 2006-12-17 Ville Vainio <vivainio@gmail.com>
471 2006-12-17 Ville Vainio <vivainio@gmail.com>
469
472
470 * Extensions/jobctrl.py: Fixed &cmd arg arg...
473 * Extensions/jobctrl.py: Fixed &cmd arg arg...
471 to work properly on posix too
474 to work properly on posix too
472
475
473 * Release.py: Update revnum (version is still just 0.7.3).
476 * Release.py: Update revnum (version is still just 0.7.3).
474
477
475 2006-12-15 Ville Vainio <vivainio@gmail.com>
478 2006-12-15 Ville Vainio <vivainio@gmail.com>
476
479
477 * scripts/ipython_win_post_install: create ipython.py in
480 * scripts/ipython_win_post_install: create ipython.py in
478 prefix + "/scripts".
481 prefix + "/scripts".
479
482
480 * Release.py: Update version to 0.7.3.
483 * Release.py: Update version to 0.7.3.
481
484
482 2006-12-14 Ville Vainio <vivainio@gmail.com>
485 2006-12-14 Ville Vainio <vivainio@gmail.com>
483
486
484 * scripts/ipython_win_post_install: Overwrite old shortcuts
487 * scripts/ipython_win_post_install: Overwrite old shortcuts
485 if they already exist
488 if they already exist
486
489
487 * Release.py: release 0.7.3rc2
490 * Release.py: release 0.7.3rc2
488
491
489 2006-12-13 Ville Vainio <vivainio@gmail.com>
492 2006-12-13 Ville Vainio <vivainio@gmail.com>
490
493
491 * Branch and update Release.py for 0.7.3rc1
494 * Branch and update Release.py for 0.7.3rc1
492
495
493 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
496 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
494
497
495 * IPython/Shell.py (IPShellWX): update for current WX naming
498 * IPython/Shell.py (IPShellWX): update for current WX naming
496 conventions, to avoid a deprecation warning with current WX
499 conventions, to avoid a deprecation warning with current WX
497 versions. Thanks to a report by Danny Shevitz.
500 versions. Thanks to a report by Danny Shevitz.
498
501
499 2006-12-12 Ville Vainio <vivainio@gmail.com>
502 2006-12-12 Ville Vainio <vivainio@gmail.com>
500
503
501 * ipmaker.py: apply david cournapeau's patch to make
504 * ipmaker.py: apply david cournapeau's patch to make
502 import_some work properly even when ipythonrc does
505 import_some work properly even when ipythonrc does
503 import_some on empty list (it was an old bug!).
506 import_some on empty list (it was an old bug!).
504
507
505 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
508 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
506 Add deprecation note to ipythonrc and a url to wiki
509 Add deprecation note to ipythonrc and a url to wiki
507 in ipy_user_conf.py
510 in ipy_user_conf.py
508
511
509
512
510 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
513 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
511 as if it was typed on IPython command prompt, i.e.
514 as if it was typed on IPython command prompt, i.e.
512 as IPython script.
515 as IPython script.
513
516
514 * example-magic.py, magic_grepl.py: remove outdated examples
517 * example-magic.py, magic_grepl.py: remove outdated examples
515
518
516 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
519 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
517
520
518 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
521 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
519 is called before any exception has occurred.
522 is called before any exception has occurred.
520
523
521 2006-12-08 Ville Vainio <vivainio@gmail.com>
524 2006-12-08 Ville Vainio <vivainio@gmail.com>
522
525
523 * Extensions/ipy_stock_completers.py: fix cd completer
526 * Extensions/ipy_stock_completers.py: fix cd completer
524 to translate /'s to \'s again.
527 to translate /'s to \'s again.
525
528
526 * completer.py: prevent traceback on file completions w/
529 * completer.py: prevent traceback on file completions w/
527 backslash.
530 backslash.
528
531
529 * Release.py: Update release number to 0.7.3b3 for release
532 * Release.py: Update release number to 0.7.3b3 for release
530
533
531 2006-12-07 Ville Vainio <vivainio@gmail.com>
534 2006-12-07 Ville Vainio <vivainio@gmail.com>
532
535
533 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
536 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
534 while executing external code. Provides more shell-like behaviour
537 while executing external code. Provides more shell-like behaviour
535 and overall better response to ctrl + C / ctrl + break.
538 and overall better response to ctrl + C / ctrl + break.
536
539
537 * tools/make_tarball.py: new script to create tarball straight from svn
540 * tools/make_tarball.py: new script to create tarball straight from svn
538 (setup.py sdist doesn't work on win32).
541 (setup.py sdist doesn't work on win32).
539
542
540 * Extensions/ipy_stock_completers.py: fix cd completer to give up
543 * Extensions/ipy_stock_completers.py: fix cd completer to give up
541 on dirnames with spaces and use the default completer instead.
544 on dirnames with spaces and use the default completer instead.
542
545
543 * Revision.py: Change version to 0.7.3b2 for release.
546 * Revision.py: Change version to 0.7.3b2 for release.
544
547
545 2006-12-05 Ville Vainio <vivainio@gmail.com>
548 2006-12-05 Ville Vainio <vivainio@gmail.com>
546
549
547 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
550 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
548 pydb patch 4 (rm debug printing, py 2.5 checking)
551 pydb patch 4 (rm debug printing, py 2.5 checking)
549
552
550 2006-11-30 Walter Doerwald <walter@livinglogic.de>
553 2006-11-30 Walter Doerwald <walter@livinglogic.de>
551 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
554 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
552 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
555 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
553 "refreshfind" (mapped to "R") does the same but tries to go back to the same
556 "refreshfind" (mapped to "R") does the same but tries to go back to the same
554 object the cursor was on before the refresh. The command "markrange" is
557 object the cursor was on before the refresh. The command "markrange" is
555 mapped to "%" now.
558 mapped to "%" now.
556 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
559 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
557
560
558 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
561 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
559
562
560 * IPython/Magic.py (magic_debug): new %debug magic to activate the
563 * IPython/Magic.py (magic_debug): new %debug magic to activate the
561 interactive debugger on the last traceback, without having to call
564 interactive debugger on the last traceback, without having to call
562 %pdb and rerun your code. Made minor changes in various modules,
565 %pdb and rerun your code. Made minor changes in various modules,
563 should automatically recognize pydb if available.
566 should automatically recognize pydb if available.
564
567
565 2006-11-28 Ville Vainio <vivainio@gmail.com>
568 2006-11-28 Ville Vainio <vivainio@gmail.com>
566
569
567 * completer.py: If the text start with !, show file completions
570 * completer.py: If the text start with !, show file completions
568 properly. This helps when trying to complete command name
571 properly. This helps when trying to complete command name
569 for shell escapes.
572 for shell escapes.
570
573
571 2006-11-27 Ville Vainio <vivainio@gmail.com>
574 2006-11-27 Ville Vainio <vivainio@gmail.com>
572
575
573 * ipy_stock_completers.py: bzr completer submitted by Stefan van
576 * ipy_stock_completers.py: bzr completer submitted by Stefan van
574 der Walt. Clean up svn and hg completers by using a common
577 der Walt. Clean up svn and hg completers by using a common
575 vcs_completer.
578 vcs_completer.
576
579
577 2006-11-26 Ville Vainio <vivainio@gmail.com>
580 2006-11-26 Ville Vainio <vivainio@gmail.com>
578
581
579 * Remove ipconfig and %config; you should use _ip.options structure
582 * Remove ipconfig and %config; you should use _ip.options structure
580 directly instead!
583 directly instead!
581
584
582 * genutils.py: add wrap_deprecated function for deprecating callables
585 * genutils.py: add wrap_deprecated function for deprecating callables
583
586
584 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
587 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
585 _ip.system instead. ipalias is redundant.
588 _ip.system instead. ipalias is redundant.
586
589
587 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
590 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
588 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
591 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
589 explicit.
592 explicit.
590
593
591 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
594 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
592 completer. Try it by entering 'hg ' and pressing tab.
595 completer. Try it by entering 'hg ' and pressing tab.
593
596
594 * macro.py: Give Macro a useful __repr__ method
597 * macro.py: Give Macro a useful __repr__ method
595
598
596 * Magic.py: %whos abbreviates the typename of Macro for brevity.
599 * Magic.py: %whos abbreviates the typename of Macro for brevity.
597
600
598 2006-11-24 Walter Doerwald <walter@livinglogic.de>
601 2006-11-24 Walter Doerwald <walter@livinglogic.de>
599 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
602 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
600 we don't get a duplicate ipipe module, where registration of the xrepr
603 we don't get a duplicate ipipe module, where registration of the xrepr
601 implementation for Text is useless.
604 implementation for Text is useless.
602
605
603 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
606 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
604
607
605 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
608 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
606
609
607 2006-11-24 Ville Vainio <vivainio@gmail.com>
610 2006-11-24 Ville Vainio <vivainio@gmail.com>
608
611
609 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
612 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
610 try to use "cProfile" instead of the slower pure python
613 try to use "cProfile" instead of the slower pure python
611 "profile"
614 "profile"
612
615
613 2006-11-23 Ville Vainio <vivainio@gmail.com>
616 2006-11-23 Ville Vainio <vivainio@gmail.com>
614
617
615 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
618 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
616 Qt+IPython+Designer link in documentation.
619 Qt+IPython+Designer link in documentation.
617
620
618 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
621 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
619 correct Pdb object to %pydb.
622 correct Pdb object to %pydb.
620
623
621
624
622 2006-11-22 Walter Doerwald <walter@livinglogic.de>
625 2006-11-22 Walter Doerwald <walter@livinglogic.de>
623 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
626 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
624 generic xrepr(), otherwise the list implementation would kick in.
627 generic xrepr(), otherwise the list implementation would kick in.
625
628
626 2006-11-21 Ville Vainio <vivainio@gmail.com>
629 2006-11-21 Ville Vainio <vivainio@gmail.com>
627
630
628 * upgrade_dir.py: Now actually overwrites a nonmodified user file
631 * upgrade_dir.py: Now actually overwrites a nonmodified user file
629 with one from UserConfig.
632 with one from UserConfig.
630
633
631 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
634 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
632 it was missing which broke the sh profile.
635 it was missing which broke the sh profile.
633
636
634 * completer.py: file completer now uses explicit '/' instead
637 * completer.py: file completer now uses explicit '/' instead
635 of os.path.join, expansion of 'foo' was broken on win32
638 of os.path.join, expansion of 'foo' was broken on win32
636 if there was one directory with name 'foobar'.
639 if there was one directory with name 'foobar'.
637
640
638 * A bunch of patches from Kirill Smelkov:
641 * A bunch of patches from Kirill Smelkov:
639
642
640 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
643 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
641
644
642 * [patch 7/9] Implement %page -r (page in raw mode) -
645 * [patch 7/9] Implement %page -r (page in raw mode) -
643
646
644 * [patch 5/9] ScientificPython webpage has moved
647 * [patch 5/9] ScientificPython webpage has moved
645
648
646 * [patch 4/9] The manual mentions %ds, should be %dhist
649 * [patch 4/9] The manual mentions %ds, should be %dhist
647
650
648 * [patch 3/9] Kill old bits from %prun doc.
651 * [patch 3/9] Kill old bits from %prun doc.
649
652
650 * [patch 1/9] Fix typos here and there.
653 * [patch 1/9] Fix typos here and there.
651
654
652 2006-11-08 Ville Vainio <vivainio@gmail.com>
655 2006-11-08 Ville Vainio <vivainio@gmail.com>
653
656
654 * completer.py (attr_matches): catch all exceptions raised
657 * completer.py (attr_matches): catch all exceptions raised
655 by eval of expr with dots.
658 by eval of expr with dots.
656
659
657 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
660 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
658
661
659 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
662 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
660 input if it starts with whitespace. This allows you to paste
663 input if it starts with whitespace. This allows you to paste
661 indented input from any editor without manually having to type in
664 indented input from any editor without manually having to type in
662 the 'if 1:', which is convenient when working interactively.
665 the 'if 1:', which is convenient when working interactively.
663 Slightly modifed version of a patch by Bo Peng
666 Slightly modifed version of a patch by Bo Peng
664 <bpeng-AT-rice.edu>.
667 <bpeng-AT-rice.edu>.
665
668
666 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
669 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
667
670
668 * IPython/irunner.py (main): modified irunner so it automatically
671 * IPython/irunner.py (main): modified irunner so it automatically
669 recognizes the right runner to use based on the extension (.py for
672 recognizes the right runner to use based on the extension (.py for
670 python, .ipy for ipython and .sage for sage).
673 python, .ipy for ipython and .sage for sage).
671
674
672 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
675 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
673 visible in ipapi as ip.config(), to programatically control the
676 visible in ipapi as ip.config(), to programatically control the
674 internal rc object. There's an accompanying %config magic for
677 internal rc object. There's an accompanying %config magic for
675 interactive use, which has been enhanced to match the
678 interactive use, which has been enhanced to match the
676 funtionality in ipconfig.
679 funtionality in ipconfig.
677
680
678 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
681 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
679 so it's not just a toggle, it now takes an argument. Add support
682 so it's not just a toggle, it now takes an argument. Add support
680 for a customizable header when making system calls, as the new
683 for a customizable header when making system calls, as the new
681 system_header variable in the ipythonrc file.
684 system_header variable in the ipythonrc file.
682
685
683 2006-11-03 Walter Doerwald <walter@livinglogic.de>
686 2006-11-03 Walter Doerwald <walter@livinglogic.de>
684
687
685 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
688 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
686 generic functions (using Philip J. Eby's simplegeneric package).
689 generic functions (using Philip J. Eby's simplegeneric package).
687 This makes it possible to customize the display of third-party classes
690 This makes it possible to customize the display of third-party classes
688 without having to monkeypatch them. xiter() no longer supports a mode
691 without having to monkeypatch them. xiter() no longer supports a mode
689 argument and the XMode class has been removed. The same functionality can
692 argument and the XMode class has been removed. The same functionality can
690 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
693 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
691 One consequence of the switch to generic functions is that xrepr() and
694 One consequence of the switch to generic functions is that xrepr() and
692 xattrs() implementation must define the default value for the mode
695 xattrs() implementation must define the default value for the mode
693 argument themselves and xattrs() implementations must return real
696 argument themselves and xattrs() implementations must return real
694 descriptors.
697 descriptors.
695
698
696 * IPython/external: This new subpackage will contain all third-party
699 * IPython/external: This new subpackage will contain all third-party
697 packages that are bundled with IPython. (The first one is simplegeneric).
700 packages that are bundled with IPython. (The first one is simplegeneric).
698
701
699 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
702 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
700 directory which as been dropped in r1703.
703 directory which as been dropped in r1703.
701
704
702 * IPython/Extensions/ipipe.py (iless): Fixed.
705 * IPython/Extensions/ipipe.py (iless): Fixed.
703
706
704 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
707 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
705
708
706 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
709 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
707
710
708 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
711 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
709 handling in variable expansion so that shells and magics recognize
712 handling in variable expansion so that shells and magics recognize
710 function local scopes correctly. Bug reported by Brian.
713 function local scopes correctly. Bug reported by Brian.
711
714
712 * scripts/ipython: remove the very first entry in sys.path which
715 * scripts/ipython: remove the very first entry in sys.path which
713 Python auto-inserts for scripts, so that sys.path under IPython is
716 Python auto-inserts for scripts, so that sys.path under IPython is
714 as similar as possible to that under plain Python.
717 as similar as possible to that under plain Python.
715
718
716 * IPython/completer.py (IPCompleter.file_matches): Fix
719 * IPython/completer.py (IPCompleter.file_matches): Fix
717 tab-completion so that quotes are not closed unless the completion
720 tab-completion so that quotes are not closed unless the completion
718 is unambiguous. After a request by Stefan. Minor cleanups in
721 is unambiguous. After a request by Stefan. Minor cleanups in
719 ipy_stock_completers.
722 ipy_stock_completers.
720
723
721 2006-11-02 Ville Vainio <vivainio@gmail.com>
724 2006-11-02 Ville Vainio <vivainio@gmail.com>
722
725
723 * ipy_stock_completers.py: Add %run and %cd completers.
726 * ipy_stock_completers.py: Add %run and %cd completers.
724
727
725 * completer.py: Try running custom completer for both
728 * completer.py: Try running custom completer for both
726 "foo" and "%foo" if the command is just "foo". Ignore case
729 "foo" and "%foo" if the command is just "foo". Ignore case
727 when filtering possible completions.
730 when filtering possible completions.
728
731
729 * UserConfig/ipy_user_conf.py: install stock completers as default
732 * UserConfig/ipy_user_conf.py: install stock completers as default
730
733
731 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
734 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
732 simplified readline history save / restore through a wrapper
735 simplified readline history save / restore through a wrapper
733 function
736 function
734
737
735
738
736 2006-10-31 Ville Vainio <vivainio@gmail.com>
739 2006-10-31 Ville Vainio <vivainio@gmail.com>
737
740
738 * strdispatch.py, completer.py, ipy_stock_completers.py:
741 * strdispatch.py, completer.py, ipy_stock_completers.py:
739 Allow str_key ("command") in completer hooks. Implement
742 Allow str_key ("command") in completer hooks. Implement
740 trivial completer for 'import' (stdlib modules only). Rename
743 trivial completer for 'import' (stdlib modules only). Rename
741 ipy_linux_package_managers.py to ipy_stock_completers.py.
744 ipy_linux_package_managers.py to ipy_stock_completers.py.
742 SVN completer.
745 SVN completer.
743
746
744 * Extensions/ledit.py: %magic line editor for easily and
747 * Extensions/ledit.py: %magic line editor for easily and
745 incrementally manipulating lists of strings. The magic command
748 incrementally manipulating lists of strings. The magic command
746 name is %led.
749 name is %led.
747
750
748 2006-10-30 Ville Vainio <vivainio@gmail.com>
751 2006-10-30 Ville Vainio <vivainio@gmail.com>
749
752
750 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
753 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
751 Bernsteins's patches for pydb integration.
754 Bernsteins's patches for pydb integration.
752 http://bashdb.sourceforge.net/pydb/
755 http://bashdb.sourceforge.net/pydb/
753
756
754 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
757 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
755 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
758 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
756 custom completer hook to allow the users to implement their own
759 custom completer hook to allow the users to implement their own
757 completers. See ipy_linux_package_managers.py for example. The
760 completers. See ipy_linux_package_managers.py for example. The
758 hook name is 'complete_command'.
761 hook name is 'complete_command'.
759
762
760 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
763 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
761
764
762 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
765 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
763 Numeric leftovers.
766 Numeric leftovers.
764
767
765 * ipython.el (py-execute-region): apply Stefan's patch to fix
768 * ipython.el (py-execute-region): apply Stefan's patch to fix
766 garbled results if the python shell hasn't been previously started.
769 garbled results if the python shell hasn't been previously started.
767
770
768 * IPython/genutils.py (arg_split): moved to genutils, since it's a
771 * IPython/genutils.py (arg_split): moved to genutils, since it's a
769 pretty generic function and useful for other things.
772 pretty generic function and useful for other things.
770
773
771 * IPython/OInspect.py (getsource): Add customizable source
774 * IPython/OInspect.py (getsource): Add customizable source
772 extractor. After a request/patch form W. Stein (SAGE).
775 extractor. After a request/patch form W. Stein (SAGE).
773
776
774 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
777 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
775 window size to a more reasonable value from what pexpect does,
778 window size to a more reasonable value from what pexpect does,
776 since their choice causes wrapping bugs with long input lines.
779 since their choice causes wrapping bugs with long input lines.
777
780
778 2006-10-28 Ville Vainio <vivainio@gmail.com>
781 2006-10-28 Ville Vainio <vivainio@gmail.com>
779
782
780 * Magic.py (%run): Save and restore the readline history from
783 * Magic.py (%run): Save and restore the readline history from
781 file around %run commands to prevent side effects from
784 file around %run commands to prevent side effects from
782 %runned programs that might use readline (e.g. pydb).
785 %runned programs that might use readline (e.g. pydb).
783
786
784 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
787 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
785 invoking the pydb enhanced debugger.
788 invoking the pydb enhanced debugger.
786
789
787 2006-10-23 Walter Doerwald <walter@livinglogic.de>
790 2006-10-23 Walter Doerwald <walter@livinglogic.de>
788
791
789 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
792 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
790 call the base class method and propagate the return value to
793 call the base class method and propagate the return value to
791 ifile. This is now done by path itself.
794 ifile. This is now done by path itself.
792
795
793 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
796 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
794
797
795 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
798 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
796 api: set_crash_handler(), to expose the ability to change the
799 api: set_crash_handler(), to expose the ability to change the
797 internal crash handler.
800 internal crash handler.
798
801
799 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
802 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
800 the various parameters of the crash handler so that apps using
803 the various parameters of the crash handler so that apps using
801 IPython as their engine can customize crash handling. Ipmlemented
804 IPython as their engine can customize crash handling. Ipmlemented
802 at the request of SAGE.
805 at the request of SAGE.
803
806
804 2006-10-14 Ville Vainio <vivainio@gmail.com>
807 2006-10-14 Ville Vainio <vivainio@gmail.com>
805
808
806 * Magic.py, ipython.el: applied first "safe" part of Rocky
809 * Magic.py, ipython.el: applied first "safe" part of Rocky
807 Bernstein's patch set for pydb integration.
810 Bernstein's patch set for pydb integration.
808
811
809 * Magic.py (%unalias, %alias): %store'd aliases can now be
812 * Magic.py (%unalias, %alias): %store'd aliases can now be
810 removed with '%unalias'. %alias w/o args now shows most
813 removed with '%unalias'. %alias w/o args now shows most
811 interesting (stored / manually defined) aliases last
814 interesting (stored / manually defined) aliases last
812 where they catch the eye w/o scrolling.
815 where they catch the eye w/o scrolling.
813
816
814 * Magic.py (%rehashx), ext_rehashdir.py: files with
817 * Magic.py (%rehashx), ext_rehashdir.py: files with
815 'py' extension are always considered executable, even
818 'py' extension are always considered executable, even
816 when not in PATHEXT environment variable.
819 when not in PATHEXT environment variable.
817
820
818 2006-10-12 Ville Vainio <vivainio@gmail.com>
821 2006-10-12 Ville Vainio <vivainio@gmail.com>
819
822
820 * jobctrl.py: Add new "jobctrl" extension for spawning background
823 * jobctrl.py: Add new "jobctrl" extension for spawning background
821 processes with "&find /". 'import jobctrl' to try it out. Requires
824 processes with "&find /". 'import jobctrl' to try it out. Requires
822 'subprocess' module, standard in python 2.4+.
825 'subprocess' module, standard in python 2.4+.
823
826
824 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
827 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
825 so if foo -> bar and bar -> baz, then foo -> baz.
828 so if foo -> bar and bar -> baz, then foo -> baz.
826
829
827 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
830 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
828
831
829 * IPython/Magic.py (Magic.parse_options): add a new posix option
832 * IPython/Magic.py (Magic.parse_options): add a new posix option
830 to allow parsing of input args in magics that doesn't strip quotes
833 to allow parsing of input args in magics that doesn't strip quotes
831 (if posix=False). This also closes %timeit bug reported by
834 (if posix=False). This also closes %timeit bug reported by
832 Stefan.
835 Stefan.
833
836
834 2006-10-03 Ville Vainio <vivainio@gmail.com>
837 2006-10-03 Ville Vainio <vivainio@gmail.com>
835
838
836 * iplib.py (raw_input, interact): Return ValueError catching for
839 * iplib.py (raw_input, interact): Return ValueError catching for
837 raw_input. Fixes infinite loop for sys.stdin.close() or
840 raw_input. Fixes infinite loop for sys.stdin.close() or
838 sys.stdout.close().
841 sys.stdout.close().
839
842
840 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
843 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
841
844
842 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
845 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
843 to help in handling doctests. irunner is now pretty useful for
846 to help in handling doctests. irunner is now pretty useful for
844 running standalone scripts and simulate a full interactive session
847 running standalone scripts and simulate a full interactive session
845 in a format that can be then pasted as a doctest.
848 in a format that can be then pasted as a doctest.
846
849
847 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
850 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
848 on top of the default (useless) ones. This also fixes the nasty
851 on top of the default (useless) ones. This also fixes the nasty
849 way in which 2.5's Quitter() exits (reverted [1785]).
852 way in which 2.5's Quitter() exits (reverted [1785]).
850
853
851 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
854 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
852 2.5.
855 2.5.
853
856
854 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
857 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
855 color scheme is updated as well when color scheme is changed
858 color scheme is updated as well when color scheme is changed
856 interactively.
859 interactively.
857
860
858 2006-09-27 Ville Vainio <vivainio@gmail.com>
861 2006-09-27 Ville Vainio <vivainio@gmail.com>
859
862
860 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
863 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
861 infinite loop and just exit. It's a hack, but will do for a while.
864 infinite loop and just exit. It's a hack, but will do for a while.
862
865
863 2006-08-25 Walter Doerwald <walter@livinglogic.de>
866 2006-08-25 Walter Doerwald <walter@livinglogic.de>
864
867
865 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
868 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
866 the constructor, this makes it possible to get a list of only directories
869 the constructor, this makes it possible to get a list of only directories
867 or only files.
870 or only files.
868
871
869 2006-08-12 Ville Vainio <vivainio@gmail.com>
872 2006-08-12 Ville Vainio <vivainio@gmail.com>
870
873
871 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
874 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
872 they broke unittest
875 they broke unittest
873
876
874 2006-08-11 Ville Vainio <vivainio@gmail.com>
877 2006-08-11 Ville Vainio <vivainio@gmail.com>
875
878
876 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
879 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
877 by resolving issue properly, i.e. by inheriting FakeModule
880 by resolving issue properly, i.e. by inheriting FakeModule
878 from types.ModuleType. Pickling ipython interactive data
881 from types.ModuleType. Pickling ipython interactive data
879 should still work as usual (testing appreciated).
882 should still work as usual (testing appreciated).
880
883
881 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
884 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
882
885
883 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
886 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
884 running under python 2.3 with code from 2.4 to fix a bug with
887 running under python 2.3 with code from 2.4 to fix a bug with
885 help(). Reported by the Debian maintainers, Norbert Tretkowski
888 help(). Reported by the Debian maintainers, Norbert Tretkowski
886 <norbert-AT-tretkowski.de> and Alexandre Fayolle
889 <norbert-AT-tretkowski.de> and Alexandre Fayolle
887 <afayolle-AT-debian.org>.
890 <afayolle-AT-debian.org>.
888
891
889 2006-08-04 Walter Doerwald <walter@livinglogic.de>
892 2006-08-04 Walter Doerwald <walter@livinglogic.de>
890
893
891 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
894 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
892 (which was displaying "quit" twice).
895 (which was displaying "quit" twice).
893
896
894 2006-07-28 Walter Doerwald <walter@livinglogic.de>
897 2006-07-28 Walter Doerwald <walter@livinglogic.de>
895
898
896 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
899 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
897 the mode argument).
900 the mode argument).
898
901
899 2006-07-27 Walter Doerwald <walter@livinglogic.de>
902 2006-07-27 Walter Doerwald <walter@livinglogic.de>
900
903
901 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
904 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
902 not running under IPython.
905 not running under IPython.
903
906
904 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
907 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
905 and make it iterable (iterating over the attribute itself). Add two new
908 and make it iterable (iterating over the attribute itself). Add two new
906 magic strings for __xattrs__(): If the string starts with "-", the attribute
909 magic strings for __xattrs__(): If the string starts with "-", the attribute
907 will not be displayed in ibrowse's detail view (but it can still be
910 will not be displayed in ibrowse's detail view (but it can still be
908 iterated over). This makes it possible to add attributes that are large
911 iterated over). This makes it possible to add attributes that are large
909 lists or generator methods to the detail view. Replace magic attribute names
912 lists or generator methods to the detail view. Replace magic attribute names
910 and _attrname() and _getattr() with "descriptors": For each type of magic
913 and _attrname() and _getattr() with "descriptors": For each type of magic
911 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
914 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
912 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
915 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
913 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
916 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
914 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
917 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
915 are still supported.
918 are still supported.
916
919
917 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
920 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
918 fails in ibrowse.fetch(), the exception object is added as the last item
921 fails in ibrowse.fetch(), the exception object is added as the last item
919 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
922 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
920 a generator throws an exception midway through execution.
923 a generator throws an exception midway through execution.
921
924
922 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
925 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
923 encoding into methods.
926 encoding into methods.
924
927
925 2006-07-26 Ville Vainio <vivainio@gmail.com>
928 2006-07-26 Ville Vainio <vivainio@gmail.com>
926
929
927 * iplib.py: history now stores multiline input as single
930 * iplib.py: history now stores multiline input as single
928 history entries. Patch by Jorgen Cederlof.
931 history entries. Patch by Jorgen Cederlof.
929
932
930 2006-07-18 Walter Doerwald <walter@livinglogic.de>
933 2006-07-18 Walter Doerwald <walter@livinglogic.de>
931
934
932 * IPython/Extensions/ibrowse.py: Make cursor visible over
935 * IPython/Extensions/ibrowse.py: Make cursor visible over
933 non existing attributes.
936 non existing attributes.
934
937
935 2006-07-14 Walter Doerwald <walter@livinglogic.de>
938 2006-07-14 Walter Doerwald <walter@livinglogic.de>
936
939
937 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
940 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
938 error output of the running command doesn't mess up the screen.
941 error output of the running command doesn't mess up the screen.
939
942
940 2006-07-13 Walter Doerwald <walter@livinglogic.de>
943 2006-07-13 Walter Doerwald <walter@livinglogic.de>
941
944
942 * IPython/Extensions/ipipe.py (isort): Make isort usable without
945 * IPython/Extensions/ipipe.py (isort): Make isort usable without
943 argument. This sorts the items themselves.
946 argument. This sorts the items themselves.
944
947
945 2006-07-12 Walter Doerwald <walter@livinglogic.de>
948 2006-07-12 Walter Doerwald <walter@livinglogic.de>
946
949
947 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
950 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
948 Compile expression strings into code objects. This should speed
951 Compile expression strings into code objects. This should speed
949 up ifilter and friends somewhat.
952 up ifilter and friends somewhat.
950
953
951 2006-07-08 Ville Vainio <vivainio@gmail.com>
954 2006-07-08 Ville Vainio <vivainio@gmail.com>
952
955
953 * Magic.py: %cpaste now strips > from the beginning of lines
956 * Magic.py: %cpaste now strips > from the beginning of lines
954 to ease pasting quoted code from emails. Contributed by
957 to ease pasting quoted code from emails. Contributed by
955 Stefan van der Walt.
958 Stefan van der Walt.
956
959
957 2006-06-29 Ville Vainio <vivainio@gmail.com>
960 2006-06-29 Ville Vainio <vivainio@gmail.com>
958
961
959 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
962 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
960 mode, patch contributed by Darren Dale. NEEDS TESTING!
963 mode, patch contributed by Darren Dale. NEEDS TESTING!
961
964
962 2006-06-28 Walter Doerwald <walter@livinglogic.de>
965 2006-06-28 Walter Doerwald <walter@livinglogic.de>
963
966
964 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
967 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
965 a blue background. Fix fetching new display rows when the browser
968 a blue background. Fix fetching new display rows when the browser
966 scrolls more than a screenful (e.g. by using the goto command).
969 scrolls more than a screenful (e.g. by using the goto command).
967
970
968 2006-06-27 Ville Vainio <vivainio@gmail.com>
971 2006-06-27 Ville Vainio <vivainio@gmail.com>
969
972
970 * Magic.py (_inspect, _ofind) Apply David Huard's
973 * Magic.py (_inspect, _ofind) Apply David Huard's
971 patch for displaying the correct docstring for 'property'
974 patch for displaying the correct docstring for 'property'
972 attributes.
975 attributes.
973
976
974 2006-06-23 Walter Doerwald <walter@livinglogic.de>
977 2006-06-23 Walter Doerwald <walter@livinglogic.de>
975
978
976 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
979 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
977 commands into the methods implementing them.
980 commands into the methods implementing them.
978
981
979 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
982 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
980
983
981 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
984 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
982 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
985 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
983 autoindent support was authored by Jin Liu.
986 autoindent support was authored by Jin Liu.
984
987
985 2006-06-22 Walter Doerwald <walter@livinglogic.de>
988 2006-06-22 Walter Doerwald <walter@livinglogic.de>
986
989
987 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
990 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
988 for keymaps with a custom class that simplifies handling.
991 for keymaps with a custom class that simplifies handling.
989
992
990 2006-06-19 Walter Doerwald <walter@livinglogic.de>
993 2006-06-19 Walter Doerwald <walter@livinglogic.de>
991
994
992 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
995 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
993 resizing. This requires Python 2.5 to work.
996 resizing. This requires Python 2.5 to work.
994
997
995 2006-06-16 Walter Doerwald <walter@livinglogic.de>
998 2006-06-16 Walter Doerwald <walter@livinglogic.de>
996
999
997 * IPython/Extensions/ibrowse.py: Add two new commands to
1000 * IPython/Extensions/ibrowse.py: Add two new commands to
998 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1001 ibrowse: "hideattr" (mapped to "h") hides the attribute under
999 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1002 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1000 attributes again. Remapped the help command to "?". Display
1003 attributes again. Remapped the help command to "?". Display
1001 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1004 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1002 as keys for the "home" and "end" commands. Add three new commands
1005 as keys for the "home" and "end" commands. Add three new commands
1003 to the input mode for "find" and friends: "delend" (CTRL-K)
1006 to the input mode for "find" and friends: "delend" (CTRL-K)
1004 deletes to the end of line. "incsearchup" searches upwards in the
1007 deletes to the end of line. "incsearchup" searches upwards in the
1005 command history for an input that starts with the text before the cursor.
1008 command history for an input that starts with the text before the cursor.
1006 "incsearchdown" does the same downwards. Removed a bogus mapping of
1009 "incsearchdown" does the same downwards. Removed a bogus mapping of
1007 the x key to "delete".
1010 the x key to "delete".
1008
1011
1009 2006-06-15 Ville Vainio <vivainio@gmail.com>
1012 2006-06-15 Ville Vainio <vivainio@gmail.com>
1010
1013
1011 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1014 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1012 used to create prompts dynamically, instead of the "old" way of
1015 used to create prompts dynamically, instead of the "old" way of
1013 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1016 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1014 way still works (it's invoked by the default hook), of course.
1017 way still works (it's invoked by the default hook), of course.
1015
1018
1016 * Prompts.py: added generate_output_prompt hook for altering output
1019 * Prompts.py: added generate_output_prompt hook for altering output
1017 prompt
1020 prompt
1018
1021
1019 * Release.py: Changed version string to 0.7.3.svn.
1022 * Release.py: Changed version string to 0.7.3.svn.
1020
1023
1021 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1024 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1022
1025
1023 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1026 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1024 the call to fetch() always tries to fetch enough data for at least one
1027 the call to fetch() always tries to fetch enough data for at least one
1025 full screen. This makes it possible to simply call moveto(0,0,True) in
1028 full screen. This makes it possible to simply call moveto(0,0,True) in
1026 the constructor. Fix typos and removed the obsolete goto attribute.
1029 the constructor. Fix typos and removed the obsolete goto attribute.
1027
1030
1028 2006-06-12 Ville Vainio <vivainio@gmail.com>
1031 2006-06-12 Ville Vainio <vivainio@gmail.com>
1029
1032
1030 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1033 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1031 allowing $variable interpolation within multiline statements,
1034 allowing $variable interpolation within multiline statements,
1032 though so far only with "sh" profile for a testing period.
1035 though so far only with "sh" profile for a testing period.
1033 The patch also enables splitting long commands with \ but it
1036 The patch also enables splitting long commands with \ but it
1034 doesn't work properly yet.
1037 doesn't work properly yet.
1035
1038
1036 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1039 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1037
1040
1038 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1041 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1039 input history and the position of the cursor in the input history for
1042 input history and the position of the cursor in the input history for
1040 the find, findbackwards and goto command.
1043 the find, findbackwards and goto command.
1041
1044
1042 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1045 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1043
1046
1044 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1047 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1045 implements the basic functionality of browser commands that require
1048 implements the basic functionality of browser commands that require
1046 input. Reimplement the goto, find and findbackwards commands as
1049 input. Reimplement the goto, find and findbackwards commands as
1047 subclasses of _CommandInput. Add an input history and keymaps to those
1050 subclasses of _CommandInput. Add an input history and keymaps to those
1048 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1051 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1049 execute commands.
1052 execute commands.
1050
1053
1051 2006-06-07 Ville Vainio <vivainio@gmail.com>
1054 2006-06-07 Ville Vainio <vivainio@gmail.com>
1052
1055
1053 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1056 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1054 running the batch files instead of leaving the session open.
1057 running the batch files instead of leaving the session open.
1055
1058
1056 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1059 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1057
1060
1058 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1061 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1059 the original fix was incomplete. Patch submitted by W. Maier.
1062 the original fix was incomplete. Patch submitted by W. Maier.
1060
1063
1061 2006-06-07 Ville Vainio <vivainio@gmail.com>
1064 2006-06-07 Ville Vainio <vivainio@gmail.com>
1062
1065
1063 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1066 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1064 Confirmation prompts can be supressed by 'quiet' option.
1067 Confirmation prompts can be supressed by 'quiet' option.
1065 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1068 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1066
1069
1067 2006-06-06 *** Released version 0.7.2
1070 2006-06-06 *** Released version 0.7.2
1068
1071
1069 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1072 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1070
1073
1071 * IPython/Release.py (version): Made 0.7.2 final for release.
1074 * IPython/Release.py (version): Made 0.7.2 final for release.
1072 Repo tagged and release cut.
1075 Repo tagged and release cut.
1073
1076
1074 2006-06-05 Ville Vainio <vivainio@gmail.com>
1077 2006-06-05 Ville Vainio <vivainio@gmail.com>
1075
1078
1076 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1079 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1077 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1080 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1078
1081
1079 * upgrade_dir.py: try import 'path' module a bit harder
1082 * upgrade_dir.py: try import 'path' module a bit harder
1080 (for %upgrade)
1083 (for %upgrade)
1081
1084
1082 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1085 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1083
1086
1084 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1087 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1085 instead of looping 20 times.
1088 instead of looping 20 times.
1086
1089
1087 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1090 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1088 correctly at initialization time. Bug reported by Krishna Mohan
1091 correctly at initialization time. Bug reported by Krishna Mohan
1089 Gundu <gkmohan-AT-gmail.com> on the user list.
1092 Gundu <gkmohan-AT-gmail.com> on the user list.
1090
1093
1091 * IPython/Release.py (version): Mark 0.7.2 version to start
1094 * IPython/Release.py (version): Mark 0.7.2 version to start
1092 testing for release on 06/06.
1095 testing for release on 06/06.
1093
1096
1094 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1097 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1095
1098
1096 * scripts/irunner: thin script interface so users don't have to
1099 * scripts/irunner: thin script interface so users don't have to
1097 find the module and call it as an executable, since modules rarely
1100 find the module and call it as an executable, since modules rarely
1098 live in people's PATH.
1101 live in people's PATH.
1099
1102
1100 * IPython/irunner.py (InteractiveRunner.__init__): added
1103 * IPython/irunner.py (InteractiveRunner.__init__): added
1101 delaybeforesend attribute to control delays with newer versions of
1104 delaybeforesend attribute to control delays with newer versions of
1102 pexpect. Thanks to detailed help from pexpect's author, Noah
1105 pexpect. Thanks to detailed help from pexpect's author, Noah
1103 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1106 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1104 correctly (it works in NoColor mode).
1107 correctly (it works in NoColor mode).
1105
1108
1106 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1109 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1107 SAGE list, from improper log() calls.
1110 SAGE list, from improper log() calls.
1108
1111
1109 2006-05-31 Ville Vainio <vivainio@gmail.com>
1112 2006-05-31 Ville Vainio <vivainio@gmail.com>
1110
1113
1111 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1114 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1112 with args in parens to work correctly with dirs that have spaces.
1115 with args in parens to work correctly with dirs that have spaces.
1113
1116
1114 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1117 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1115
1118
1116 * IPython/Logger.py (Logger.logstart): add option to log raw input
1119 * IPython/Logger.py (Logger.logstart): add option to log raw input
1117 instead of the processed one. A -r flag was added to the
1120 instead of the processed one. A -r flag was added to the
1118 %logstart magic used for controlling logging.
1121 %logstart magic used for controlling logging.
1119
1122
1120 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1123 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1121
1124
1122 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1125 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1123 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1126 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1124 recognize the option. After a bug report by Will Maier. This
1127 recognize the option. After a bug report by Will Maier. This
1125 closes #64 (will do it after confirmation from W. Maier).
1128 closes #64 (will do it after confirmation from W. Maier).
1126
1129
1127 * IPython/irunner.py: New module to run scripts as if manually
1130 * IPython/irunner.py: New module to run scripts as if manually
1128 typed into an interactive environment, based on pexpect. After a
1131 typed into an interactive environment, based on pexpect. After a
1129 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1132 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1130 ipython-user list. Simple unittests in the tests/ directory.
1133 ipython-user list. Simple unittests in the tests/ directory.
1131
1134
1132 * tools/release: add Will Maier, OpenBSD port maintainer, to
1135 * tools/release: add Will Maier, OpenBSD port maintainer, to
1133 recepients list. We are now officially part of the OpenBSD ports:
1136 recepients list. We are now officially part of the OpenBSD ports:
1134 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1137 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1135 work.
1138 work.
1136
1139
1137 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1140 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1138
1141
1139 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1142 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1140 so that it doesn't break tkinter apps.
1143 so that it doesn't break tkinter apps.
1141
1144
1142 * IPython/iplib.py (_prefilter): fix bug where aliases would
1145 * IPython/iplib.py (_prefilter): fix bug where aliases would
1143 shadow variables when autocall was fully off. Reported by SAGE
1146 shadow variables when autocall was fully off. Reported by SAGE
1144 author William Stein.
1147 author William Stein.
1145
1148
1146 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1149 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1147 at what detail level strings are computed when foo? is requested.
1150 at what detail level strings are computed when foo? is requested.
1148 This allows users to ask for example that the string form of an
1151 This allows users to ask for example that the string form of an
1149 object is only computed when foo?? is called, or even never, by
1152 object is only computed when foo?? is called, or even never, by
1150 setting the object_info_string_level >= 2 in the configuration
1153 setting the object_info_string_level >= 2 in the configuration
1151 file. This new option has been added and documented. After a
1154 file. This new option has been added and documented. After a
1152 request by SAGE to be able to control the printing of very large
1155 request by SAGE to be able to control the printing of very large
1153 objects more easily.
1156 objects more easily.
1154
1157
1155 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1158 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1156
1159
1157 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1160 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1158 from sys.argv, to be 100% consistent with how Python itself works
1161 from sys.argv, to be 100% consistent with how Python itself works
1159 (as seen for example with python -i file.py). After a bug report
1162 (as seen for example with python -i file.py). After a bug report
1160 by Jeffrey Collins.
1163 by Jeffrey Collins.
1161
1164
1162 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1165 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1163 nasty bug which was preventing custom namespaces with -pylab,
1166 nasty bug which was preventing custom namespaces with -pylab,
1164 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1167 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1165 compatibility (long gone from mpl).
1168 compatibility (long gone from mpl).
1166
1169
1167 * IPython/ipapi.py (make_session): name change: create->make. We
1170 * IPython/ipapi.py (make_session): name change: create->make. We
1168 use make in other places (ipmaker,...), it's shorter and easier to
1171 use make in other places (ipmaker,...), it's shorter and easier to
1169 type and say, etc. I'm trying to clean things before 0.7.2 so
1172 type and say, etc. I'm trying to clean things before 0.7.2 so
1170 that I can keep things stable wrt to ipapi in the chainsaw branch.
1173 that I can keep things stable wrt to ipapi in the chainsaw branch.
1171
1174
1172 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1175 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1173 python-mode recognizes our debugger mode. Add support for
1176 python-mode recognizes our debugger mode. Add support for
1174 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1177 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1175 <m.liu.jin-AT-gmail.com> originally written by
1178 <m.liu.jin-AT-gmail.com> originally written by
1176 doxgen-AT-newsmth.net (with minor modifications for xemacs
1179 doxgen-AT-newsmth.net (with minor modifications for xemacs
1177 compatibility)
1180 compatibility)
1178
1181
1179 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1182 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1180 tracebacks when walking the stack so that the stack tracking system
1183 tracebacks when walking the stack so that the stack tracking system
1181 in emacs' python-mode can identify the frames correctly.
1184 in emacs' python-mode can identify the frames correctly.
1182
1185
1183 * IPython/ipmaker.py (make_IPython): make the internal (and
1186 * IPython/ipmaker.py (make_IPython): make the internal (and
1184 default config) autoedit_syntax value false by default. Too many
1187 default config) autoedit_syntax value false by default. Too many
1185 users have complained to me (both on and off-list) about problems
1188 users have complained to me (both on and off-list) about problems
1186 with this option being on by default, so I'm making it default to
1189 with this option being on by default, so I'm making it default to
1187 off. It can still be enabled by anyone via the usual mechanisms.
1190 off. It can still be enabled by anyone via the usual mechanisms.
1188
1191
1189 * IPython/completer.py (Completer.attr_matches): add support for
1192 * IPython/completer.py (Completer.attr_matches): add support for
1190 PyCrust-style _getAttributeNames magic method. Patch contributed
1193 PyCrust-style _getAttributeNames magic method. Patch contributed
1191 by <mscott-AT-goldenspud.com>. Closes #50.
1194 by <mscott-AT-goldenspud.com>. Closes #50.
1192
1195
1193 * IPython/iplib.py (InteractiveShell.__init__): remove the
1196 * IPython/iplib.py (InteractiveShell.__init__): remove the
1194 deletion of exit/quit from __builtin__, which can break
1197 deletion of exit/quit from __builtin__, which can break
1195 third-party tools like the Zope debugging console. The
1198 third-party tools like the Zope debugging console. The
1196 %exit/%quit magics remain. In general, it's probably a good idea
1199 %exit/%quit magics remain. In general, it's probably a good idea
1197 not to delete anything from __builtin__, since we never know what
1200 not to delete anything from __builtin__, since we never know what
1198 that will break. In any case, python now (for 2.5) will support
1201 that will break. In any case, python now (for 2.5) will support
1199 'real' exit/quit, so this issue is moot. Closes #55.
1202 'real' exit/quit, so this issue is moot. Closes #55.
1200
1203
1201 * IPython/genutils.py (with_obj): rename the 'with' function to
1204 * IPython/genutils.py (with_obj): rename the 'with' function to
1202 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1205 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1203 becomes a language keyword. Closes #53.
1206 becomes a language keyword. Closes #53.
1204
1207
1205 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1208 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1206 __file__ attribute to this so it fools more things into thinking
1209 __file__ attribute to this so it fools more things into thinking
1207 it is a real module. Closes #59.
1210 it is a real module. Closes #59.
1208
1211
1209 * IPython/Magic.py (magic_edit): add -n option to open the editor
1212 * IPython/Magic.py (magic_edit): add -n option to open the editor
1210 at a specific line number. After a patch by Stefan van der Walt.
1213 at a specific line number. After a patch by Stefan van der Walt.
1211
1214
1212 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1213
1216
1214 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1217 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1215 reason the file could not be opened. After automatic crash
1218 reason the file could not be opened. After automatic crash
1216 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1219 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1217 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1220 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1218 (_should_recompile): Don't fire editor if using %bg, since there
1221 (_should_recompile): Don't fire editor if using %bg, since there
1219 is no file in the first place. From the same report as above.
1222 is no file in the first place. From the same report as above.
1220 (raw_input): protect against faulty third-party prefilters. After
1223 (raw_input): protect against faulty third-party prefilters. After
1221 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1224 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1222 while running under SAGE.
1225 while running under SAGE.
1223
1226
1224 2006-05-23 Ville Vainio <vivainio@gmail.com>
1227 2006-05-23 Ville Vainio <vivainio@gmail.com>
1225
1228
1226 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1229 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1227 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1230 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1228 now returns None (again), unless dummy is specifically allowed by
1231 now returns None (again), unless dummy is specifically allowed by
1229 ipapi.get(allow_dummy=True).
1232 ipapi.get(allow_dummy=True).
1230
1233
1231 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1234 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1232
1235
1233 * IPython: remove all 2.2-compatibility objects and hacks from
1236 * IPython: remove all 2.2-compatibility objects and hacks from
1234 everywhere, since we only support 2.3 at this point. Docs
1237 everywhere, since we only support 2.3 at this point. Docs
1235 updated.
1238 updated.
1236
1239
1237 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1240 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1238 Anything requiring extra validation can be turned into a Python
1241 Anything requiring extra validation can be turned into a Python
1239 property in the future. I used a property for the db one b/c
1242 property in the future. I used a property for the db one b/c
1240 there was a nasty circularity problem with the initialization
1243 there was a nasty circularity problem with the initialization
1241 order, which right now I don't have time to clean up.
1244 order, which right now I don't have time to clean up.
1242
1245
1243 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1246 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1244 another locking bug reported by Jorgen. I'm not 100% sure though,
1247 another locking bug reported by Jorgen. I'm not 100% sure though,
1245 so more testing is needed...
1248 so more testing is needed...
1246
1249
1247 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1250 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1248
1251
1249 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1252 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1250 local variables from any routine in user code (typically executed
1253 local variables from any routine in user code (typically executed
1251 with %run) directly into the interactive namespace. Very useful
1254 with %run) directly into the interactive namespace. Very useful
1252 when doing complex debugging.
1255 when doing complex debugging.
1253 (IPythonNotRunning): Changed the default None object to a dummy
1256 (IPythonNotRunning): Changed the default None object to a dummy
1254 whose attributes can be queried as well as called without
1257 whose attributes can be queried as well as called without
1255 exploding, to ease writing code which works transparently both in
1258 exploding, to ease writing code which works transparently both in
1256 and out of ipython and uses some of this API.
1259 and out of ipython and uses some of this API.
1257
1260
1258 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1261 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1259
1262
1260 * IPython/hooks.py (result_display): Fix the fact that our display
1263 * IPython/hooks.py (result_display): Fix the fact that our display
1261 hook was using str() instead of repr(), as the default python
1264 hook was using str() instead of repr(), as the default python
1262 console does. This had gone unnoticed b/c it only happened if
1265 console does. This had gone unnoticed b/c it only happened if
1263 %Pprint was off, but the inconsistency was there.
1266 %Pprint was off, but the inconsistency was there.
1264
1267
1265 2006-05-15 Ville Vainio <vivainio@gmail.com>
1268 2006-05-15 Ville Vainio <vivainio@gmail.com>
1266
1269
1267 * Oinspect.py: Only show docstring for nonexisting/binary files
1270 * Oinspect.py: Only show docstring for nonexisting/binary files
1268 when doing object??, closing ticket #62
1271 when doing object??, closing ticket #62
1269
1272
1270 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1273 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1271
1274
1272 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1275 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1273 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1276 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1274 was being released in a routine which hadn't checked if it had
1277 was being released in a routine which hadn't checked if it had
1275 been the one to acquire it.
1278 been the one to acquire it.
1276
1279
1277 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1280 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1278
1281
1279 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1282 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1280
1283
1281 2006-04-11 Ville Vainio <vivainio@gmail.com>
1284 2006-04-11 Ville Vainio <vivainio@gmail.com>
1282
1285
1283 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1286 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1284 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1287 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1285 prefilters, allowing stuff like magics and aliases in the file.
1288 prefilters, allowing stuff like magics and aliases in the file.
1286
1289
1287 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1290 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1288 added. Supported now are "%clear in" and "%clear out" (clear input and
1291 added. Supported now are "%clear in" and "%clear out" (clear input and
1289 output history, respectively). Also fixed CachedOutput.flush to
1292 output history, respectively). Also fixed CachedOutput.flush to
1290 properly flush the output cache.
1293 properly flush the output cache.
1291
1294
1292 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1295 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1293 half-success (and fail explicitly).
1296 half-success (and fail explicitly).
1294
1297
1295 2006-03-28 Ville Vainio <vivainio@gmail.com>
1298 2006-03-28 Ville Vainio <vivainio@gmail.com>
1296
1299
1297 * iplib.py: Fix quoting of aliases so that only argless ones
1300 * iplib.py: Fix quoting of aliases so that only argless ones
1298 are quoted
1301 are quoted
1299
1302
1300 2006-03-28 Ville Vainio <vivainio@gmail.com>
1303 2006-03-28 Ville Vainio <vivainio@gmail.com>
1301
1304
1302 * iplib.py: Quote aliases with spaces in the name.
1305 * iplib.py: Quote aliases with spaces in the name.
1303 "c:\program files\blah\bin" is now legal alias target.
1306 "c:\program files\blah\bin" is now legal alias target.
1304
1307
1305 * ext_rehashdir.py: Space no longer allowed as arg
1308 * ext_rehashdir.py: Space no longer allowed as arg
1306 separator, since space is legal in path names.
1309 separator, since space is legal in path names.
1307
1310
1308 2006-03-16 Ville Vainio <vivainio@gmail.com>
1311 2006-03-16 Ville Vainio <vivainio@gmail.com>
1309
1312
1310 * upgrade_dir.py: Take path.py from Extensions, correcting
1313 * upgrade_dir.py: Take path.py from Extensions, correcting
1311 %upgrade magic
1314 %upgrade magic
1312
1315
1313 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1316 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1314
1317
1315 * hooks.py: Only enclose editor binary in quotes if legal and
1318 * hooks.py: Only enclose editor binary in quotes if legal and
1316 necessary (space in the name, and is an existing file). Fixes a bug
1319 necessary (space in the name, and is an existing file). Fixes a bug
1317 reported by Zachary Pincus.
1320 reported by Zachary Pincus.
1318
1321
1319 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1322 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1320
1323
1321 * Manual: thanks to a tip on proper color handling for Emacs, by
1324 * Manual: thanks to a tip on proper color handling for Emacs, by
1322 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1325 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1323
1326
1324 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1327 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1325 by applying the provided patch. Thanks to Liu Jin
1328 by applying the provided patch. Thanks to Liu Jin
1326 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1329 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1327 XEmacs/Linux, I'm trusting the submitter that it actually helps
1330 XEmacs/Linux, I'm trusting the submitter that it actually helps
1328 under win32/GNU Emacs. Will revisit if any problems are reported.
1331 under win32/GNU Emacs. Will revisit if any problems are reported.
1329
1332
1330 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1333 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1331
1334
1332 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1335 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1333 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1336 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1334
1337
1335 2006-03-12 Ville Vainio <vivainio@gmail.com>
1338 2006-03-12 Ville Vainio <vivainio@gmail.com>
1336
1339
1337 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1340 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1338 Torsten Marek.
1341 Torsten Marek.
1339
1342
1340 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1343 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1341
1344
1342 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1345 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1343 line ranges works again.
1346 line ranges works again.
1344
1347
1345 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1348 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1346
1349
1347 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1350 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1348 and friends, after a discussion with Zach Pincus on ipython-user.
1351 and friends, after a discussion with Zach Pincus on ipython-user.
1349 I'm not 100% sure, but after thinking about it quite a bit, it may
1352 I'm not 100% sure, but after thinking about it quite a bit, it may
1350 be OK. Testing with the multithreaded shells didn't reveal any
1353 be OK. Testing with the multithreaded shells didn't reveal any
1351 problems, but let's keep an eye out.
1354 problems, but let's keep an eye out.
1352
1355
1353 In the process, I fixed a few things which were calling
1356 In the process, I fixed a few things which were calling
1354 self.InteractiveTB() directly (like safe_execfile), which is a
1357 self.InteractiveTB() directly (like safe_execfile), which is a
1355 mistake: ALL exception reporting should be done by calling
1358 mistake: ALL exception reporting should be done by calling
1356 self.showtraceback(), which handles state and tab-completion and
1359 self.showtraceback(), which handles state and tab-completion and
1357 more.
1360 more.
1358
1361
1359 2006-03-01 Ville Vainio <vivainio@gmail.com>
1362 2006-03-01 Ville Vainio <vivainio@gmail.com>
1360
1363
1361 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1364 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1362 To use, do "from ipipe import *".
1365 To use, do "from ipipe import *".
1363
1366
1364 2006-02-24 Ville Vainio <vivainio@gmail.com>
1367 2006-02-24 Ville Vainio <vivainio@gmail.com>
1365
1368
1366 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1369 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1367 "cleanly" and safely than the older upgrade mechanism.
1370 "cleanly" and safely than the older upgrade mechanism.
1368
1371
1369 2006-02-21 Ville Vainio <vivainio@gmail.com>
1372 2006-02-21 Ville Vainio <vivainio@gmail.com>
1370
1373
1371 * Magic.py: %save works again.
1374 * Magic.py: %save works again.
1372
1375
1373 2006-02-15 Ville Vainio <vivainio@gmail.com>
1376 2006-02-15 Ville Vainio <vivainio@gmail.com>
1374
1377
1375 * Magic.py: %Pprint works again
1378 * Magic.py: %Pprint works again
1376
1379
1377 * Extensions/ipy_sane_defaults.py: Provide everything provided
1380 * Extensions/ipy_sane_defaults.py: Provide everything provided
1378 in default ipythonrc, to make it possible to have a completely empty
1381 in default ipythonrc, to make it possible to have a completely empty
1379 ipythonrc (and thus completely rc-file free configuration)
1382 ipythonrc (and thus completely rc-file free configuration)
1380
1383
1381 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1384 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1382
1385
1383 * IPython/hooks.py (editor): quote the call to the editor command,
1386 * IPython/hooks.py (editor): quote the call to the editor command,
1384 to allow commands with spaces in them. Problem noted by watching
1387 to allow commands with spaces in them. Problem noted by watching
1385 Ian Oswald's video about textpad under win32 at
1388 Ian Oswald's video about textpad under win32 at
1386 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1389 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1387
1390
1388 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1391 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1389 describing magics (we haven't used @ for a loong time).
1392 describing magics (we haven't used @ for a loong time).
1390
1393
1391 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1394 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1392 contributed by marienz to close
1395 contributed by marienz to close
1393 http://www.scipy.net/roundup/ipython/issue53.
1396 http://www.scipy.net/roundup/ipython/issue53.
1394
1397
1395 2006-02-10 Ville Vainio <vivainio@gmail.com>
1398 2006-02-10 Ville Vainio <vivainio@gmail.com>
1396
1399
1397 * genutils.py: getoutput now works in win32 too
1400 * genutils.py: getoutput now works in win32 too
1398
1401
1399 * completer.py: alias and magic completion only invoked
1402 * completer.py: alias and magic completion only invoked
1400 at the first "item" in the line, to avoid "cd %store"
1403 at the first "item" in the line, to avoid "cd %store"
1401 nonsense.
1404 nonsense.
1402
1405
1403 2006-02-09 Ville Vainio <vivainio@gmail.com>
1406 2006-02-09 Ville Vainio <vivainio@gmail.com>
1404
1407
1405 * test/*: Added a unit testing framework (finally).
1408 * test/*: Added a unit testing framework (finally).
1406 '%run runtests.py' to run test_*.
1409 '%run runtests.py' to run test_*.
1407
1410
1408 * ipapi.py: Exposed runlines and set_custom_exc
1411 * ipapi.py: Exposed runlines and set_custom_exc
1409
1412
1410 2006-02-07 Ville Vainio <vivainio@gmail.com>
1413 2006-02-07 Ville Vainio <vivainio@gmail.com>
1411
1414
1412 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1415 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1413 instead use "f(1 2)" as before.
1416 instead use "f(1 2)" as before.
1414
1417
1415 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1418 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1416
1419
1417 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1420 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1418 facilities, for demos processed by the IPython input filter
1421 facilities, for demos processed by the IPython input filter
1419 (IPythonDemo), and for running a script one-line-at-a-time as a
1422 (IPythonDemo), and for running a script one-line-at-a-time as a
1420 demo, both for pure Python (LineDemo) and for IPython-processed
1423 demo, both for pure Python (LineDemo) and for IPython-processed
1421 input (IPythonLineDemo). After a request by Dave Kohel, from the
1424 input (IPythonLineDemo). After a request by Dave Kohel, from the
1422 SAGE team.
1425 SAGE team.
1423 (Demo.edit): added an edit() method to the demo objects, to edit
1426 (Demo.edit): added an edit() method to the demo objects, to edit
1424 the in-memory copy of the last executed block.
1427 the in-memory copy of the last executed block.
1425
1428
1426 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1429 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1427 processing to %edit, %macro and %save. These commands can now be
1430 processing to %edit, %macro and %save. These commands can now be
1428 invoked on the unprocessed input as it was typed by the user
1431 invoked on the unprocessed input as it was typed by the user
1429 (without any prefilters applied). After requests by the SAGE team
1432 (without any prefilters applied). After requests by the SAGE team
1430 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1433 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1431
1434
1432 2006-02-01 Ville Vainio <vivainio@gmail.com>
1435 2006-02-01 Ville Vainio <vivainio@gmail.com>
1433
1436
1434 * setup.py, eggsetup.py: easy_install ipython==dev works
1437 * setup.py, eggsetup.py: easy_install ipython==dev works
1435 correctly now (on Linux)
1438 correctly now (on Linux)
1436
1439
1437 * ipy_user_conf,ipmaker: user config changes, removed spurious
1440 * ipy_user_conf,ipmaker: user config changes, removed spurious
1438 warnings
1441 warnings
1439
1442
1440 * iplib: if rc.banner is string, use it as is.
1443 * iplib: if rc.banner is string, use it as is.
1441
1444
1442 * Magic: %pycat accepts a string argument and pages it's contents.
1445 * Magic: %pycat accepts a string argument and pages it's contents.
1443
1446
1444
1447
1445 2006-01-30 Ville Vainio <vivainio@gmail.com>
1448 2006-01-30 Ville Vainio <vivainio@gmail.com>
1446
1449
1447 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1450 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1448 Now %store and bookmarks work through PickleShare, meaning that
1451 Now %store and bookmarks work through PickleShare, meaning that
1449 concurrent access is possible and all ipython sessions see the
1452 concurrent access is possible and all ipython sessions see the
1450 same database situation all the time, instead of snapshot of
1453 same database situation all the time, instead of snapshot of
1451 the situation when the session was started. Hence, %bookmark
1454 the situation when the session was started. Hence, %bookmark
1452 results are immediately accessible from othes sessions. The database
1455 results are immediately accessible from othes sessions. The database
1453 is also available for use by user extensions. See:
1456 is also available for use by user extensions. See:
1454 http://www.python.org/pypi/pickleshare
1457 http://www.python.org/pypi/pickleshare
1455
1458
1456 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1459 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1457
1460
1458 * aliases can now be %store'd
1461 * aliases can now be %store'd
1459
1462
1460 * path.py moved to Extensions so that pickleshare does not need
1463 * path.py moved to Extensions so that pickleshare does not need
1461 IPython-specific import. Extensions added to pythonpath right
1464 IPython-specific import. Extensions added to pythonpath right
1462 at __init__.
1465 at __init__.
1463
1466
1464 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1467 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1465 called with _ip.system and the pre-transformed command string.
1468 called with _ip.system and the pre-transformed command string.
1466
1469
1467 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1470 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1468
1471
1469 * IPython/iplib.py (interact): Fix that we were not catching
1472 * IPython/iplib.py (interact): Fix that we were not catching
1470 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1473 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1471 logic here had to change, but it's fixed now.
1474 logic here had to change, but it's fixed now.
1472
1475
1473 2006-01-29 Ville Vainio <vivainio@gmail.com>
1476 2006-01-29 Ville Vainio <vivainio@gmail.com>
1474
1477
1475 * iplib.py: Try to import pyreadline on Windows.
1478 * iplib.py: Try to import pyreadline on Windows.
1476
1479
1477 2006-01-27 Ville Vainio <vivainio@gmail.com>
1480 2006-01-27 Ville Vainio <vivainio@gmail.com>
1478
1481
1479 * iplib.py: Expose ipapi as _ip in builtin namespace.
1482 * iplib.py: Expose ipapi as _ip in builtin namespace.
1480 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1483 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1481 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1484 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1482 syntax now produce _ip.* variant of the commands.
1485 syntax now produce _ip.* variant of the commands.
1483
1486
1484 * "_ip.options().autoedit_syntax = 2" automatically throws
1487 * "_ip.options().autoedit_syntax = 2" automatically throws
1485 user to editor for syntax error correction without prompting.
1488 user to editor for syntax error correction without prompting.
1486
1489
1487 2006-01-27 Ville Vainio <vivainio@gmail.com>
1490 2006-01-27 Ville Vainio <vivainio@gmail.com>
1488
1491
1489 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1492 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1490 'ipython' at argv[0]) executed through command line.
1493 'ipython' at argv[0]) executed through command line.
1491 NOTE: this DEPRECATES calling ipython with multiple scripts
1494 NOTE: this DEPRECATES calling ipython with multiple scripts
1492 ("ipython a.py b.py c.py")
1495 ("ipython a.py b.py c.py")
1493
1496
1494 * iplib.py, hooks.py: Added configurable input prefilter,
1497 * iplib.py, hooks.py: Added configurable input prefilter,
1495 named 'input_prefilter'. See ext_rescapture.py for example
1498 named 'input_prefilter'. See ext_rescapture.py for example
1496 usage.
1499 usage.
1497
1500
1498 * ext_rescapture.py, Magic.py: Better system command output capture
1501 * ext_rescapture.py, Magic.py: Better system command output capture
1499 through 'var = !ls' (deprecates user-visible %sc). Same notation
1502 through 'var = !ls' (deprecates user-visible %sc). Same notation
1500 applies for magics, 'var = %alias' assigns alias list to var.
1503 applies for magics, 'var = %alias' assigns alias list to var.
1501
1504
1502 * ipapi.py: added meta() for accessing extension-usable data store.
1505 * ipapi.py: added meta() for accessing extension-usable data store.
1503
1506
1504 * iplib.py: added InteractiveShell.getapi(). New magics should be
1507 * iplib.py: added InteractiveShell.getapi(). New magics should be
1505 written doing self.getapi() instead of using the shell directly.
1508 written doing self.getapi() instead of using the shell directly.
1506
1509
1507 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1510 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1508 %store foo >> ~/myfoo.txt to store variables to files (in clean
1511 %store foo >> ~/myfoo.txt to store variables to files (in clean
1509 textual form, not a restorable pickle).
1512 textual form, not a restorable pickle).
1510
1513
1511 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1514 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1512
1515
1513 * usage.py, Magic.py: added %quickref
1516 * usage.py, Magic.py: added %quickref
1514
1517
1515 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1518 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1516
1519
1517 * GetoptErrors when invoking magics etc. with wrong args
1520 * GetoptErrors when invoking magics etc. with wrong args
1518 are now more helpful:
1521 are now more helpful:
1519 GetoptError: option -l not recognized (allowed: "qb" )
1522 GetoptError: option -l not recognized (allowed: "qb" )
1520
1523
1521 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1524 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1522
1525
1523 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1526 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1524 computationally intensive blocks don't appear to stall the demo.
1527 computationally intensive blocks don't appear to stall the demo.
1525
1528
1526 2006-01-24 Ville Vainio <vivainio@gmail.com>
1529 2006-01-24 Ville Vainio <vivainio@gmail.com>
1527
1530
1528 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1531 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1529 value to manipulate resulting history entry.
1532 value to manipulate resulting history entry.
1530
1533
1531 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1534 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1532 to instance methods of IPApi class, to make extending an embedded
1535 to instance methods of IPApi class, to make extending an embedded
1533 IPython feasible. See ext_rehashdir.py for example usage.
1536 IPython feasible. See ext_rehashdir.py for example usage.
1534
1537
1535 * Merged 1071-1076 from branches/0.7.1
1538 * Merged 1071-1076 from branches/0.7.1
1536
1539
1537
1540
1538 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1541 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1539
1542
1540 * tools/release (daystamp): Fix build tools to use the new
1543 * tools/release (daystamp): Fix build tools to use the new
1541 eggsetup.py script to build lightweight eggs.
1544 eggsetup.py script to build lightweight eggs.
1542
1545
1543 * Applied changesets 1062 and 1064 before 0.7.1 release.
1546 * Applied changesets 1062 and 1064 before 0.7.1 release.
1544
1547
1545 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1548 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1546 see the raw input history (without conversions like %ls ->
1549 see the raw input history (without conversions like %ls ->
1547 ipmagic("ls")). After a request from W. Stein, SAGE
1550 ipmagic("ls")). After a request from W. Stein, SAGE
1548 (http://modular.ucsd.edu/sage) developer. This information is
1551 (http://modular.ucsd.edu/sage) developer. This information is
1549 stored in the input_hist_raw attribute of the IPython instance, so
1552 stored in the input_hist_raw attribute of the IPython instance, so
1550 developers can access it if needed (it's an InputList instance).
1553 developers can access it if needed (it's an InputList instance).
1551
1554
1552 * Versionstring = 0.7.2.svn
1555 * Versionstring = 0.7.2.svn
1553
1556
1554 * eggsetup.py: A separate script for constructing eggs, creates
1557 * eggsetup.py: A separate script for constructing eggs, creates
1555 proper launch scripts even on Windows (an .exe file in
1558 proper launch scripts even on Windows (an .exe file in
1556 \python24\scripts).
1559 \python24\scripts).
1557
1560
1558 * ipapi.py: launch_new_instance, launch entry point needed for the
1561 * ipapi.py: launch_new_instance, launch entry point needed for the
1559 egg.
1562 egg.
1560
1563
1561 2006-01-23 Ville Vainio <vivainio@gmail.com>
1564 2006-01-23 Ville Vainio <vivainio@gmail.com>
1562
1565
1563 * Added %cpaste magic for pasting python code
1566 * Added %cpaste magic for pasting python code
1564
1567
1565 2006-01-22 Ville Vainio <vivainio@gmail.com>
1568 2006-01-22 Ville Vainio <vivainio@gmail.com>
1566
1569
1567 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1570 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1568
1571
1569 * Versionstring = 0.7.2.svn
1572 * Versionstring = 0.7.2.svn
1570
1573
1571 * eggsetup.py: A separate script for constructing eggs, creates
1574 * eggsetup.py: A separate script for constructing eggs, creates
1572 proper launch scripts even on Windows (an .exe file in
1575 proper launch scripts even on Windows (an .exe file in
1573 \python24\scripts).
1576 \python24\scripts).
1574
1577
1575 * ipapi.py: launch_new_instance, launch entry point needed for the
1578 * ipapi.py: launch_new_instance, launch entry point needed for the
1576 egg.
1579 egg.
1577
1580
1578 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1581 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1579
1582
1580 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1583 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1581 %pfile foo would print the file for foo even if it was a binary.
1584 %pfile foo would print the file for foo even if it was a binary.
1582 Now, extensions '.so' and '.dll' are skipped.
1585 Now, extensions '.so' and '.dll' are skipped.
1583
1586
1584 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1587 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1585 bug, where macros would fail in all threaded modes. I'm not 100%
1588 bug, where macros would fail in all threaded modes. I'm not 100%
1586 sure, so I'm going to put out an rc instead of making a release
1589 sure, so I'm going to put out an rc instead of making a release
1587 today, and wait for feedback for at least a few days.
1590 today, and wait for feedback for at least a few days.
1588
1591
1589 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1592 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1590 it...) the handling of pasting external code with autoindent on.
1593 it...) the handling of pasting external code with autoindent on.
1591 To get out of a multiline input, the rule will appear for most
1594 To get out of a multiline input, the rule will appear for most
1592 users unchanged: two blank lines or change the indent level
1595 users unchanged: two blank lines or change the indent level
1593 proposed by IPython. But there is a twist now: you can
1596 proposed by IPython. But there is a twist now: you can
1594 add/subtract only *one or two spaces*. If you add/subtract three
1597 add/subtract only *one or two spaces*. If you add/subtract three
1595 or more (unless you completely delete the line), IPython will
1598 or more (unless you completely delete the line), IPython will
1596 accept that line, and you'll need to enter a second one of pure
1599 accept that line, and you'll need to enter a second one of pure
1597 whitespace. I know it sounds complicated, but I can't find a
1600 whitespace. I know it sounds complicated, but I can't find a
1598 different solution that covers all the cases, with the right
1601 different solution that covers all the cases, with the right
1599 heuristics. Hopefully in actual use, nobody will really notice
1602 heuristics. Hopefully in actual use, nobody will really notice
1600 all these strange rules and things will 'just work'.
1603 all these strange rules and things will 'just work'.
1601
1604
1602 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1605 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1603
1606
1604 * IPython/iplib.py (interact): catch exceptions which can be
1607 * IPython/iplib.py (interact): catch exceptions which can be
1605 triggered asynchronously by signal handlers. Thanks to an
1608 triggered asynchronously by signal handlers. Thanks to an
1606 automatic crash report, submitted by Colin Kingsley
1609 automatic crash report, submitted by Colin Kingsley
1607 <tercel-AT-gentoo.org>.
1610 <tercel-AT-gentoo.org>.
1608
1611
1609 2006-01-20 Ville Vainio <vivainio@gmail.com>
1612 2006-01-20 Ville Vainio <vivainio@gmail.com>
1610
1613
1611 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1614 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1612 (%rehashdir, very useful, try it out) of how to extend ipython
1615 (%rehashdir, very useful, try it out) of how to extend ipython
1613 with new magics. Also added Extensions dir to pythonpath to make
1616 with new magics. Also added Extensions dir to pythonpath to make
1614 importing extensions easy.
1617 importing extensions easy.
1615
1618
1616 * %store now complains when trying to store interactively declared
1619 * %store now complains when trying to store interactively declared
1617 classes / instances of those classes.
1620 classes / instances of those classes.
1618
1621
1619 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1622 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1620 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1623 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1621 if they exist, and ipy_user_conf.py with some defaults is created for
1624 if they exist, and ipy_user_conf.py with some defaults is created for
1622 the user.
1625 the user.
1623
1626
1624 * Startup rehashing done by the config file, not InterpreterExec.
1627 * Startup rehashing done by the config file, not InterpreterExec.
1625 This means system commands are available even without selecting the
1628 This means system commands are available even without selecting the
1626 pysh profile. It's the sensible default after all.
1629 pysh profile. It's the sensible default after all.
1627
1630
1628 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1631 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1629
1632
1630 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1633 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1631 multiline code with autoindent on working. But I am really not
1634 multiline code with autoindent on working. But I am really not
1632 sure, so this needs more testing. Will commit a debug-enabled
1635 sure, so this needs more testing. Will commit a debug-enabled
1633 version for now, while I test it some more, so that Ville and
1636 version for now, while I test it some more, so that Ville and
1634 others may also catch any problems. Also made
1637 others may also catch any problems. Also made
1635 self.indent_current_str() a method, to ensure that there's no
1638 self.indent_current_str() a method, to ensure that there's no
1636 chance of the indent space count and the corresponding string
1639 chance of the indent space count and the corresponding string
1637 falling out of sync. All code needing the string should just call
1640 falling out of sync. All code needing the string should just call
1638 the method.
1641 the method.
1639
1642
1640 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1643 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1641
1644
1642 * IPython/Magic.py (magic_edit): fix check for when users don't
1645 * IPython/Magic.py (magic_edit): fix check for when users don't
1643 save their output files, the try/except was in the wrong section.
1646 save their output files, the try/except was in the wrong section.
1644
1647
1645 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1648 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1646
1649
1647 * IPython/Magic.py (magic_run): fix __file__ global missing from
1650 * IPython/Magic.py (magic_run): fix __file__ global missing from
1648 script's namespace when executed via %run. After a report by
1651 script's namespace when executed via %run. After a report by
1649 Vivian.
1652 Vivian.
1650
1653
1651 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1654 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1652 when using python 2.4. The parent constructor changed in 2.4, and
1655 when using python 2.4. The parent constructor changed in 2.4, and
1653 we need to track it directly (we can't call it, as it messes up
1656 we need to track it directly (we can't call it, as it messes up
1654 readline and tab-completion inside our pdb would stop working).
1657 readline and tab-completion inside our pdb would stop working).
1655 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1658 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1656
1659
1657 2006-01-16 Ville Vainio <vivainio@gmail.com>
1660 2006-01-16 Ville Vainio <vivainio@gmail.com>
1658
1661
1659 * Ipython/magic.py: Reverted back to old %edit functionality
1662 * Ipython/magic.py: Reverted back to old %edit functionality
1660 that returns file contents on exit.
1663 that returns file contents on exit.
1661
1664
1662 * IPython/path.py: Added Jason Orendorff's "path" module to
1665 * IPython/path.py: Added Jason Orendorff's "path" module to
1663 IPython tree, http://www.jorendorff.com/articles/python/path/.
1666 IPython tree, http://www.jorendorff.com/articles/python/path/.
1664 You can get path objects conveniently through %sc, and !!, e.g.:
1667 You can get path objects conveniently through %sc, and !!, e.g.:
1665 sc files=ls
1668 sc files=ls
1666 for p in files.paths: # or files.p
1669 for p in files.paths: # or files.p
1667 print p,p.mtime
1670 print p,p.mtime
1668
1671
1669 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1672 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1670 now work again without considering the exclusion regexp -
1673 now work again without considering the exclusion regexp -
1671 hence, things like ',foo my/path' turn to 'foo("my/path")'
1674 hence, things like ',foo my/path' turn to 'foo("my/path")'
1672 instead of syntax error.
1675 instead of syntax error.
1673
1676
1674
1677
1675 2006-01-14 Ville Vainio <vivainio@gmail.com>
1678 2006-01-14 Ville Vainio <vivainio@gmail.com>
1676
1679
1677 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1680 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1678 ipapi decorators for python 2.4 users, options() provides access to rc
1681 ipapi decorators for python 2.4 users, options() provides access to rc
1679 data.
1682 data.
1680
1683
1681 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1684 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1682 as path separators (even on Linux ;-). Space character after
1685 as path separators (even on Linux ;-). Space character after
1683 backslash (as yielded by tab completer) is still space;
1686 backslash (as yielded by tab completer) is still space;
1684 "%cd long\ name" works as expected.
1687 "%cd long\ name" works as expected.
1685
1688
1686 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1689 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1687 as "chain of command", with priority. API stays the same,
1690 as "chain of command", with priority. API stays the same,
1688 TryNext exception raised by a hook function signals that
1691 TryNext exception raised by a hook function signals that
1689 current hook failed and next hook should try handling it, as
1692 current hook failed and next hook should try handling it, as
1690 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1693 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1691 requested configurable display hook, which is now implemented.
1694 requested configurable display hook, which is now implemented.
1692
1695
1693 2006-01-13 Ville Vainio <vivainio@gmail.com>
1696 2006-01-13 Ville Vainio <vivainio@gmail.com>
1694
1697
1695 * IPython/platutils*.py: platform specific utility functions,
1698 * IPython/platutils*.py: platform specific utility functions,
1696 so far only set_term_title is implemented (change terminal
1699 so far only set_term_title is implemented (change terminal
1697 label in windowing systems). %cd now changes the title to
1700 label in windowing systems). %cd now changes the title to
1698 current dir.
1701 current dir.
1699
1702
1700 * IPython/Release.py: Added myself to "authors" list,
1703 * IPython/Release.py: Added myself to "authors" list,
1701 had to create new files.
1704 had to create new files.
1702
1705
1703 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1706 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1704 shell escape; not a known bug but had potential to be one in the
1707 shell escape; not a known bug but had potential to be one in the
1705 future.
1708 future.
1706
1709
1707 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1710 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1708 extension API for IPython! See the module for usage example. Fix
1711 extension API for IPython! See the module for usage example. Fix
1709 OInspect for docstring-less magic functions.
1712 OInspect for docstring-less magic functions.
1710
1713
1711
1714
1712 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1715 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1713
1716
1714 * IPython/iplib.py (raw_input): temporarily deactivate all
1717 * IPython/iplib.py (raw_input): temporarily deactivate all
1715 attempts at allowing pasting of code with autoindent on. It
1718 attempts at allowing pasting of code with autoindent on. It
1716 introduced bugs (reported by Prabhu) and I can't seem to find a
1719 introduced bugs (reported by Prabhu) and I can't seem to find a
1717 robust combination which works in all cases. Will have to revisit
1720 robust combination which works in all cases. Will have to revisit
1718 later.
1721 later.
1719
1722
1720 * IPython/genutils.py: remove isspace() function. We've dropped
1723 * IPython/genutils.py: remove isspace() function. We've dropped
1721 2.2 compatibility, so it's OK to use the string method.
1724 2.2 compatibility, so it's OK to use the string method.
1722
1725
1723 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1726 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1724
1727
1725 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1728 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1726 matching what NOT to autocall on, to include all python binary
1729 matching what NOT to autocall on, to include all python binary
1727 operators (including things like 'and', 'or', 'is' and 'in').
1730 operators (including things like 'and', 'or', 'is' and 'in').
1728 Prompted by a bug report on 'foo & bar', but I realized we had
1731 Prompted by a bug report on 'foo & bar', but I realized we had
1729 many more potential bug cases with other operators. The regexp is
1732 many more potential bug cases with other operators. The regexp is
1730 self.re_exclude_auto, it's fairly commented.
1733 self.re_exclude_auto, it's fairly commented.
1731
1734
1732 2006-01-12 Ville Vainio <vivainio@gmail.com>
1735 2006-01-12 Ville Vainio <vivainio@gmail.com>
1733
1736
1734 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1737 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1735 Prettified and hardened string/backslash quoting with ipsystem(),
1738 Prettified and hardened string/backslash quoting with ipsystem(),
1736 ipalias() and ipmagic(). Now even \ characters are passed to
1739 ipalias() and ipmagic(). Now even \ characters are passed to
1737 %magics, !shell escapes and aliases exactly as they are in the
1740 %magics, !shell escapes and aliases exactly as they are in the
1738 ipython command line. Should improve backslash experience,
1741 ipython command line. Should improve backslash experience,
1739 particularly in Windows (path delimiter for some commands that
1742 particularly in Windows (path delimiter for some commands that
1740 won't understand '/'), but Unix benefits as well (regexps). %cd
1743 won't understand '/'), but Unix benefits as well (regexps). %cd
1741 magic still doesn't support backslash path delimiters, though. Also
1744 magic still doesn't support backslash path delimiters, though. Also
1742 deleted all pretense of supporting multiline command strings in
1745 deleted all pretense of supporting multiline command strings in
1743 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1746 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1744
1747
1745 * doc/build_doc_instructions.txt added. Documentation on how to
1748 * doc/build_doc_instructions.txt added. Documentation on how to
1746 use doc/update_manual.py, added yesterday. Both files contributed
1749 use doc/update_manual.py, added yesterday. Both files contributed
1747 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1750 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1748 doc/*.sh for deprecation at a later date.
1751 doc/*.sh for deprecation at a later date.
1749
1752
1750 * /ipython.py Added ipython.py to root directory for
1753 * /ipython.py Added ipython.py to root directory for
1751 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1754 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1752 ipython.py) and development convenience (no need to keep doing
1755 ipython.py) and development convenience (no need to keep doing
1753 "setup.py install" between changes).
1756 "setup.py install" between changes).
1754
1757
1755 * Made ! and !! shell escapes work (again) in multiline expressions:
1758 * Made ! and !! shell escapes work (again) in multiline expressions:
1756 if 1:
1759 if 1:
1757 !ls
1760 !ls
1758 !!ls
1761 !!ls
1759
1762
1760 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1763 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1761
1764
1762 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1765 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1763 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1766 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1764 module in case-insensitive installation. Was causing crashes
1767 module in case-insensitive installation. Was causing crashes
1765 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1768 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1766
1769
1767 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1770 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1768 <marienz-AT-gentoo.org>, closes
1771 <marienz-AT-gentoo.org>, closes
1769 http://www.scipy.net/roundup/ipython/issue51.
1772 http://www.scipy.net/roundup/ipython/issue51.
1770
1773
1771 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1774 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1772
1775
1773 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1776 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1774 problem of excessive CPU usage under *nix and keyboard lag under
1777 problem of excessive CPU usage under *nix and keyboard lag under
1775 win32.
1778 win32.
1776
1779
1777 2006-01-10 *** Released version 0.7.0
1780 2006-01-10 *** Released version 0.7.0
1778
1781
1779 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1782 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1780
1783
1781 * IPython/Release.py (revision): tag version number to 0.7.0,
1784 * IPython/Release.py (revision): tag version number to 0.7.0,
1782 ready for release.
1785 ready for release.
1783
1786
1784 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1787 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1785 it informs the user of the name of the temp. file used. This can
1788 it informs the user of the name of the temp. file used. This can
1786 help if you decide later to reuse that same file, so you know
1789 help if you decide later to reuse that same file, so you know
1787 where to copy the info from.
1790 where to copy the info from.
1788
1791
1789 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1792 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1790
1793
1791 * setup_bdist_egg.py: little script to build an egg. Added
1794 * setup_bdist_egg.py: little script to build an egg. Added
1792 support in the release tools as well.
1795 support in the release tools as well.
1793
1796
1794 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1797 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1795
1798
1796 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1799 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1797 version selection (new -wxversion command line and ipythonrc
1800 version selection (new -wxversion command line and ipythonrc
1798 parameter). Patch contributed by Arnd Baecker
1801 parameter). Patch contributed by Arnd Baecker
1799 <arnd.baecker-AT-web.de>.
1802 <arnd.baecker-AT-web.de>.
1800
1803
1801 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1804 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1802 embedded instances, for variables defined at the interactive
1805 embedded instances, for variables defined at the interactive
1803 prompt of the embedded ipython. Reported by Arnd.
1806 prompt of the embedded ipython. Reported by Arnd.
1804
1807
1805 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1808 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1806 it can be used as a (stateful) toggle, or with a direct parameter.
1809 it can be used as a (stateful) toggle, or with a direct parameter.
1807
1810
1808 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1811 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1809 could be triggered in certain cases and cause the traceback
1812 could be triggered in certain cases and cause the traceback
1810 printer not to work.
1813 printer not to work.
1811
1814
1812 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1813
1816
1814 * IPython/iplib.py (_should_recompile): Small fix, closes
1817 * IPython/iplib.py (_should_recompile): Small fix, closes
1815 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1818 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1816
1819
1817 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1820 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1818
1821
1819 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1822 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1820 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1823 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1821 Moad for help with tracking it down.
1824 Moad for help with tracking it down.
1822
1825
1823 * IPython/iplib.py (handle_auto): fix autocall handling for
1826 * IPython/iplib.py (handle_auto): fix autocall handling for
1824 objects which support BOTH __getitem__ and __call__ (so that f [x]
1827 objects which support BOTH __getitem__ and __call__ (so that f [x]
1825 is left alone, instead of becoming f([x]) automatically).
1828 is left alone, instead of becoming f([x]) automatically).
1826
1829
1827 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1830 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1828 Ville's patch.
1831 Ville's patch.
1829
1832
1830 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1833 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1831
1834
1832 * IPython/iplib.py (handle_auto): changed autocall semantics to
1835 * IPython/iplib.py (handle_auto): changed autocall semantics to
1833 include 'smart' mode, where the autocall transformation is NOT
1836 include 'smart' mode, where the autocall transformation is NOT
1834 applied if there are no arguments on the line. This allows you to
1837 applied if there are no arguments on the line. This allows you to
1835 just type 'foo' if foo is a callable to see its internal form,
1838 just type 'foo' if foo is a callable to see its internal form,
1836 instead of having it called with no arguments (typically a
1839 instead of having it called with no arguments (typically a
1837 mistake). The old 'full' autocall still exists: for that, you
1840 mistake). The old 'full' autocall still exists: for that, you
1838 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1841 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1839
1842
1840 * IPython/completer.py (Completer.attr_matches): add
1843 * IPython/completer.py (Completer.attr_matches): add
1841 tab-completion support for Enthoughts' traits. After a report by
1844 tab-completion support for Enthoughts' traits. After a report by
1842 Arnd and a patch by Prabhu.
1845 Arnd and a patch by Prabhu.
1843
1846
1844 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1847 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1845
1848
1846 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1849 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1847 Schmolck's patch to fix inspect.getinnerframes().
1850 Schmolck's patch to fix inspect.getinnerframes().
1848
1851
1849 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1852 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1850 for embedded instances, regarding handling of namespaces and items
1853 for embedded instances, regarding handling of namespaces and items
1851 added to the __builtin__ one. Multiple embedded instances and
1854 added to the __builtin__ one. Multiple embedded instances and
1852 recursive embeddings should work better now (though I'm not sure
1855 recursive embeddings should work better now (though I'm not sure
1853 I've got all the corner cases fixed, that code is a bit of a brain
1856 I've got all the corner cases fixed, that code is a bit of a brain
1854 twister).
1857 twister).
1855
1858
1856 * IPython/Magic.py (magic_edit): added support to edit in-memory
1859 * IPython/Magic.py (magic_edit): added support to edit in-memory
1857 macros (automatically creates the necessary temp files). %edit
1860 macros (automatically creates the necessary temp files). %edit
1858 also doesn't return the file contents anymore, it's just noise.
1861 also doesn't return the file contents anymore, it's just noise.
1859
1862
1860 * IPython/completer.py (Completer.attr_matches): revert change to
1863 * IPython/completer.py (Completer.attr_matches): revert change to
1861 complete only on attributes listed in __all__. I realized it
1864 complete only on attributes listed in __all__. I realized it
1862 cripples the tab-completion system as a tool for exploring the
1865 cripples the tab-completion system as a tool for exploring the
1863 internals of unknown libraries (it renders any non-__all__
1866 internals of unknown libraries (it renders any non-__all__
1864 attribute off-limits). I got bit by this when trying to see
1867 attribute off-limits). I got bit by this when trying to see
1865 something inside the dis module.
1868 something inside the dis module.
1866
1869
1867 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1870 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1868
1871
1869 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1872 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1870 namespace for users and extension writers to hold data in. This
1873 namespace for users and extension writers to hold data in. This
1871 follows the discussion in
1874 follows the discussion in
1872 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1875 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1873
1876
1874 * IPython/completer.py (IPCompleter.complete): small patch to help
1877 * IPython/completer.py (IPCompleter.complete): small patch to help
1875 tab-completion under Emacs, after a suggestion by John Barnard
1878 tab-completion under Emacs, after a suggestion by John Barnard
1876 <barnarj-AT-ccf.org>.
1879 <barnarj-AT-ccf.org>.
1877
1880
1878 * IPython/Magic.py (Magic.extract_input_slices): added support for
1881 * IPython/Magic.py (Magic.extract_input_slices): added support for
1879 the slice notation in magics to use N-M to represent numbers N...M
1882 the slice notation in magics to use N-M to represent numbers N...M
1880 (closed endpoints). This is used by %macro and %save.
1883 (closed endpoints). This is used by %macro and %save.
1881
1884
1882 * IPython/completer.py (Completer.attr_matches): for modules which
1885 * IPython/completer.py (Completer.attr_matches): for modules which
1883 define __all__, complete only on those. After a patch by Jeffrey
1886 define __all__, complete only on those. After a patch by Jeffrey
1884 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1887 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1885 speed up this routine.
1888 speed up this routine.
1886
1889
1887 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1890 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1888 don't know if this is the end of it, but the behavior now is
1891 don't know if this is the end of it, but the behavior now is
1889 certainly much more correct. Note that coupled with macros,
1892 certainly much more correct. Note that coupled with macros,
1890 slightly surprising (at first) behavior may occur: a macro will in
1893 slightly surprising (at first) behavior may occur: a macro will in
1891 general expand to multiple lines of input, so upon exiting, the
1894 general expand to multiple lines of input, so upon exiting, the
1892 in/out counters will both be bumped by the corresponding amount
1895 in/out counters will both be bumped by the corresponding amount
1893 (as if the macro's contents had been typed interactively). Typing
1896 (as if the macro's contents had been typed interactively). Typing
1894 %hist will reveal the intermediate (silently processed) lines.
1897 %hist will reveal the intermediate (silently processed) lines.
1895
1898
1896 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1899 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1897 pickle to fail (%run was overwriting __main__ and not restoring
1900 pickle to fail (%run was overwriting __main__ and not restoring
1898 it, but pickle relies on __main__ to operate).
1901 it, but pickle relies on __main__ to operate).
1899
1902
1900 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1903 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1901 using properties, but forgot to make the main InteractiveShell
1904 using properties, but forgot to make the main InteractiveShell
1902 class a new-style class. Properties fail silently, and
1905 class a new-style class. Properties fail silently, and
1903 mysteriously, with old-style class (getters work, but
1906 mysteriously, with old-style class (getters work, but
1904 setters don't do anything).
1907 setters don't do anything).
1905
1908
1906 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1909 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1907
1910
1908 * IPython/Magic.py (magic_history): fix history reporting bug (I
1911 * IPython/Magic.py (magic_history): fix history reporting bug (I
1909 know some nasties are still there, I just can't seem to find a
1912 know some nasties are still there, I just can't seem to find a
1910 reproducible test case to track them down; the input history is
1913 reproducible test case to track them down; the input history is
1911 falling out of sync...)
1914 falling out of sync...)
1912
1915
1913 * IPython/iplib.py (handle_shell_escape): fix bug where both
1916 * IPython/iplib.py (handle_shell_escape): fix bug where both
1914 aliases and system accesses where broken for indented code (such
1917 aliases and system accesses where broken for indented code (such
1915 as loops).
1918 as loops).
1916
1919
1917 * IPython/genutils.py (shell): fix small but critical bug for
1920 * IPython/genutils.py (shell): fix small but critical bug for
1918 win32 system access.
1921 win32 system access.
1919
1922
1920 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1923 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1921
1924
1922 * IPython/iplib.py (showtraceback): remove use of the
1925 * IPython/iplib.py (showtraceback): remove use of the
1923 sys.last_{type/value/traceback} structures, which are non
1926 sys.last_{type/value/traceback} structures, which are non
1924 thread-safe.
1927 thread-safe.
1925 (_prefilter): change control flow to ensure that we NEVER
1928 (_prefilter): change control flow to ensure that we NEVER
1926 introspect objects when autocall is off. This will guarantee that
1929 introspect objects when autocall is off. This will guarantee that
1927 having an input line of the form 'x.y', where access to attribute
1930 having an input line of the form 'x.y', where access to attribute
1928 'y' has side effects, doesn't trigger the side effect TWICE. It
1931 'y' has side effects, doesn't trigger the side effect TWICE. It
1929 is important to note that, with autocall on, these side effects
1932 is important to note that, with autocall on, these side effects
1930 can still happen.
1933 can still happen.
1931 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1934 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1932 trio. IPython offers these three kinds of special calls which are
1935 trio. IPython offers these three kinds of special calls which are
1933 not python code, and it's a good thing to have their call method
1936 not python code, and it's a good thing to have their call method
1934 be accessible as pure python functions (not just special syntax at
1937 be accessible as pure python functions (not just special syntax at
1935 the command line). It gives us a better internal implementation
1938 the command line). It gives us a better internal implementation
1936 structure, as well as exposing these for user scripting more
1939 structure, as well as exposing these for user scripting more
1937 cleanly.
1940 cleanly.
1938
1941
1939 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1942 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1940 file. Now that they'll be more likely to be used with the
1943 file. Now that they'll be more likely to be used with the
1941 persistance system (%store), I want to make sure their module path
1944 persistance system (%store), I want to make sure their module path
1942 doesn't change in the future, so that we don't break things for
1945 doesn't change in the future, so that we don't break things for
1943 users' persisted data.
1946 users' persisted data.
1944
1947
1945 * IPython/iplib.py (autoindent_update): move indentation
1948 * IPython/iplib.py (autoindent_update): move indentation
1946 management into the _text_ processing loop, not the keyboard
1949 management into the _text_ processing loop, not the keyboard
1947 interactive one. This is necessary to correctly process non-typed
1950 interactive one. This is necessary to correctly process non-typed
1948 multiline input (such as macros).
1951 multiline input (such as macros).
1949
1952
1950 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1953 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1951 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1954 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1952 which was producing problems in the resulting manual.
1955 which was producing problems in the resulting manual.
1953 (magic_whos): improve reporting of instances (show their class,
1956 (magic_whos): improve reporting of instances (show their class,
1954 instead of simply printing 'instance' which isn't terribly
1957 instead of simply printing 'instance' which isn't terribly
1955 informative).
1958 informative).
1956
1959
1957 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1960 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1958 (minor mods) to support network shares under win32.
1961 (minor mods) to support network shares under win32.
1959
1962
1960 * IPython/winconsole.py (get_console_size): add new winconsole
1963 * IPython/winconsole.py (get_console_size): add new winconsole
1961 module and fixes to page_dumb() to improve its behavior under
1964 module and fixes to page_dumb() to improve its behavior under
1962 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1965 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1963
1966
1964 * IPython/Magic.py (Macro): simplified Macro class to just
1967 * IPython/Magic.py (Macro): simplified Macro class to just
1965 subclass list. We've had only 2.2 compatibility for a very long
1968 subclass list. We've had only 2.2 compatibility for a very long
1966 time, yet I was still avoiding subclassing the builtin types. No
1969 time, yet I was still avoiding subclassing the builtin types. No
1967 more (I'm also starting to use properties, though I won't shift to
1970 more (I'm also starting to use properties, though I won't shift to
1968 2.3-specific features quite yet).
1971 2.3-specific features quite yet).
1969 (magic_store): added Ville's patch for lightweight variable
1972 (magic_store): added Ville's patch for lightweight variable
1970 persistence, after a request on the user list by Matt Wilkie
1973 persistence, after a request on the user list by Matt Wilkie
1971 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1974 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1972 details.
1975 details.
1973
1976
1974 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1977 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1975 changed the default logfile name from 'ipython.log' to
1978 changed the default logfile name from 'ipython.log' to
1976 'ipython_log.py'. These logs are real python files, and now that
1979 'ipython_log.py'. These logs are real python files, and now that
1977 we have much better multiline support, people are more likely to
1980 we have much better multiline support, people are more likely to
1978 want to use them as such. Might as well name them correctly.
1981 want to use them as such. Might as well name them correctly.
1979
1982
1980 * IPython/Magic.py: substantial cleanup. While we can't stop
1983 * IPython/Magic.py: substantial cleanup. While we can't stop
1981 using magics as mixins, due to the existing customizations 'out
1984 using magics as mixins, due to the existing customizations 'out
1982 there' which rely on the mixin naming conventions, at least I
1985 there' which rely on the mixin naming conventions, at least I
1983 cleaned out all cross-class name usage. So once we are OK with
1986 cleaned out all cross-class name usage. So once we are OK with
1984 breaking compatibility, the two systems can be separated.
1987 breaking compatibility, the two systems can be separated.
1985
1988
1986 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1989 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1987 anymore, and the class is a fair bit less hideous as well. New
1990 anymore, and the class is a fair bit less hideous as well. New
1988 features were also introduced: timestamping of input, and logging
1991 features were also introduced: timestamping of input, and logging
1989 of output results. These are user-visible with the -t and -o
1992 of output results. These are user-visible with the -t and -o
1990 options to %logstart. Closes
1993 options to %logstart. Closes
1991 http://www.scipy.net/roundup/ipython/issue11 and a request by
1994 http://www.scipy.net/roundup/ipython/issue11 and a request by
1992 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1995 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1993
1996
1994 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1997 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1995
1998
1996 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1999 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1997 better handle backslashes in paths. See the thread 'More Windows
2000 better handle backslashes in paths. See the thread 'More Windows
1998 questions part 2 - \/ characters revisited' on the iypthon user
2001 questions part 2 - \/ characters revisited' on the iypthon user
1999 list:
2002 list:
2000 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2003 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2001
2004
2002 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2005 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2003
2006
2004 (InteractiveShell.__init__): change threaded shells to not use the
2007 (InteractiveShell.__init__): change threaded shells to not use the
2005 ipython crash handler. This was causing more problems than not,
2008 ipython crash handler. This was causing more problems than not,
2006 as exceptions in the main thread (GUI code, typically) would
2009 as exceptions in the main thread (GUI code, typically) would
2007 always show up as a 'crash', when they really weren't.
2010 always show up as a 'crash', when they really weren't.
2008
2011
2009 The colors and exception mode commands (%colors/%xmode) have been
2012 The colors and exception mode commands (%colors/%xmode) have been
2010 synchronized to also take this into account, so users can get
2013 synchronized to also take this into account, so users can get
2011 verbose exceptions for their threaded code as well. I also added
2014 verbose exceptions for their threaded code as well. I also added
2012 support for activating pdb inside this exception handler as well,
2015 support for activating pdb inside this exception handler as well,
2013 so now GUI authors can use IPython's enhanced pdb at runtime.
2016 so now GUI authors can use IPython's enhanced pdb at runtime.
2014
2017
2015 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2018 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2016 true by default, and add it to the shipped ipythonrc file. Since
2019 true by default, and add it to the shipped ipythonrc file. Since
2017 this asks the user before proceeding, I think it's OK to make it
2020 this asks the user before proceeding, I think it's OK to make it
2018 true by default.
2021 true by default.
2019
2022
2020 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2023 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2021 of the previous special-casing of input in the eval loop. I think
2024 of the previous special-casing of input in the eval loop. I think
2022 this is cleaner, as they really are commands and shouldn't have
2025 this is cleaner, as they really are commands and shouldn't have
2023 a special role in the middle of the core code.
2026 a special role in the middle of the core code.
2024
2027
2025 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2028 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2026
2029
2027 * IPython/iplib.py (edit_syntax_error): added support for
2030 * IPython/iplib.py (edit_syntax_error): added support for
2028 automatically reopening the editor if the file had a syntax error
2031 automatically reopening the editor if the file had a syntax error
2029 in it. Thanks to scottt who provided the patch at:
2032 in it. Thanks to scottt who provided the patch at:
2030 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2033 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2031 version committed).
2034 version committed).
2032
2035
2033 * IPython/iplib.py (handle_normal): add suport for multi-line
2036 * IPython/iplib.py (handle_normal): add suport for multi-line
2034 input with emtpy lines. This fixes
2037 input with emtpy lines. This fixes
2035 http://www.scipy.net/roundup/ipython/issue43 and a similar
2038 http://www.scipy.net/roundup/ipython/issue43 and a similar
2036 discussion on the user list.
2039 discussion on the user list.
2037
2040
2038 WARNING: a behavior change is necessarily introduced to support
2041 WARNING: a behavior change is necessarily introduced to support
2039 blank lines: now a single blank line with whitespace does NOT
2042 blank lines: now a single blank line with whitespace does NOT
2040 break the input loop, which means that when autoindent is on, by
2043 break the input loop, which means that when autoindent is on, by
2041 default hitting return on the next (indented) line does NOT exit.
2044 default hitting return on the next (indented) line does NOT exit.
2042
2045
2043 Instead, to exit a multiline input you can either have:
2046 Instead, to exit a multiline input you can either have:
2044
2047
2045 - TWO whitespace lines (just hit return again), or
2048 - TWO whitespace lines (just hit return again), or
2046 - a single whitespace line of a different length than provided
2049 - a single whitespace line of a different length than provided
2047 by the autoindent (add or remove a space).
2050 by the autoindent (add or remove a space).
2048
2051
2049 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2052 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2050 module to better organize all readline-related functionality.
2053 module to better organize all readline-related functionality.
2051 I've deleted FlexCompleter and put all completion clases here.
2054 I've deleted FlexCompleter and put all completion clases here.
2052
2055
2053 * IPython/iplib.py (raw_input): improve indentation management.
2056 * IPython/iplib.py (raw_input): improve indentation management.
2054 It is now possible to paste indented code with autoindent on, and
2057 It is now possible to paste indented code with autoindent on, and
2055 the code is interpreted correctly (though it still looks bad on
2058 the code is interpreted correctly (though it still looks bad on
2056 screen, due to the line-oriented nature of ipython).
2059 screen, due to the line-oriented nature of ipython).
2057 (MagicCompleter.complete): change behavior so that a TAB key on an
2060 (MagicCompleter.complete): change behavior so that a TAB key on an
2058 otherwise empty line actually inserts a tab, instead of completing
2061 otherwise empty line actually inserts a tab, instead of completing
2059 on the entire global namespace. This makes it easier to use the
2062 on the entire global namespace. This makes it easier to use the
2060 TAB key for indentation. After a request by Hans Meine
2063 TAB key for indentation. After a request by Hans Meine
2061 <hans_meine-AT-gmx.net>
2064 <hans_meine-AT-gmx.net>
2062 (_prefilter): add support so that typing plain 'exit' or 'quit'
2065 (_prefilter): add support so that typing plain 'exit' or 'quit'
2063 does a sensible thing. Originally I tried to deviate as little as
2066 does a sensible thing. Originally I tried to deviate as little as
2064 possible from the default python behavior, but even that one may
2067 possible from the default python behavior, but even that one may
2065 change in this direction (thread on python-dev to that effect).
2068 change in this direction (thread on python-dev to that effect).
2066 Regardless, ipython should do the right thing even if CPython's
2069 Regardless, ipython should do the right thing even if CPython's
2067 '>>>' prompt doesn't.
2070 '>>>' prompt doesn't.
2068 (InteractiveShell): removed subclassing code.InteractiveConsole
2071 (InteractiveShell): removed subclassing code.InteractiveConsole
2069 class. By now we'd overridden just about all of its methods: I've
2072 class. By now we'd overridden just about all of its methods: I've
2070 copied the remaining two over, and now ipython is a standalone
2073 copied the remaining two over, and now ipython is a standalone
2071 class. This will provide a clearer picture for the chainsaw
2074 class. This will provide a clearer picture for the chainsaw
2072 branch refactoring.
2075 branch refactoring.
2073
2076
2074 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2077 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2075
2078
2076 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2079 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2077 failures for objects which break when dir() is called on them.
2080 failures for objects which break when dir() is called on them.
2078
2081
2079 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2082 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2080 distinct local and global namespaces in the completer API. This
2083 distinct local and global namespaces in the completer API. This
2081 change allows us to properly handle completion with distinct
2084 change allows us to properly handle completion with distinct
2082 scopes, including in embedded instances (this had never really
2085 scopes, including in embedded instances (this had never really
2083 worked correctly).
2086 worked correctly).
2084
2087
2085 Note: this introduces a change in the constructor for
2088 Note: this introduces a change in the constructor for
2086 MagicCompleter, as a new global_namespace parameter is now the
2089 MagicCompleter, as a new global_namespace parameter is now the
2087 second argument (the others were bumped one position).
2090 second argument (the others were bumped one position).
2088
2091
2089 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2092 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2090
2093
2091 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2094 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2092 embedded instances (which can be done now thanks to Vivian's
2095 embedded instances (which can be done now thanks to Vivian's
2093 frame-handling fixes for pdb).
2096 frame-handling fixes for pdb).
2094 (InteractiveShell.__init__): Fix namespace handling problem in
2097 (InteractiveShell.__init__): Fix namespace handling problem in
2095 embedded instances. We were overwriting __main__ unconditionally,
2098 embedded instances. We were overwriting __main__ unconditionally,
2096 and this should only be done for 'full' (non-embedded) IPython;
2099 and this should only be done for 'full' (non-embedded) IPython;
2097 embedded instances must respect the caller's __main__. Thanks to
2100 embedded instances must respect the caller's __main__. Thanks to
2098 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2101 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2099
2102
2100 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2103 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2101
2104
2102 * setup.py: added download_url to setup(). This registers the
2105 * setup.py: added download_url to setup(). This registers the
2103 download address at PyPI, which is not only useful to humans
2106 download address at PyPI, which is not only useful to humans
2104 browsing the site, but is also picked up by setuptools (the Eggs
2107 browsing the site, but is also picked up by setuptools (the Eggs
2105 machinery). Thanks to Ville and R. Kern for the info/discussion
2108 machinery). Thanks to Ville and R. Kern for the info/discussion
2106 on this.
2109 on this.
2107
2110
2108 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2111 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2109
2112
2110 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2113 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2111 This brings a lot of nice functionality to the pdb mode, which now
2114 This brings a lot of nice functionality to the pdb mode, which now
2112 has tab-completion, syntax highlighting, and better stack handling
2115 has tab-completion, syntax highlighting, and better stack handling
2113 than before. Many thanks to Vivian De Smedt
2116 than before. Many thanks to Vivian De Smedt
2114 <vivian-AT-vdesmedt.com> for the original patches.
2117 <vivian-AT-vdesmedt.com> for the original patches.
2115
2118
2116 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2119 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2117
2120
2118 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2121 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2119 sequence to consistently accept the banner argument. The
2122 sequence to consistently accept the banner argument. The
2120 inconsistency was tripping SAGE, thanks to Gary Zablackis
2123 inconsistency was tripping SAGE, thanks to Gary Zablackis
2121 <gzabl-AT-yahoo.com> for the report.
2124 <gzabl-AT-yahoo.com> for the report.
2122
2125
2123 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2126 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2124
2127
2125 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2128 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2126 Fix bug where a naked 'alias' call in the ipythonrc file would
2129 Fix bug where a naked 'alias' call in the ipythonrc file would
2127 cause a crash. Bug reported by Jorgen Stenarson.
2130 cause a crash. Bug reported by Jorgen Stenarson.
2128
2131
2129 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2132 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2130
2133
2131 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2134 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2132 startup time.
2135 startup time.
2133
2136
2134 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2137 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2135 instances had introduced a bug with globals in normal code. Now
2138 instances had introduced a bug with globals in normal code. Now
2136 it's working in all cases.
2139 it's working in all cases.
2137
2140
2138 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2141 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2139 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2142 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2140 has been introduced to set the default case sensitivity of the
2143 has been introduced to set the default case sensitivity of the
2141 searches. Users can still select either mode at runtime on a
2144 searches. Users can still select either mode at runtime on a
2142 per-search basis.
2145 per-search basis.
2143
2146
2144 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2147 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2145
2148
2146 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2149 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2147 attributes in wildcard searches for subclasses. Modified version
2150 attributes in wildcard searches for subclasses. Modified version
2148 of a patch by Jorgen.
2151 of a patch by Jorgen.
2149
2152
2150 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2153 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2151
2154
2152 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2155 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2153 embedded instances. I added a user_global_ns attribute to the
2156 embedded instances. I added a user_global_ns attribute to the
2154 InteractiveShell class to handle this.
2157 InteractiveShell class to handle this.
2155
2158
2156 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2159 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2157
2160
2158 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2161 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2159 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2162 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2160 (reported under win32, but may happen also in other platforms).
2163 (reported under win32, but may happen also in other platforms).
2161 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2164 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2162
2165
2163 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2166 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2167
2165 * IPython/Magic.py (magic_psearch): new support for wildcard
2168 * IPython/Magic.py (magic_psearch): new support for wildcard
2166 patterns. Now, typing ?a*b will list all names which begin with a
2169 patterns. Now, typing ?a*b will list all names which begin with a
2167 and end in b, for example. The %psearch magic has full
2170 and end in b, for example. The %psearch magic has full
2168 docstrings. Many thanks to JΓΆrgen Stenarson
2171 docstrings. Many thanks to JΓΆrgen Stenarson
2169 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2172 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2170 implementing this functionality.
2173 implementing this functionality.
2171
2174
2172 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2175 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2173
2176
2174 * Manual: fixed long-standing annoyance of double-dashes (as in
2177 * Manual: fixed long-standing annoyance of double-dashes (as in
2175 --prefix=~, for example) being stripped in the HTML version. This
2178 --prefix=~, for example) being stripped in the HTML version. This
2176 is a latex2html bug, but a workaround was provided. Many thanks
2179 is a latex2html bug, but a workaround was provided. Many thanks
2177 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2180 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2178 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2181 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2179 rolling. This seemingly small issue had tripped a number of users
2182 rolling. This seemingly small issue had tripped a number of users
2180 when first installing, so I'm glad to see it gone.
2183 when first installing, so I'm glad to see it gone.
2181
2184
2182 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2185 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2183
2186
2184 * IPython/Extensions/numeric_formats.py: fix missing import,
2187 * IPython/Extensions/numeric_formats.py: fix missing import,
2185 reported by Stephen Walton.
2188 reported by Stephen Walton.
2186
2189
2187 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2190 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2188
2191
2189 * IPython/demo.py: finish demo module, fully documented now.
2192 * IPython/demo.py: finish demo module, fully documented now.
2190
2193
2191 * IPython/genutils.py (file_read): simple little utility to read a
2194 * IPython/genutils.py (file_read): simple little utility to read a
2192 file and ensure it's closed afterwards.
2195 file and ensure it's closed afterwards.
2193
2196
2194 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2197 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2195
2198
2196 * IPython/demo.py (Demo.__init__): added support for individually
2199 * IPython/demo.py (Demo.__init__): added support for individually
2197 tagging blocks for automatic execution.
2200 tagging blocks for automatic execution.
2198
2201
2199 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2202 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2200 syntax-highlighted python sources, requested by John.
2203 syntax-highlighted python sources, requested by John.
2201
2204
2202 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2205 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2203
2206
2204 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2207 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2205 finishing.
2208 finishing.
2206
2209
2207 * IPython/genutils.py (shlex_split): moved from Magic to here,
2210 * IPython/genutils.py (shlex_split): moved from Magic to here,
2208 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2211 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2209
2212
2210 * IPython/demo.py (Demo.__init__): added support for silent
2213 * IPython/demo.py (Demo.__init__): added support for silent
2211 blocks, improved marks as regexps, docstrings written.
2214 blocks, improved marks as regexps, docstrings written.
2212 (Demo.__init__): better docstring, added support for sys.argv.
2215 (Demo.__init__): better docstring, added support for sys.argv.
2213
2216
2214 * IPython/genutils.py (marquee): little utility used by the demo
2217 * IPython/genutils.py (marquee): little utility used by the demo
2215 code, handy in general.
2218 code, handy in general.
2216
2219
2217 * IPython/demo.py (Demo.__init__): new class for interactive
2220 * IPython/demo.py (Demo.__init__): new class for interactive
2218 demos. Not documented yet, I just wrote it in a hurry for
2221 demos. Not documented yet, I just wrote it in a hurry for
2219 scipy'05. Will docstring later.
2222 scipy'05. Will docstring later.
2220
2223
2221 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2224 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2222
2225
2223 * IPython/Shell.py (sigint_handler): Drastic simplification which
2226 * IPython/Shell.py (sigint_handler): Drastic simplification which
2224 also seems to make Ctrl-C work correctly across threads! This is
2227 also seems to make Ctrl-C work correctly across threads! This is
2225 so simple, that I can't beleive I'd missed it before. Needs more
2228 so simple, that I can't beleive I'd missed it before. Needs more
2226 testing, though.
2229 testing, though.
2227 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2230 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2228 like this before...
2231 like this before...
2229
2232
2230 * IPython/genutils.py (get_home_dir): add protection against
2233 * IPython/genutils.py (get_home_dir): add protection against
2231 non-dirs in win32 registry.
2234 non-dirs in win32 registry.
2232
2235
2233 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2236 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2234 bug where dict was mutated while iterating (pysh crash).
2237 bug where dict was mutated while iterating (pysh crash).
2235
2238
2236 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2239 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2237
2240
2238 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2241 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2239 spurious newlines added by this routine. After a report by
2242 spurious newlines added by this routine. After a report by
2240 F. Mantegazza.
2243 F. Mantegazza.
2241
2244
2242 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2245 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2243
2246
2244 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2247 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2245 calls. These were a leftover from the GTK 1.x days, and can cause
2248 calls. These were a leftover from the GTK 1.x days, and can cause
2246 problems in certain cases (after a report by John Hunter).
2249 problems in certain cases (after a report by John Hunter).
2247
2250
2248 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2251 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2249 os.getcwd() fails at init time. Thanks to patch from David Remahl
2252 os.getcwd() fails at init time. Thanks to patch from David Remahl
2250 <chmod007-AT-mac.com>.
2253 <chmod007-AT-mac.com>.
2251 (InteractiveShell.__init__): prevent certain special magics from
2254 (InteractiveShell.__init__): prevent certain special magics from
2252 being shadowed by aliases. Closes
2255 being shadowed by aliases. Closes
2253 http://www.scipy.net/roundup/ipython/issue41.
2256 http://www.scipy.net/roundup/ipython/issue41.
2254
2257
2255 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2258 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2256
2259
2257 * IPython/iplib.py (InteractiveShell.complete): Added new
2260 * IPython/iplib.py (InteractiveShell.complete): Added new
2258 top-level completion method to expose the completion mechanism
2261 top-level completion method to expose the completion mechanism
2259 beyond readline-based environments.
2262 beyond readline-based environments.
2260
2263
2261 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2264 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2265
2263 * tools/ipsvnc (svnversion): fix svnversion capture.
2266 * tools/ipsvnc (svnversion): fix svnversion capture.
2264
2267
2265 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2268 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2266 attribute to self, which was missing. Before, it was set by a
2269 attribute to self, which was missing. Before, it was set by a
2267 routine which in certain cases wasn't being called, so the
2270 routine which in certain cases wasn't being called, so the
2268 instance could end up missing the attribute. This caused a crash.
2271 instance could end up missing the attribute. This caused a crash.
2269 Closes http://www.scipy.net/roundup/ipython/issue40.
2272 Closes http://www.scipy.net/roundup/ipython/issue40.
2270
2273
2271 2005-08-16 Fernando Perez <fperez@colorado.edu>
2274 2005-08-16 Fernando Perez <fperez@colorado.edu>
2272
2275
2273 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2276 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2274 contains non-string attribute. Closes
2277 contains non-string attribute. Closes
2275 http://www.scipy.net/roundup/ipython/issue38.
2278 http://www.scipy.net/roundup/ipython/issue38.
2276
2279
2277 2005-08-14 Fernando Perez <fperez@colorado.edu>
2280 2005-08-14 Fernando Perez <fperez@colorado.edu>
2278
2281
2279 * tools/ipsvnc: Minor improvements, to add changeset info.
2282 * tools/ipsvnc: Minor improvements, to add changeset info.
2280
2283
2281 2005-08-12 Fernando Perez <fperez@colorado.edu>
2284 2005-08-12 Fernando Perez <fperez@colorado.edu>
2282
2285
2283 * IPython/iplib.py (runsource): remove self.code_to_run_src
2286 * IPython/iplib.py (runsource): remove self.code_to_run_src
2284 attribute. I realized this is nothing more than
2287 attribute. I realized this is nothing more than
2285 '\n'.join(self.buffer), and having the same data in two different
2288 '\n'.join(self.buffer), and having the same data in two different
2286 places is just asking for synchronization bugs. This may impact
2289 places is just asking for synchronization bugs. This may impact
2287 people who have custom exception handlers, so I need to warn
2290 people who have custom exception handlers, so I need to warn
2288 ipython-dev about it (F. Mantegazza may use them).
2291 ipython-dev about it (F. Mantegazza may use them).
2289
2292
2290 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2293 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2291
2294
2292 * IPython/genutils.py: fix 2.2 compatibility (generators)
2295 * IPython/genutils.py: fix 2.2 compatibility (generators)
2293
2296
2294 2005-07-18 Fernando Perez <fperez@colorado.edu>
2297 2005-07-18 Fernando Perez <fperez@colorado.edu>
2295
2298
2296 * IPython/genutils.py (get_home_dir): fix to help users with
2299 * IPython/genutils.py (get_home_dir): fix to help users with
2297 invalid $HOME under win32.
2300 invalid $HOME under win32.
2298
2301
2299 2005-07-17 Fernando Perez <fperez@colorado.edu>
2302 2005-07-17 Fernando Perez <fperez@colorado.edu>
2300
2303
2301 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2304 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2302 some old hacks and clean up a bit other routines; code should be
2305 some old hacks and clean up a bit other routines; code should be
2303 simpler and a bit faster.
2306 simpler and a bit faster.
2304
2307
2305 * IPython/iplib.py (interact): removed some last-resort attempts
2308 * IPython/iplib.py (interact): removed some last-resort attempts
2306 to survive broken stdout/stderr. That code was only making it
2309 to survive broken stdout/stderr. That code was only making it
2307 harder to abstract out the i/o (necessary for gui integration),
2310 harder to abstract out the i/o (necessary for gui integration),
2308 and the crashes it could prevent were extremely rare in practice
2311 and the crashes it could prevent were extremely rare in practice
2309 (besides being fully user-induced in a pretty violent manner).
2312 (besides being fully user-induced in a pretty violent manner).
2310
2313
2311 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2314 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2312 Nothing major yet, but the code is simpler to read; this should
2315 Nothing major yet, but the code is simpler to read; this should
2313 make it easier to do more serious modifications in the future.
2316 make it easier to do more serious modifications in the future.
2314
2317
2315 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2318 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2316 which broke in .15 (thanks to a report by Ville).
2319 which broke in .15 (thanks to a report by Ville).
2317
2320
2318 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2321 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2319 be quite correct, I know next to nothing about unicode). This
2322 be quite correct, I know next to nothing about unicode). This
2320 will allow unicode strings to be used in prompts, amongst other
2323 will allow unicode strings to be used in prompts, amongst other
2321 cases. It also will prevent ipython from crashing when unicode
2324 cases. It also will prevent ipython from crashing when unicode
2322 shows up unexpectedly in many places. If ascii encoding fails, we
2325 shows up unexpectedly in many places. If ascii encoding fails, we
2323 assume utf_8. Currently the encoding is not a user-visible
2326 assume utf_8. Currently the encoding is not a user-visible
2324 setting, though it could be made so if there is demand for it.
2327 setting, though it could be made so if there is demand for it.
2325
2328
2326 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2329 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2327
2330
2328 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2331 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2329
2332
2330 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2333 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2331
2334
2332 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2335 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2333 code can work transparently for 2.2/2.3.
2336 code can work transparently for 2.2/2.3.
2334
2337
2335 2005-07-16 Fernando Perez <fperez@colorado.edu>
2338 2005-07-16 Fernando Perez <fperez@colorado.edu>
2336
2339
2337 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2340 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2338 out of the color scheme table used for coloring exception
2341 out of the color scheme table used for coloring exception
2339 tracebacks. This allows user code to add new schemes at runtime.
2342 tracebacks. This allows user code to add new schemes at runtime.
2340 This is a minimally modified version of the patch at
2343 This is a minimally modified version of the patch at
2341 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2344 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2342 for the contribution.
2345 for the contribution.
2343
2346
2344 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2347 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2345 slightly modified version of the patch in
2348 slightly modified version of the patch in
2346 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2349 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2347 to remove the previous try/except solution (which was costlier).
2350 to remove the previous try/except solution (which was costlier).
2348 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2351 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2349
2352
2350 2005-06-08 Fernando Perez <fperez@colorado.edu>
2353 2005-06-08 Fernando Perez <fperez@colorado.edu>
2351
2354
2352 * IPython/iplib.py (write/write_err): Add methods to abstract all
2355 * IPython/iplib.py (write/write_err): Add methods to abstract all
2353 I/O a bit more.
2356 I/O a bit more.
2354
2357
2355 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2358 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2356 warning, reported by Aric Hagberg, fix by JD Hunter.
2359 warning, reported by Aric Hagberg, fix by JD Hunter.
2357
2360
2358 2005-06-02 *** Released version 0.6.15
2361 2005-06-02 *** Released version 0.6.15
2359
2362
2360 2005-06-01 Fernando Perez <fperez@colorado.edu>
2363 2005-06-01 Fernando Perez <fperez@colorado.edu>
2361
2364
2362 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2365 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2363 tab-completion of filenames within open-quoted strings. Note that
2366 tab-completion of filenames within open-quoted strings. Note that
2364 this requires that in ~/.ipython/ipythonrc, users change the
2367 this requires that in ~/.ipython/ipythonrc, users change the
2365 readline delimiters configuration to read:
2368 readline delimiters configuration to read:
2366
2369
2367 readline_remove_delims -/~
2370 readline_remove_delims -/~
2368
2371
2369
2372
2370 2005-05-31 *** Released version 0.6.14
2373 2005-05-31 *** Released version 0.6.14
2371
2374
2372 2005-05-29 Fernando Perez <fperez@colorado.edu>
2375 2005-05-29 Fernando Perez <fperez@colorado.edu>
2373
2376
2374 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2377 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2375 with files not on the filesystem. Reported by Eliyahu Sandler
2378 with files not on the filesystem. Reported by Eliyahu Sandler
2376 <eli@gondolin.net>
2379 <eli@gondolin.net>
2377
2380
2378 2005-05-22 Fernando Perez <fperez@colorado.edu>
2381 2005-05-22 Fernando Perez <fperez@colorado.edu>
2379
2382
2380 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2383 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2381 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2384 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2382
2385
2383 2005-05-19 Fernando Perez <fperez@colorado.edu>
2386 2005-05-19 Fernando Perez <fperez@colorado.edu>
2384
2387
2385 * IPython/iplib.py (safe_execfile): close a file which could be
2388 * IPython/iplib.py (safe_execfile): close a file which could be
2386 left open (causing problems in win32, which locks open files).
2389 left open (causing problems in win32, which locks open files).
2387 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2390 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2388
2391
2389 2005-05-18 Fernando Perez <fperez@colorado.edu>
2392 2005-05-18 Fernando Perez <fperez@colorado.edu>
2390
2393
2391 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2394 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2392 keyword arguments correctly to safe_execfile().
2395 keyword arguments correctly to safe_execfile().
2393
2396
2394 2005-05-13 Fernando Perez <fperez@colorado.edu>
2397 2005-05-13 Fernando Perez <fperez@colorado.edu>
2395
2398
2396 * ipython.1: Added info about Qt to manpage, and threads warning
2399 * ipython.1: Added info about Qt to manpage, and threads warning
2397 to usage page (invoked with --help).
2400 to usage page (invoked with --help).
2398
2401
2399 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2402 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2400 new matcher (it goes at the end of the priority list) to do
2403 new matcher (it goes at the end of the priority list) to do
2401 tab-completion on named function arguments. Submitted by George
2404 tab-completion on named function arguments. Submitted by George
2402 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2405 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2403 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2406 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2404 for more details.
2407 for more details.
2405
2408
2406 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2409 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2407 SystemExit exceptions in the script being run. Thanks to a report
2410 SystemExit exceptions in the script being run. Thanks to a report
2408 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2411 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2409 producing very annoying behavior when running unit tests.
2412 producing very annoying behavior when running unit tests.
2410
2413
2411 2005-05-12 Fernando Perez <fperez@colorado.edu>
2414 2005-05-12 Fernando Perez <fperez@colorado.edu>
2412
2415
2413 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2416 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2414 which I'd broken (again) due to a changed regexp. In the process,
2417 which I'd broken (again) due to a changed regexp. In the process,
2415 added ';' as an escape to auto-quote the whole line without
2418 added ';' as an escape to auto-quote the whole line without
2416 splitting its arguments. Thanks to a report by Jerry McRae
2419 splitting its arguments. Thanks to a report by Jerry McRae
2417 <qrs0xyc02-AT-sneakemail.com>.
2420 <qrs0xyc02-AT-sneakemail.com>.
2418
2421
2419 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2422 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2420 possible crashes caused by a TokenError. Reported by Ed Schofield
2423 possible crashes caused by a TokenError. Reported by Ed Schofield
2421 <schofield-AT-ftw.at>.
2424 <schofield-AT-ftw.at>.
2422
2425
2423 2005-05-06 Fernando Perez <fperez@colorado.edu>
2426 2005-05-06 Fernando Perez <fperez@colorado.edu>
2424
2427
2425 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2428 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2426
2429
2427 2005-04-29 Fernando Perez <fperez@colorado.edu>
2430 2005-04-29 Fernando Perez <fperez@colorado.edu>
2428
2431
2429 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2432 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2430 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2433 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2431 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2434 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2432 which provides support for Qt interactive usage (similar to the
2435 which provides support for Qt interactive usage (similar to the
2433 existing one for WX and GTK). This had been often requested.
2436 existing one for WX and GTK). This had been often requested.
2434
2437
2435 2005-04-14 *** Released version 0.6.13
2438 2005-04-14 *** Released version 0.6.13
2436
2439
2437 2005-04-08 Fernando Perez <fperez@colorado.edu>
2440 2005-04-08 Fernando Perez <fperez@colorado.edu>
2438
2441
2439 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2442 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2440 from _ofind, which gets called on almost every input line. Now,
2443 from _ofind, which gets called on almost every input line. Now,
2441 we only try to get docstrings if they are actually going to be
2444 we only try to get docstrings if they are actually going to be
2442 used (the overhead of fetching unnecessary docstrings can be
2445 used (the overhead of fetching unnecessary docstrings can be
2443 noticeable for certain objects, such as Pyro proxies).
2446 noticeable for certain objects, such as Pyro proxies).
2444
2447
2445 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2448 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2446 for completers. For some reason I had been passing them the state
2449 for completers. For some reason I had been passing them the state
2447 variable, which completers never actually need, and was in
2450 variable, which completers never actually need, and was in
2448 conflict with the rlcompleter API. Custom completers ONLY need to
2451 conflict with the rlcompleter API. Custom completers ONLY need to
2449 take the text parameter.
2452 take the text parameter.
2450
2453
2451 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2454 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2452 work correctly in pysh. I've also moved all the logic which used
2455 work correctly in pysh. I've also moved all the logic which used
2453 to be in pysh.py here, which will prevent problems with future
2456 to be in pysh.py here, which will prevent problems with future
2454 upgrades. However, this time I must warn users to update their
2457 upgrades. However, this time I must warn users to update their
2455 pysh profile to include the line
2458 pysh profile to include the line
2456
2459
2457 import_all IPython.Extensions.InterpreterExec
2460 import_all IPython.Extensions.InterpreterExec
2458
2461
2459 because otherwise things won't work for them. They MUST also
2462 because otherwise things won't work for them. They MUST also
2460 delete pysh.py and the line
2463 delete pysh.py and the line
2461
2464
2462 execfile pysh.py
2465 execfile pysh.py
2463
2466
2464 from their ipythonrc-pysh.
2467 from their ipythonrc-pysh.
2465
2468
2466 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2469 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2467 robust in the face of objects whose dir() returns non-strings
2470 robust in the face of objects whose dir() returns non-strings
2468 (which it shouldn't, but some broken libs like ITK do). Thanks to
2471 (which it shouldn't, but some broken libs like ITK do). Thanks to
2469 a patch by John Hunter (implemented differently, though). Also
2472 a patch by John Hunter (implemented differently, though). Also
2470 minor improvements by using .extend instead of + on lists.
2473 minor improvements by using .extend instead of + on lists.
2471
2474
2472 * pysh.py:
2475 * pysh.py:
2473
2476
2474 2005-04-06 Fernando Perez <fperez@colorado.edu>
2477 2005-04-06 Fernando Perez <fperez@colorado.edu>
2475
2478
2476 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2479 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2477 by default, so that all users benefit from it. Those who don't
2480 by default, so that all users benefit from it. Those who don't
2478 want it can still turn it off.
2481 want it can still turn it off.
2479
2482
2480 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2483 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2481 config file, I'd forgotten about this, so users were getting it
2484 config file, I'd forgotten about this, so users were getting it
2482 off by default.
2485 off by default.
2483
2486
2484 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2487 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2485 consistency. Now magics can be called in multiline statements,
2488 consistency. Now magics can be called in multiline statements,
2486 and python variables can be expanded in magic calls via $var.
2489 and python variables can be expanded in magic calls via $var.
2487 This makes the magic system behave just like aliases or !system
2490 This makes the magic system behave just like aliases or !system
2488 calls.
2491 calls.
2489
2492
2490 2005-03-28 Fernando Perez <fperez@colorado.edu>
2493 2005-03-28 Fernando Perez <fperez@colorado.edu>
2491
2494
2492 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2495 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2493 expensive string additions for building command. Add support for
2496 expensive string additions for building command. Add support for
2494 trailing ';' when autocall is used.
2497 trailing ';' when autocall is used.
2495
2498
2496 2005-03-26 Fernando Perez <fperez@colorado.edu>
2499 2005-03-26 Fernando Perez <fperez@colorado.edu>
2497
2500
2498 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2501 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2499 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2502 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2500 ipython.el robust against prompts with any number of spaces
2503 ipython.el robust against prompts with any number of spaces
2501 (including 0) after the ':' character.
2504 (including 0) after the ':' character.
2502
2505
2503 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2506 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2504 continuation prompt, which misled users to think the line was
2507 continuation prompt, which misled users to think the line was
2505 already indented. Closes debian Bug#300847, reported to me by
2508 already indented. Closes debian Bug#300847, reported to me by
2506 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2509 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2507
2510
2508 2005-03-23 Fernando Perez <fperez@colorado.edu>
2511 2005-03-23 Fernando Perez <fperez@colorado.edu>
2509
2512
2510 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2513 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2511 properly aligned if they have embedded newlines.
2514 properly aligned if they have embedded newlines.
2512
2515
2513 * IPython/iplib.py (runlines): Add a public method to expose
2516 * IPython/iplib.py (runlines): Add a public method to expose
2514 IPython's code execution machinery, so that users can run strings
2517 IPython's code execution machinery, so that users can run strings
2515 as if they had been typed at the prompt interactively.
2518 as if they had been typed at the prompt interactively.
2516 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2519 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2517 methods which can call the system shell, but with python variable
2520 methods which can call the system shell, but with python variable
2518 expansion. The three such methods are: __IPYTHON__.system,
2521 expansion. The three such methods are: __IPYTHON__.system,
2519 .getoutput and .getoutputerror. These need to be documented in a
2522 .getoutput and .getoutputerror. These need to be documented in a
2520 'public API' section (to be written) of the manual.
2523 'public API' section (to be written) of the manual.
2521
2524
2522 2005-03-20 Fernando Perez <fperez@colorado.edu>
2525 2005-03-20 Fernando Perez <fperez@colorado.edu>
2523
2526
2524 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2527 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2525 for custom exception handling. This is quite powerful, and it
2528 for custom exception handling. This is quite powerful, and it
2526 allows for user-installable exception handlers which can trap
2529 allows for user-installable exception handlers which can trap
2527 custom exceptions at runtime and treat them separately from
2530 custom exceptions at runtime and treat them separately from
2528 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2531 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2529 Mantegazza <mantegazza-AT-ill.fr>.
2532 Mantegazza <mantegazza-AT-ill.fr>.
2530 (InteractiveShell.set_custom_completer): public API function to
2533 (InteractiveShell.set_custom_completer): public API function to
2531 add new completers at runtime.
2534 add new completers at runtime.
2532
2535
2533 2005-03-19 Fernando Perez <fperez@colorado.edu>
2536 2005-03-19 Fernando Perez <fperez@colorado.edu>
2534
2537
2535 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2538 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2536 allow objects which provide their docstrings via non-standard
2539 allow objects which provide their docstrings via non-standard
2537 mechanisms (like Pyro proxies) to still be inspected by ipython's
2540 mechanisms (like Pyro proxies) to still be inspected by ipython's
2538 ? system.
2541 ? system.
2539
2542
2540 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2543 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2541 automatic capture system. I tried quite hard to make it work
2544 automatic capture system. I tried quite hard to make it work
2542 reliably, and simply failed. I tried many combinations with the
2545 reliably, and simply failed. I tried many combinations with the
2543 subprocess module, but eventually nothing worked in all needed
2546 subprocess module, but eventually nothing worked in all needed
2544 cases (not blocking stdin for the child, duplicating stdout
2547 cases (not blocking stdin for the child, duplicating stdout
2545 without blocking, etc). The new %sc/%sx still do capture to these
2548 without blocking, etc). The new %sc/%sx still do capture to these
2546 magical list/string objects which make shell use much more
2549 magical list/string objects which make shell use much more
2547 conveninent, so not all is lost.
2550 conveninent, so not all is lost.
2548
2551
2549 XXX - FIX MANUAL for the change above!
2552 XXX - FIX MANUAL for the change above!
2550
2553
2551 (runsource): I copied code.py's runsource() into ipython to modify
2554 (runsource): I copied code.py's runsource() into ipython to modify
2552 it a bit. Now the code object and source to be executed are
2555 it a bit. Now the code object and source to be executed are
2553 stored in ipython. This makes this info accessible to third-party
2556 stored in ipython. This makes this info accessible to third-party
2554 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2557 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2555 Mantegazza <mantegazza-AT-ill.fr>.
2558 Mantegazza <mantegazza-AT-ill.fr>.
2556
2559
2557 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2560 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2558 history-search via readline (like C-p/C-n). I'd wanted this for a
2561 history-search via readline (like C-p/C-n). I'd wanted this for a
2559 long time, but only recently found out how to do it. For users
2562 long time, but only recently found out how to do it. For users
2560 who already have their ipythonrc files made and want this, just
2563 who already have their ipythonrc files made and want this, just
2561 add:
2564 add:
2562
2565
2563 readline_parse_and_bind "\e[A": history-search-backward
2566 readline_parse_and_bind "\e[A": history-search-backward
2564 readline_parse_and_bind "\e[B": history-search-forward
2567 readline_parse_and_bind "\e[B": history-search-forward
2565
2568
2566 2005-03-18 Fernando Perez <fperez@colorado.edu>
2569 2005-03-18 Fernando Perez <fperez@colorado.edu>
2567
2570
2568 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2571 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2569 LSString and SList classes which allow transparent conversions
2572 LSString and SList classes which allow transparent conversions
2570 between list mode and whitespace-separated string.
2573 between list mode and whitespace-separated string.
2571 (magic_r): Fix recursion problem in %r.
2574 (magic_r): Fix recursion problem in %r.
2572
2575
2573 * IPython/genutils.py (LSString): New class to be used for
2576 * IPython/genutils.py (LSString): New class to be used for
2574 automatic storage of the results of all alias/system calls in _o
2577 automatic storage of the results of all alias/system calls in _o
2575 and _e (stdout/err). These provide a .l/.list attribute which
2578 and _e (stdout/err). These provide a .l/.list attribute which
2576 does automatic splitting on newlines. This means that for most
2579 does automatic splitting on newlines. This means that for most
2577 uses, you'll never need to do capturing of output with %sc/%sx
2580 uses, you'll never need to do capturing of output with %sc/%sx
2578 anymore, since ipython keeps this always done for you. Note that
2581 anymore, since ipython keeps this always done for you. Note that
2579 only the LAST results are stored, the _o/e variables are
2582 only the LAST results are stored, the _o/e variables are
2580 overwritten on each call. If you need to save their contents
2583 overwritten on each call. If you need to save their contents
2581 further, simply bind them to any other name.
2584 further, simply bind them to any other name.
2582
2585
2583 2005-03-17 Fernando Perez <fperez@colorado.edu>
2586 2005-03-17 Fernando Perez <fperez@colorado.edu>
2584
2587
2585 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2588 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2586 prompt namespace handling.
2589 prompt namespace handling.
2587
2590
2588 2005-03-16 Fernando Perez <fperez@colorado.edu>
2591 2005-03-16 Fernando Perez <fperez@colorado.edu>
2589
2592
2590 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2593 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2591 classic prompts to be '>>> ' (final space was missing, and it
2594 classic prompts to be '>>> ' (final space was missing, and it
2592 trips the emacs python mode).
2595 trips the emacs python mode).
2593 (BasePrompt.__str__): Added safe support for dynamic prompt
2596 (BasePrompt.__str__): Added safe support for dynamic prompt
2594 strings. Now you can set your prompt string to be '$x', and the
2597 strings. Now you can set your prompt string to be '$x', and the
2595 value of x will be printed from your interactive namespace. The
2598 value of x will be printed from your interactive namespace. The
2596 interpolation syntax includes the full Itpl support, so
2599 interpolation syntax includes the full Itpl support, so
2597 ${foo()+x+bar()} is a valid prompt string now, and the function
2600 ${foo()+x+bar()} is a valid prompt string now, and the function
2598 calls will be made at runtime.
2601 calls will be made at runtime.
2599
2602
2600 2005-03-15 Fernando Perez <fperez@colorado.edu>
2603 2005-03-15 Fernando Perez <fperez@colorado.edu>
2601
2604
2602 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2605 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2603 avoid name clashes in pylab. %hist still works, it just forwards
2606 avoid name clashes in pylab. %hist still works, it just forwards
2604 the call to %history.
2607 the call to %history.
2605
2608
2606 2005-03-02 *** Released version 0.6.12
2609 2005-03-02 *** Released version 0.6.12
2607
2610
2608 2005-03-02 Fernando Perez <fperez@colorado.edu>
2611 2005-03-02 Fernando Perez <fperez@colorado.edu>
2609
2612
2610 * IPython/iplib.py (handle_magic): log magic calls properly as
2613 * IPython/iplib.py (handle_magic): log magic calls properly as
2611 ipmagic() function calls.
2614 ipmagic() function calls.
2612
2615
2613 * IPython/Magic.py (magic_time): Improved %time to support
2616 * IPython/Magic.py (magic_time): Improved %time to support
2614 statements and provide wall-clock as well as CPU time.
2617 statements and provide wall-clock as well as CPU time.
2615
2618
2616 2005-02-27 Fernando Perez <fperez@colorado.edu>
2619 2005-02-27 Fernando Perez <fperez@colorado.edu>
2617
2620
2618 * IPython/hooks.py: New hooks module, to expose user-modifiable
2621 * IPython/hooks.py: New hooks module, to expose user-modifiable
2619 IPython functionality in a clean manner. For now only the editor
2622 IPython functionality in a clean manner. For now only the editor
2620 hook is actually written, and other thigns which I intend to turn
2623 hook is actually written, and other thigns which I intend to turn
2621 into proper hooks aren't yet there. The display and prefilter
2624 into proper hooks aren't yet there. The display and prefilter
2622 stuff, for example, should be hooks. But at least now the
2625 stuff, for example, should be hooks. But at least now the
2623 framework is in place, and the rest can be moved here with more
2626 framework is in place, and the rest can be moved here with more
2624 time later. IPython had had a .hooks variable for a long time for
2627 time later. IPython had had a .hooks variable for a long time for
2625 this purpose, but I'd never actually used it for anything.
2628 this purpose, but I'd never actually used it for anything.
2626
2629
2627 2005-02-26 Fernando Perez <fperez@colorado.edu>
2630 2005-02-26 Fernando Perez <fperez@colorado.edu>
2628
2631
2629 * IPython/ipmaker.py (make_IPython): make the default ipython
2632 * IPython/ipmaker.py (make_IPython): make the default ipython
2630 directory be called _ipython under win32, to follow more the
2633 directory be called _ipython under win32, to follow more the
2631 naming peculiarities of that platform (where buggy software like
2634 naming peculiarities of that platform (where buggy software like
2632 Visual Sourcesafe breaks with .named directories). Reported by
2635 Visual Sourcesafe breaks with .named directories). Reported by
2633 Ville Vainio.
2636 Ville Vainio.
2634
2637
2635 2005-02-23 Fernando Perez <fperez@colorado.edu>
2638 2005-02-23 Fernando Perez <fperez@colorado.edu>
2636
2639
2637 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2640 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2638 auto_aliases for win32 which were causing problems. Users can
2641 auto_aliases for win32 which were causing problems. Users can
2639 define the ones they personally like.
2642 define the ones they personally like.
2640
2643
2641 2005-02-21 Fernando Perez <fperez@colorado.edu>
2644 2005-02-21 Fernando Perez <fperez@colorado.edu>
2642
2645
2643 * IPython/Magic.py (magic_time): new magic to time execution of
2646 * IPython/Magic.py (magic_time): new magic to time execution of
2644 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2647 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2645
2648
2646 2005-02-19 Fernando Perez <fperez@colorado.edu>
2649 2005-02-19 Fernando Perez <fperez@colorado.edu>
2647
2650
2648 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2651 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2649 into keys (for prompts, for example).
2652 into keys (for prompts, for example).
2650
2653
2651 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2654 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2652 prompts in case users want them. This introduces a small behavior
2655 prompts in case users want them. This introduces a small behavior
2653 change: ipython does not automatically add a space to all prompts
2656 change: ipython does not automatically add a space to all prompts
2654 anymore. To get the old prompts with a space, users should add it
2657 anymore. To get the old prompts with a space, users should add it
2655 manually to their ipythonrc file, so for example prompt_in1 should
2658 manually to their ipythonrc file, so for example prompt_in1 should
2656 now read 'In [\#]: ' instead of 'In [\#]:'.
2659 now read 'In [\#]: ' instead of 'In [\#]:'.
2657 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2660 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2658 file) to control left-padding of secondary prompts.
2661 file) to control left-padding of secondary prompts.
2659
2662
2660 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2663 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2661 the profiler can't be imported. Fix for Debian, which removed
2664 the profiler can't be imported. Fix for Debian, which removed
2662 profile.py because of License issues. I applied a slightly
2665 profile.py because of License issues. I applied a slightly
2663 modified version of the original Debian patch at
2666 modified version of the original Debian patch at
2664 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2667 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2665
2668
2666 2005-02-17 Fernando Perez <fperez@colorado.edu>
2669 2005-02-17 Fernando Perez <fperez@colorado.edu>
2667
2670
2668 * IPython/genutils.py (native_line_ends): Fix bug which would
2671 * IPython/genutils.py (native_line_ends): Fix bug which would
2669 cause improper line-ends under win32 b/c I was not opening files
2672 cause improper line-ends under win32 b/c I was not opening files
2670 in binary mode. Bug report and fix thanks to Ville.
2673 in binary mode. Bug report and fix thanks to Ville.
2671
2674
2672 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2675 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2673 trying to catch spurious foo[1] autocalls. My fix actually broke
2676 trying to catch spurious foo[1] autocalls. My fix actually broke
2674 ',/' autoquote/call with explicit escape (bad regexp).
2677 ',/' autoquote/call with explicit escape (bad regexp).
2675
2678
2676 2005-02-15 *** Released version 0.6.11
2679 2005-02-15 *** Released version 0.6.11
2677
2680
2678 2005-02-14 Fernando Perez <fperez@colorado.edu>
2681 2005-02-14 Fernando Perez <fperez@colorado.edu>
2679
2682
2680 * IPython/background_jobs.py: New background job management
2683 * IPython/background_jobs.py: New background job management
2681 subsystem. This is implemented via a new set of classes, and
2684 subsystem. This is implemented via a new set of classes, and
2682 IPython now provides a builtin 'jobs' object for background job
2685 IPython now provides a builtin 'jobs' object for background job
2683 execution. A convenience %bg magic serves as a lightweight
2686 execution. A convenience %bg magic serves as a lightweight
2684 frontend for starting the more common type of calls. This was
2687 frontend for starting the more common type of calls. This was
2685 inspired by discussions with B. Granger and the BackgroundCommand
2688 inspired by discussions with B. Granger and the BackgroundCommand
2686 class described in the book Python Scripting for Computational
2689 class described in the book Python Scripting for Computational
2687 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2690 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2688 (although ultimately no code from this text was used, as IPython's
2691 (although ultimately no code from this text was used, as IPython's
2689 system is a separate implementation).
2692 system is a separate implementation).
2690
2693
2691 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2694 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2692 to control the completion of single/double underscore names
2695 to control the completion of single/double underscore names
2693 separately. As documented in the example ipytonrc file, the
2696 separately. As documented in the example ipytonrc file, the
2694 readline_omit__names variable can now be set to 2, to omit even
2697 readline_omit__names variable can now be set to 2, to omit even
2695 single underscore names. Thanks to a patch by Brian Wong
2698 single underscore names. Thanks to a patch by Brian Wong
2696 <BrianWong-AT-AirgoNetworks.Com>.
2699 <BrianWong-AT-AirgoNetworks.Com>.
2697 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2700 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2698 be autocalled as foo([1]) if foo were callable. A problem for
2701 be autocalled as foo([1]) if foo were callable. A problem for
2699 things which are both callable and implement __getitem__.
2702 things which are both callable and implement __getitem__.
2700 (init_readline): Fix autoindentation for win32. Thanks to a patch
2703 (init_readline): Fix autoindentation for win32. Thanks to a patch
2701 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2704 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2702
2705
2703 2005-02-12 Fernando Perez <fperez@colorado.edu>
2706 2005-02-12 Fernando Perez <fperez@colorado.edu>
2704
2707
2705 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2708 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2706 which I had written long ago to sort out user error messages which
2709 which I had written long ago to sort out user error messages which
2707 may occur during startup. This seemed like a good idea initially,
2710 may occur during startup. This seemed like a good idea initially,
2708 but it has proven a disaster in retrospect. I don't want to
2711 but it has proven a disaster in retrospect. I don't want to
2709 change much code for now, so my fix is to set the internal 'debug'
2712 change much code for now, so my fix is to set the internal 'debug'
2710 flag to true everywhere, whose only job was precisely to control
2713 flag to true everywhere, whose only job was precisely to control
2711 this subsystem. This closes issue 28 (as well as avoiding all
2714 this subsystem. This closes issue 28 (as well as avoiding all
2712 sorts of strange hangups which occur from time to time).
2715 sorts of strange hangups which occur from time to time).
2713
2716
2714 2005-02-07 Fernando Perez <fperez@colorado.edu>
2717 2005-02-07 Fernando Perez <fperez@colorado.edu>
2715
2718
2716 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2719 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2717 previous call produced a syntax error.
2720 previous call produced a syntax error.
2718
2721
2719 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2722 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2720 classes without constructor.
2723 classes without constructor.
2721
2724
2722 2005-02-06 Fernando Perez <fperez@colorado.edu>
2725 2005-02-06 Fernando Perez <fperez@colorado.edu>
2723
2726
2724 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2727 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2725 completions with the results of each matcher, so we return results
2728 completions with the results of each matcher, so we return results
2726 to the user from all namespaces. This breaks with ipython
2729 to the user from all namespaces. This breaks with ipython
2727 tradition, but I think it's a nicer behavior. Now you get all
2730 tradition, but I think it's a nicer behavior. Now you get all
2728 possible completions listed, from all possible namespaces (python,
2731 possible completions listed, from all possible namespaces (python,
2729 filesystem, magics...) After a request by John Hunter
2732 filesystem, magics...) After a request by John Hunter
2730 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2733 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2731
2734
2732 2005-02-05 Fernando Perez <fperez@colorado.edu>
2735 2005-02-05 Fernando Perez <fperez@colorado.edu>
2733
2736
2734 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2737 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2735 the call had quote characters in it (the quotes were stripped).
2738 the call had quote characters in it (the quotes were stripped).
2736
2739
2737 2005-01-31 Fernando Perez <fperez@colorado.edu>
2740 2005-01-31 Fernando Perez <fperez@colorado.edu>
2738
2741
2739 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2742 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2740 Itpl.itpl() to make the code more robust against psyco
2743 Itpl.itpl() to make the code more robust against psyco
2741 optimizations.
2744 optimizations.
2742
2745
2743 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2746 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2744 of causing an exception. Quicker, cleaner.
2747 of causing an exception. Quicker, cleaner.
2745
2748
2746 2005-01-28 Fernando Perez <fperez@colorado.edu>
2749 2005-01-28 Fernando Perez <fperez@colorado.edu>
2747
2750
2748 * scripts/ipython_win_post_install.py (install): hardcode
2751 * scripts/ipython_win_post_install.py (install): hardcode
2749 sys.prefix+'python.exe' as the executable path. It turns out that
2752 sys.prefix+'python.exe' as the executable path. It turns out that
2750 during the post-installation run, sys.executable resolves to the
2753 during the post-installation run, sys.executable resolves to the
2751 name of the binary installer! I should report this as a distutils
2754 name of the binary installer! I should report this as a distutils
2752 bug, I think. I updated the .10 release with this tiny fix, to
2755 bug, I think. I updated the .10 release with this tiny fix, to
2753 avoid annoying the lists further.
2756 avoid annoying the lists further.
2754
2757
2755 2005-01-27 *** Released version 0.6.10
2758 2005-01-27 *** Released version 0.6.10
2756
2759
2757 2005-01-27 Fernando Perez <fperez@colorado.edu>
2760 2005-01-27 Fernando Perez <fperez@colorado.edu>
2758
2761
2759 * IPython/numutils.py (norm): Added 'inf' as optional name for
2762 * IPython/numutils.py (norm): Added 'inf' as optional name for
2760 L-infinity norm, included references to mathworld.com for vector
2763 L-infinity norm, included references to mathworld.com for vector
2761 norm definitions.
2764 norm definitions.
2762 (amin/amax): added amin/amax for array min/max. Similar to what
2765 (amin/amax): added amin/amax for array min/max. Similar to what
2763 pylab ships with after the recent reorganization of names.
2766 pylab ships with after the recent reorganization of names.
2764 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2767 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2765
2768
2766 * ipython.el: committed Alex's recent fixes and improvements.
2769 * ipython.el: committed Alex's recent fixes and improvements.
2767 Tested with python-mode from CVS, and it looks excellent. Since
2770 Tested with python-mode from CVS, and it looks excellent. Since
2768 python-mode hasn't released anything in a while, I'm temporarily
2771 python-mode hasn't released anything in a while, I'm temporarily
2769 putting a copy of today's CVS (v 4.70) of python-mode in:
2772 putting a copy of today's CVS (v 4.70) of python-mode in:
2770 http://ipython.scipy.org/tmp/python-mode.el
2773 http://ipython.scipy.org/tmp/python-mode.el
2771
2774
2772 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2775 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2773 sys.executable for the executable name, instead of assuming it's
2776 sys.executable for the executable name, instead of assuming it's
2774 called 'python.exe' (the post-installer would have produced broken
2777 called 'python.exe' (the post-installer would have produced broken
2775 setups on systems with a differently named python binary).
2778 setups on systems with a differently named python binary).
2776
2779
2777 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2780 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2778 references to os.linesep, to make the code more
2781 references to os.linesep, to make the code more
2779 platform-independent. This is also part of the win32 coloring
2782 platform-independent. This is also part of the win32 coloring
2780 fixes.
2783 fixes.
2781
2784
2782 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2785 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2783 lines, which actually cause coloring bugs because the length of
2786 lines, which actually cause coloring bugs because the length of
2784 the line is very difficult to correctly compute with embedded
2787 the line is very difficult to correctly compute with embedded
2785 escapes. This was the source of all the coloring problems under
2788 escapes. This was the source of all the coloring problems under
2786 Win32. I think that _finally_, Win32 users have a properly
2789 Win32. I think that _finally_, Win32 users have a properly
2787 working ipython in all respects. This would never have happened
2790 working ipython in all respects. This would never have happened
2788 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2791 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2789
2792
2790 2005-01-26 *** Released version 0.6.9
2793 2005-01-26 *** Released version 0.6.9
2791
2794
2792 2005-01-25 Fernando Perez <fperez@colorado.edu>
2795 2005-01-25 Fernando Perez <fperez@colorado.edu>
2793
2796
2794 * setup.py: finally, we have a true Windows installer, thanks to
2797 * setup.py: finally, we have a true Windows installer, thanks to
2795 the excellent work of Viktor Ransmayr
2798 the excellent work of Viktor Ransmayr
2796 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2799 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2797 Windows users. The setup routine is quite a bit cleaner thanks to
2800 Windows users. The setup routine is quite a bit cleaner thanks to
2798 this, and the post-install script uses the proper functions to
2801 this, and the post-install script uses the proper functions to
2799 allow a clean de-installation using the standard Windows Control
2802 allow a clean de-installation using the standard Windows Control
2800 Panel.
2803 Panel.
2801
2804
2802 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2805 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2803 environment variable under all OSes (including win32) if
2806 environment variable under all OSes (including win32) if
2804 available. This will give consistency to win32 users who have set
2807 available. This will give consistency to win32 users who have set
2805 this variable for any reason. If os.environ['HOME'] fails, the
2808 this variable for any reason. If os.environ['HOME'] fails, the
2806 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2809 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2807
2810
2808 2005-01-24 Fernando Perez <fperez@colorado.edu>
2811 2005-01-24 Fernando Perez <fperez@colorado.edu>
2809
2812
2810 * IPython/numutils.py (empty_like): add empty_like(), similar to
2813 * IPython/numutils.py (empty_like): add empty_like(), similar to
2811 zeros_like() but taking advantage of the new empty() Numeric routine.
2814 zeros_like() but taking advantage of the new empty() Numeric routine.
2812
2815
2813 2005-01-23 *** Released version 0.6.8
2816 2005-01-23 *** Released version 0.6.8
2814
2817
2815 2005-01-22 Fernando Perez <fperez@colorado.edu>
2818 2005-01-22 Fernando Perez <fperez@colorado.edu>
2816
2819
2817 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2820 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2818 automatic show() calls. After discussing things with JDH, it
2821 automatic show() calls. After discussing things with JDH, it
2819 turns out there are too many corner cases where this can go wrong.
2822 turns out there are too many corner cases where this can go wrong.
2820 It's best not to try to be 'too smart', and simply have ipython
2823 It's best not to try to be 'too smart', and simply have ipython
2821 reproduce as much as possible the default behavior of a normal
2824 reproduce as much as possible the default behavior of a normal
2822 python shell.
2825 python shell.
2823
2826
2824 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2827 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2825 line-splitting regexp and _prefilter() to avoid calling getattr()
2828 line-splitting regexp and _prefilter() to avoid calling getattr()
2826 on assignments. This closes
2829 on assignments. This closes
2827 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2830 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2828 readline uses getattr(), so a simple <TAB> keypress is still
2831 readline uses getattr(), so a simple <TAB> keypress is still
2829 enough to trigger getattr() calls on an object.
2832 enough to trigger getattr() calls on an object.
2830
2833
2831 2005-01-21 Fernando Perez <fperez@colorado.edu>
2834 2005-01-21 Fernando Perez <fperez@colorado.edu>
2832
2835
2833 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2836 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2834 docstring under pylab so it doesn't mask the original.
2837 docstring under pylab so it doesn't mask the original.
2835
2838
2836 2005-01-21 *** Released version 0.6.7
2839 2005-01-21 *** Released version 0.6.7
2837
2840
2838 2005-01-21 Fernando Perez <fperez@colorado.edu>
2841 2005-01-21 Fernando Perez <fperez@colorado.edu>
2839
2842
2840 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2843 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2841 signal handling for win32 users in multithreaded mode.
2844 signal handling for win32 users in multithreaded mode.
2842
2845
2843 2005-01-17 Fernando Perez <fperez@colorado.edu>
2846 2005-01-17 Fernando Perez <fperez@colorado.edu>
2844
2847
2845 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2848 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2846 instances with no __init__. After a crash report by Norbert Nemec
2849 instances with no __init__. After a crash report by Norbert Nemec
2847 <Norbert-AT-nemec-online.de>.
2850 <Norbert-AT-nemec-online.de>.
2848
2851
2849 2005-01-14 Fernando Perez <fperez@colorado.edu>
2852 2005-01-14 Fernando Perez <fperez@colorado.edu>
2850
2853
2851 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2854 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2852 names for verbose exceptions, when multiple dotted names and the
2855 names for verbose exceptions, when multiple dotted names and the
2853 'parent' object were present on the same line.
2856 'parent' object were present on the same line.
2854
2857
2855 2005-01-11 Fernando Perez <fperez@colorado.edu>
2858 2005-01-11 Fernando Perez <fperez@colorado.edu>
2856
2859
2857 * IPython/genutils.py (flag_calls): new utility to trap and flag
2860 * IPython/genutils.py (flag_calls): new utility to trap and flag
2858 calls in functions. I need it to clean up matplotlib support.
2861 calls in functions. I need it to clean up matplotlib support.
2859 Also removed some deprecated code in genutils.
2862 Also removed some deprecated code in genutils.
2860
2863
2861 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2864 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2862 that matplotlib scripts called with %run, which don't call show()
2865 that matplotlib scripts called with %run, which don't call show()
2863 themselves, still have their plotting windows open.
2866 themselves, still have their plotting windows open.
2864
2867
2865 2005-01-05 Fernando Perez <fperez@colorado.edu>
2868 2005-01-05 Fernando Perez <fperez@colorado.edu>
2866
2869
2867 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2870 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2868 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2871 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2869
2872
2870 2004-12-19 Fernando Perez <fperez@colorado.edu>
2873 2004-12-19 Fernando Perez <fperez@colorado.edu>
2871
2874
2872 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2875 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2873 parent_runcode, which was an eyesore. The same result can be
2876 parent_runcode, which was an eyesore. The same result can be
2874 obtained with Python's regular superclass mechanisms.
2877 obtained with Python's regular superclass mechanisms.
2875
2878
2876 2004-12-17 Fernando Perez <fperez@colorado.edu>
2879 2004-12-17 Fernando Perez <fperez@colorado.edu>
2877
2880
2878 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2881 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2879 reported by Prabhu.
2882 reported by Prabhu.
2880 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2883 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2881 sys.stderr) instead of explicitly calling sys.stderr. This helps
2884 sys.stderr) instead of explicitly calling sys.stderr. This helps
2882 maintain our I/O abstractions clean, for future GUI embeddings.
2885 maintain our I/O abstractions clean, for future GUI embeddings.
2883
2886
2884 * IPython/genutils.py (info): added new utility for sys.stderr
2887 * IPython/genutils.py (info): added new utility for sys.stderr
2885 unified info message handling (thin wrapper around warn()).
2888 unified info message handling (thin wrapper around warn()).
2886
2889
2887 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2890 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2888 composite (dotted) names on verbose exceptions.
2891 composite (dotted) names on verbose exceptions.
2889 (VerboseTB.nullrepr): harden against another kind of errors which
2892 (VerboseTB.nullrepr): harden against another kind of errors which
2890 Python's inspect module can trigger, and which were crashing
2893 Python's inspect module can trigger, and which were crashing
2891 IPython. Thanks to a report by Marco Lombardi
2894 IPython. Thanks to a report by Marco Lombardi
2892 <mlombard-AT-ma010192.hq.eso.org>.
2895 <mlombard-AT-ma010192.hq.eso.org>.
2893
2896
2894 2004-12-13 *** Released version 0.6.6
2897 2004-12-13 *** Released version 0.6.6
2895
2898
2896 2004-12-12 Fernando Perez <fperez@colorado.edu>
2899 2004-12-12 Fernando Perez <fperez@colorado.edu>
2897
2900
2898 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2901 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2899 generated by pygtk upon initialization if it was built without
2902 generated by pygtk upon initialization if it was built without
2900 threads (for matplotlib users). After a crash reported by
2903 threads (for matplotlib users). After a crash reported by
2901 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2904 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2902
2905
2903 * IPython/ipmaker.py (make_IPython): fix small bug in the
2906 * IPython/ipmaker.py (make_IPython): fix small bug in the
2904 import_some parameter for multiple imports.
2907 import_some parameter for multiple imports.
2905
2908
2906 * IPython/iplib.py (ipmagic): simplified the interface of
2909 * IPython/iplib.py (ipmagic): simplified the interface of
2907 ipmagic() to take a single string argument, just as it would be
2910 ipmagic() to take a single string argument, just as it would be
2908 typed at the IPython cmd line.
2911 typed at the IPython cmd line.
2909 (ipalias): Added new ipalias() with an interface identical to
2912 (ipalias): Added new ipalias() with an interface identical to
2910 ipmagic(). This completes exposing a pure python interface to the
2913 ipmagic(). This completes exposing a pure python interface to the
2911 alias and magic system, which can be used in loops or more complex
2914 alias and magic system, which can be used in loops or more complex
2912 code where IPython's automatic line mangling is not active.
2915 code where IPython's automatic line mangling is not active.
2913
2916
2914 * IPython/genutils.py (timing): changed interface of timing to
2917 * IPython/genutils.py (timing): changed interface of timing to
2915 simply run code once, which is the most common case. timings()
2918 simply run code once, which is the most common case. timings()
2916 remains unchanged, for the cases where you want multiple runs.
2919 remains unchanged, for the cases where you want multiple runs.
2917
2920
2918 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2921 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2919 bug where Python2.2 crashes with exec'ing code which does not end
2922 bug where Python2.2 crashes with exec'ing code which does not end
2920 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2923 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2921 before.
2924 before.
2922
2925
2923 2004-12-10 Fernando Perez <fperez@colorado.edu>
2926 2004-12-10 Fernando Perez <fperez@colorado.edu>
2924
2927
2925 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2928 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2926 -t to -T, to accomodate the new -t flag in %run (the %run and
2929 -t to -T, to accomodate the new -t flag in %run (the %run and
2927 %prun options are kind of intermixed, and it's not easy to change
2930 %prun options are kind of intermixed, and it's not easy to change
2928 this with the limitations of python's getopt).
2931 this with the limitations of python's getopt).
2929
2932
2930 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2933 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2931 the execution of scripts. It's not as fine-tuned as timeit.py,
2934 the execution of scripts. It's not as fine-tuned as timeit.py,
2932 but it works from inside ipython (and under 2.2, which lacks
2935 but it works from inside ipython (and under 2.2, which lacks
2933 timeit.py). Optionally a number of runs > 1 can be given for
2936 timeit.py). Optionally a number of runs > 1 can be given for
2934 timing very short-running code.
2937 timing very short-running code.
2935
2938
2936 * IPython/genutils.py (uniq_stable): new routine which returns a
2939 * IPython/genutils.py (uniq_stable): new routine which returns a
2937 list of unique elements in any iterable, but in stable order of
2940 list of unique elements in any iterable, but in stable order of
2938 appearance. I needed this for the ultraTB fixes, and it's a handy
2941 appearance. I needed this for the ultraTB fixes, and it's a handy
2939 utility.
2942 utility.
2940
2943
2941 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2944 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2942 dotted names in Verbose exceptions. This had been broken since
2945 dotted names in Verbose exceptions. This had been broken since
2943 the very start, now x.y will properly be printed in a Verbose
2946 the very start, now x.y will properly be printed in a Verbose
2944 traceback, instead of x being shown and y appearing always as an
2947 traceback, instead of x being shown and y appearing always as an
2945 'undefined global'. Getting this to work was a bit tricky,
2948 'undefined global'. Getting this to work was a bit tricky,
2946 because by default python tokenizers are stateless. Saved by
2949 because by default python tokenizers are stateless. Saved by
2947 python's ability to easily add a bit of state to an arbitrary
2950 python's ability to easily add a bit of state to an arbitrary
2948 function (without needing to build a full-blown callable object).
2951 function (without needing to build a full-blown callable object).
2949
2952
2950 Also big cleanup of this code, which had horrendous runtime
2953 Also big cleanup of this code, which had horrendous runtime
2951 lookups of zillions of attributes for colorization. Moved all
2954 lookups of zillions of attributes for colorization. Moved all
2952 this code into a few templates, which make it cleaner and quicker.
2955 this code into a few templates, which make it cleaner and quicker.
2953
2956
2954 Printout quality was also improved for Verbose exceptions: one
2957 Printout quality was also improved for Verbose exceptions: one
2955 variable per line, and memory addresses are printed (this can be
2958 variable per line, and memory addresses are printed (this can be
2956 quite handy in nasty debugging situations, which is what Verbose
2959 quite handy in nasty debugging situations, which is what Verbose
2957 is for).
2960 is for).
2958
2961
2959 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2962 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2960 the command line as scripts to be loaded by embedded instances.
2963 the command line as scripts to be loaded by embedded instances.
2961 Doing so has the potential for an infinite recursion if there are
2964 Doing so has the potential for an infinite recursion if there are
2962 exceptions thrown in the process. This fixes a strange crash
2965 exceptions thrown in the process. This fixes a strange crash
2963 reported by Philippe MULLER <muller-AT-irit.fr>.
2966 reported by Philippe MULLER <muller-AT-irit.fr>.
2964
2967
2965 2004-12-09 Fernando Perez <fperez@colorado.edu>
2968 2004-12-09 Fernando Perez <fperez@colorado.edu>
2966
2969
2967 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2970 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2968 to reflect new names in matplotlib, which now expose the
2971 to reflect new names in matplotlib, which now expose the
2969 matlab-compatible interface via a pylab module instead of the
2972 matlab-compatible interface via a pylab module instead of the
2970 'matlab' name. The new code is backwards compatible, so users of
2973 'matlab' name. The new code is backwards compatible, so users of
2971 all matplotlib versions are OK. Patch by J. Hunter.
2974 all matplotlib versions are OK. Patch by J. Hunter.
2972
2975
2973 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2976 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2974 of __init__ docstrings for instances (class docstrings are already
2977 of __init__ docstrings for instances (class docstrings are already
2975 automatically printed). Instances with customized docstrings
2978 automatically printed). Instances with customized docstrings
2976 (indep. of the class) are also recognized and all 3 separate
2979 (indep. of the class) are also recognized and all 3 separate
2977 docstrings are printed (instance, class, constructor). After some
2980 docstrings are printed (instance, class, constructor). After some
2978 comments/suggestions by J. Hunter.
2981 comments/suggestions by J. Hunter.
2979
2982
2980 2004-12-05 Fernando Perez <fperez@colorado.edu>
2983 2004-12-05 Fernando Perez <fperez@colorado.edu>
2981
2984
2982 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2985 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2983 warnings when tab-completion fails and triggers an exception.
2986 warnings when tab-completion fails and triggers an exception.
2984
2987
2985 2004-12-03 Fernando Perez <fperez@colorado.edu>
2988 2004-12-03 Fernando Perez <fperez@colorado.edu>
2986
2989
2987 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2990 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2988 be triggered when using 'run -p'. An incorrect option flag was
2991 be triggered when using 'run -p'. An incorrect option flag was
2989 being set ('d' instead of 'D').
2992 being set ('d' instead of 'D').
2990 (manpage): fix missing escaped \- sign.
2993 (manpage): fix missing escaped \- sign.
2991
2994
2992 2004-11-30 *** Released version 0.6.5
2995 2004-11-30 *** Released version 0.6.5
2993
2996
2994 2004-11-30 Fernando Perez <fperez@colorado.edu>
2997 2004-11-30 Fernando Perez <fperez@colorado.edu>
2995
2998
2996 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2999 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2997 setting with -d option.
3000 setting with -d option.
2998
3001
2999 * setup.py (docfiles): Fix problem where the doc glob I was using
3002 * setup.py (docfiles): Fix problem where the doc glob I was using
3000 was COMPLETELY BROKEN. It was giving the right files by pure
3003 was COMPLETELY BROKEN. It was giving the right files by pure
3001 accident, but failed once I tried to include ipython.el. Note:
3004 accident, but failed once I tried to include ipython.el. Note:
3002 glob() does NOT allow you to do exclusion on multiple endings!
3005 glob() does NOT allow you to do exclusion on multiple endings!
3003
3006
3004 2004-11-29 Fernando Perez <fperez@colorado.edu>
3007 2004-11-29 Fernando Perez <fperez@colorado.edu>
3005
3008
3006 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3009 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3007 the manpage as the source. Better formatting & consistency.
3010 the manpage as the source. Better formatting & consistency.
3008
3011
3009 * IPython/Magic.py (magic_run): Added new -d option, to run
3012 * IPython/Magic.py (magic_run): Added new -d option, to run
3010 scripts under the control of the python pdb debugger. Note that
3013 scripts under the control of the python pdb debugger. Note that
3011 this required changing the %prun option -d to -D, to avoid a clash
3014 this required changing the %prun option -d to -D, to avoid a clash
3012 (since %run must pass options to %prun, and getopt is too dumb to
3015 (since %run must pass options to %prun, and getopt is too dumb to
3013 handle options with string values with embedded spaces). Thanks
3016 handle options with string values with embedded spaces). Thanks
3014 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3017 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3015 (magic_who_ls): added type matching to %who and %whos, so that one
3018 (magic_who_ls): added type matching to %who and %whos, so that one
3016 can filter their output to only include variables of certain
3019 can filter their output to only include variables of certain
3017 types. Another suggestion by Matthew.
3020 types. Another suggestion by Matthew.
3018 (magic_whos): Added memory summaries in kb and Mb for arrays.
3021 (magic_whos): Added memory summaries in kb and Mb for arrays.
3019 (magic_who): Improve formatting (break lines every 9 vars).
3022 (magic_who): Improve formatting (break lines every 9 vars).
3020
3023
3021 2004-11-28 Fernando Perez <fperez@colorado.edu>
3024 2004-11-28 Fernando Perez <fperez@colorado.edu>
3022
3025
3023 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3026 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3024 cache when empty lines were present.
3027 cache when empty lines were present.
3025
3028
3026 2004-11-24 Fernando Perez <fperez@colorado.edu>
3029 2004-11-24 Fernando Perez <fperez@colorado.edu>
3027
3030
3028 * IPython/usage.py (__doc__): document the re-activated threading
3031 * IPython/usage.py (__doc__): document the re-activated threading
3029 options for WX and GTK.
3032 options for WX and GTK.
3030
3033
3031 2004-11-23 Fernando Perez <fperez@colorado.edu>
3034 2004-11-23 Fernando Perez <fperez@colorado.edu>
3032
3035
3033 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3036 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3034 the -wthread and -gthread options, along with a new -tk one to try
3037 the -wthread and -gthread options, along with a new -tk one to try
3035 and coordinate Tk threading with wx/gtk. The tk support is very
3038 and coordinate Tk threading with wx/gtk. The tk support is very
3036 platform dependent, since it seems to require Tcl and Tk to be
3039 platform dependent, since it seems to require Tcl and Tk to be
3037 built with threads (Fedora1/2 appears NOT to have it, but in
3040 built with threads (Fedora1/2 appears NOT to have it, but in
3038 Prabhu's Debian boxes it works OK). But even with some Tk
3041 Prabhu's Debian boxes it works OK). But even with some Tk
3039 limitations, this is a great improvement.
3042 limitations, this is a great improvement.
3040
3043
3041 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3044 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3042 info in user prompts. Patch by Prabhu.
3045 info in user prompts. Patch by Prabhu.
3043
3046
3044 2004-11-18 Fernando Perez <fperez@colorado.edu>
3047 2004-11-18 Fernando Perez <fperez@colorado.edu>
3045
3048
3046 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3049 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3047 EOFErrors and bail, to avoid infinite loops if a non-terminating
3050 EOFErrors and bail, to avoid infinite loops if a non-terminating
3048 file is fed into ipython. Patch submitted in issue 19 by user,
3051 file is fed into ipython. Patch submitted in issue 19 by user,
3049 many thanks.
3052 many thanks.
3050
3053
3051 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3054 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3052 autoquote/parens in continuation prompts, which can cause lots of
3055 autoquote/parens in continuation prompts, which can cause lots of
3053 problems. Closes roundup issue 20.
3056 problems. Closes roundup issue 20.
3054
3057
3055 2004-11-17 Fernando Perez <fperez@colorado.edu>
3058 2004-11-17 Fernando Perez <fperez@colorado.edu>
3056
3059
3057 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3060 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3058 reported as debian bug #280505. I'm not sure my local changelog
3061 reported as debian bug #280505. I'm not sure my local changelog
3059 entry has the proper debian format (Jack?).
3062 entry has the proper debian format (Jack?).
3060
3063
3061 2004-11-08 *** Released version 0.6.4
3064 2004-11-08 *** Released version 0.6.4
3062
3065
3063 2004-11-08 Fernando Perez <fperez@colorado.edu>
3066 2004-11-08 Fernando Perez <fperez@colorado.edu>
3064
3067
3065 * IPython/iplib.py (init_readline): Fix exit message for Windows
3068 * IPython/iplib.py (init_readline): Fix exit message for Windows
3066 when readline is active. Thanks to a report by Eric Jones
3069 when readline is active. Thanks to a report by Eric Jones
3067 <eric-AT-enthought.com>.
3070 <eric-AT-enthought.com>.
3068
3071
3069 2004-11-07 Fernando Perez <fperez@colorado.edu>
3072 2004-11-07 Fernando Perez <fperez@colorado.edu>
3070
3073
3071 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3074 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3072 sometimes seen by win2k/cygwin users.
3075 sometimes seen by win2k/cygwin users.
3073
3076
3074 2004-11-06 Fernando Perez <fperez@colorado.edu>
3077 2004-11-06 Fernando Perez <fperez@colorado.edu>
3075
3078
3076 * IPython/iplib.py (interact): Change the handling of %Exit from
3079 * IPython/iplib.py (interact): Change the handling of %Exit from
3077 trying to propagate a SystemExit to an internal ipython flag.
3080 trying to propagate a SystemExit to an internal ipython flag.
3078 This is less elegant than using Python's exception mechanism, but
3081 This is less elegant than using Python's exception mechanism, but
3079 I can't get that to work reliably with threads, so under -pylab
3082 I can't get that to work reliably with threads, so under -pylab
3080 %Exit was hanging IPython. Cross-thread exception handling is
3083 %Exit was hanging IPython. Cross-thread exception handling is
3081 really a bitch. Thaks to a bug report by Stephen Walton
3084 really a bitch. Thaks to a bug report by Stephen Walton
3082 <stephen.walton-AT-csun.edu>.
3085 <stephen.walton-AT-csun.edu>.
3083
3086
3084 2004-11-04 Fernando Perez <fperez@colorado.edu>
3087 2004-11-04 Fernando Perez <fperez@colorado.edu>
3085
3088
3086 * IPython/iplib.py (raw_input_original): store a pointer to the
3089 * IPython/iplib.py (raw_input_original): store a pointer to the
3087 true raw_input to harden against code which can modify it
3090 true raw_input to harden against code which can modify it
3088 (wx.py.PyShell does this and would otherwise crash ipython).
3091 (wx.py.PyShell does this and would otherwise crash ipython).
3089 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3092 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3090
3093
3091 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3094 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3092 Ctrl-C problem, which does not mess up the input line.
3095 Ctrl-C problem, which does not mess up the input line.
3093
3096
3094 2004-11-03 Fernando Perez <fperez@colorado.edu>
3097 2004-11-03 Fernando Perez <fperez@colorado.edu>
3095
3098
3096 * IPython/Release.py: Changed licensing to BSD, in all files.
3099 * IPython/Release.py: Changed licensing to BSD, in all files.
3097 (name): lowercase name for tarball/RPM release.
3100 (name): lowercase name for tarball/RPM release.
3098
3101
3099 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3102 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3100 use throughout ipython.
3103 use throughout ipython.
3101
3104
3102 * IPython/Magic.py (Magic._ofind): Switch to using the new
3105 * IPython/Magic.py (Magic._ofind): Switch to using the new
3103 OInspect.getdoc() function.
3106 OInspect.getdoc() function.
3104
3107
3105 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3108 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3106 of the line currently being canceled via Ctrl-C. It's extremely
3109 of the line currently being canceled via Ctrl-C. It's extremely
3107 ugly, but I don't know how to do it better (the problem is one of
3110 ugly, but I don't know how to do it better (the problem is one of
3108 handling cross-thread exceptions).
3111 handling cross-thread exceptions).
3109
3112
3110 2004-10-28 Fernando Perez <fperez@colorado.edu>
3113 2004-10-28 Fernando Perez <fperez@colorado.edu>
3111
3114
3112 * IPython/Shell.py (signal_handler): add signal handlers to trap
3115 * IPython/Shell.py (signal_handler): add signal handlers to trap
3113 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3116 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3114 report by Francesc Alted.
3117 report by Francesc Alted.
3115
3118
3116 2004-10-21 Fernando Perez <fperez@colorado.edu>
3119 2004-10-21 Fernando Perez <fperez@colorado.edu>
3117
3120
3118 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3121 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3119 to % for pysh syntax extensions.
3122 to % for pysh syntax extensions.
3120
3123
3121 2004-10-09 Fernando Perez <fperez@colorado.edu>
3124 2004-10-09 Fernando Perez <fperez@colorado.edu>
3122
3125
3123 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3126 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3124 arrays to print a more useful summary, without calling str(arr).
3127 arrays to print a more useful summary, without calling str(arr).
3125 This avoids the problem of extremely lengthy computations which
3128 This avoids the problem of extremely lengthy computations which
3126 occur if arr is large, and appear to the user as a system lockup
3129 occur if arr is large, and appear to the user as a system lockup
3127 with 100% cpu activity. After a suggestion by Kristian Sandberg
3130 with 100% cpu activity. After a suggestion by Kristian Sandberg
3128 <Kristian.Sandberg@colorado.edu>.
3131 <Kristian.Sandberg@colorado.edu>.
3129 (Magic.__init__): fix bug in global magic escapes not being
3132 (Magic.__init__): fix bug in global magic escapes not being
3130 correctly set.
3133 correctly set.
3131
3134
3132 2004-10-08 Fernando Perez <fperez@colorado.edu>
3135 2004-10-08 Fernando Perez <fperez@colorado.edu>
3133
3136
3134 * IPython/Magic.py (__license__): change to absolute imports of
3137 * IPython/Magic.py (__license__): change to absolute imports of
3135 ipython's own internal packages, to start adapting to the absolute
3138 ipython's own internal packages, to start adapting to the absolute
3136 import requirement of PEP-328.
3139 import requirement of PEP-328.
3137
3140
3138 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3141 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3139 files, and standardize author/license marks through the Release
3142 files, and standardize author/license marks through the Release
3140 module instead of having per/file stuff (except for files with
3143 module instead of having per/file stuff (except for files with
3141 particular licenses, like the MIT/PSF-licensed codes).
3144 particular licenses, like the MIT/PSF-licensed codes).
3142
3145
3143 * IPython/Debugger.py: remove dead code for python 2.1
3146 * IPython/Debugger.py: remove dead code for python 2.1
3144
3147
3145 2004-10-04 Fernando Perez <fperez@colorado.edu>
3148 2004-10-04 Fernando Perez <fperez@colorado.edu>
3146
3149
3147 * IPython/iplib.py (ipmagic): New function for accessing magics
3150 * IPython/iplib.py (ipmagic): New function for accessing magics
3148 via a normal python function call.
3151 via a normal python function call.
3149
3152
3150 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3153 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3151 from '@' to '%', to accomodate the new @decorator syntax of python
3154 from '@' to '%', to accomodate the new @decorator syntax of python
3152 2.4.
3155 2.4.
3153
3156
3154 2004-09-29 Fernando Perez <fperez@colorado.edu>
3157 2004-09-29 Fernando Perez <fperez@colorado.edu>
3155
3158
3156 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3159 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3157 matplotlib.use to prevent running scripts which try to switch
3160 matplotlib.use to prevent running scripts which try to switch
3158 interactive backends from within ipython. This will just crash
3161 interactive backends from within ipython. This will just crash
3159 the python interpreter, so we can't allow it (but a detailed error
3162 the python interpreter, so we can't allow it (but a detailed error
3160 is given to the user).
3163 is given to the user).
3161
3164
3162 2004-09-28 Fernando Perez <fperez@colorado.edu>
3165 2004-09-28 Fernando Perez <fperez@colorado.edu>
3163
3166
3164 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3167 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3165 matplotlib-related fixes so that using @run with non-matplotlib
3168 matplotlib-related fixes so that using @run with non-matplotlib
3166 scripts doesn't pop up spurious plot windows. This requires
3169 scripts doesn't pop up spurious plot windows. This requires
3167 matplotlib >= 0.63, where I had to make some changes as well.
3170 matplotlib >= 0.63, where I had to make some changes as well.
3168
3171
3169 * IPython/ipmaker.py (make_IPython): update version requirement to
3172 * IPython/ipmaker.py (make_IPython): update version requirement to
3170 python 2.2.
3173 python 2.2.
3171
3174
3172 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3175 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3173 banner arg for embedded customization.
3176 banner arg for embedded customization.
3174
3177
3175 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3178 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3176 explicit uses of __IP as the IPython's instance name. Now things
3179 explicit uses of __IP as the IPython's instance name. Now things
3177 are properly handled via the shell.name value. The actual code
3180 are properly handled via the shell.name value. The actual code
3178 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3181 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3179 is much better than before. I'll clean things completely when the
3182 is much better than before. I'll clean things completely when the
3180 magic stuff gets a real overhaul.
3183 magic stuff gets a real overhaul.
3181
3184
3182 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3185 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3183 minor changes to debian dir.
3186 minor changes to debian dir.
3184
3187
3185 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3188 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3186 pointer to the shell itself in the interactive namespace even when
3189 pointer to the shell itself in the interactive namespace even when
3187 a user-supplied dict is provided. This is needed for embedding
3190 a user-supplied dict is provided. This is needed for embedding
3188 purposes (found by tests with Michel Sanner).
3191 purposes (found by tests with Michel Sanner).
3189
3192
3190 2004-09-27 Fernando Perez <fperez@colorado.edu>
3193 2004-09-27 Fernando Perez <fperez@colorado.edu>
3191
3194
3192 * IPython/UserConfig/ipythonrc: remove []{} from
3195 * IPython/UserConfig/ipythonrc: remove []{} from
3193 readline_remove_delims, so that things like [modname.<TAB> do
3196 readline_remove_delims, so that things like [modname.<TAB> do
3194 proper completion. This disables [].TAB, but that's a less common
3197 proper completion. This disables [].TAB, but that's a less common
3195 case than module names in list comprehensions, for example.
3198 case than module names in list comprehensions, for example.
3196 Thanks to a report by Andrea Riciputi.
3199 Thanks to a report by Andrea Riciputi.
3197
3200
3198 2004-09-09 Fernando Perez <fperez@colorado.edu>
3201 2004-09-09 Fernando Perez <fperez@colorado.edu>
3199
3202
3200 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3203 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3201 blocking problems in win32 and osx. Fix by John.
3204 blocking problems in win32 and osx. Fix by John.
3202
3205
3203 2004-09-08 Fernando Perez <fperez@colorado.edu>
3206 2004-09-08 Fernando Perez <fperez@colorado.edu>
3204
3207
3205 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3208 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3206 for Win32 and OSX. Fix by John Hunter.
3209 for Win32 and OSX. Fix by John Hunter.
3207
3210
3208 2004-08-30 *** Released version 0.6.3
3211 2004-08-30 *** Released version 0.6.3
3209
3212
3210 2004-08-30 Fernando Perez <fperez@colorado.edu>
3213 2004-08-30 Fernando Perez <fperez@colorado.edu>
3211
3214
3212 * setup.py (isfile): Add manpages to list of dependent files to be
3215 * setup.py (isfile): Add manpages to list of dependent files to be
3213 updated.
3216 updated.
3214
3217
3215 2004-08-27 Fernando Perez <fperez@colorado.edu>
3218 2004-08-27 Fernando Perez <fperez@colorado.edu>
3216
3219
3217 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3220 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3218 for now. They don't really work with standalone WX/GTK code
3221 for now. They don't really work with standalone WX/GTK code
3219 (though matplotlib IS working fine with both of those backends).
3222 (though matplotlib IS working fine with both of those backends).
3220 This will neeed much more testing. I disabled most things with
3223 This will neeed much more testing. I disabled most things with
3221 comments, so turning it back on later should be pretty easy.
3224 comments, so turning it back on later should be pretty easy.
3222
3225
3223 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3226 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3224 autocalling of expressions like r'foo', by modifying the line
3227 autocalling of expressions like r'foo', by modifying the line
3225 split regexp. Closes
3228 split regexp. Closes
3226 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3229 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3227 Riley <ipythonbugs-AT-sabi.net>.
3230 Riley <ipythonbugs-AT-sabi.net>.
3228 (InteractiveShell.mainloop): honor --nobanner with banner
3231 (InteractiveShell.mainloop): honor --nobanner with banner
3229 extensions.
3232 extensions.
3230
3233
3231 * IPython/Shell.py: Significant refactoring of all classes, so
3234 * IPython/Shell.py: Significant refactoring of all classes, so
3232 that we can really support ALL matplotlib backends and threading
3235 that we can really support ALL matplotlib backends and threading
3233 models (John spotted a bug with Tk which required this). Now we
3236 models (John spotted a bug with Tk which required this). Now we
3234 should support single-threaded, WX-threads and GTK-threads, both
3237 should support single-threaded, WX-threads and GTK-threads, both
3235 for generic code and for matplotlib.
3238 for generic code and for matplotlib.
3236
3239
3237 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3240 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3238 -pylab, to simplify things for users. Will also remove the pylab
3241 -pylab, to simplify things for users. Will also remove the pylab
3239 profile, since now all of matplotlib configuration is directly
3242 profile, since now all of matplotlib configuration is directly
3240 handled here. This also reduces startup time.
3243 handled here. This also reduces startup time.
3241
3244
3242 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3245 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3243 shell wasn't being correctly called. Also in IPShellWX.
3246 shell wasn't being correctly called. Also in IPShellWX.
3244
3247
3245 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3248 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3246 fine-tune banner.
3249 fine-tune banner.
3247
3250
3248 * IPython/numutils.py (spike): Deprecate these spike functions,
3251 * IPython/numutils.py (spike): Deprecate these spike functions,
3249 delete (long deprecated) gnuplot_exec handler.
3252 delete (long deprecated) gnuplot_exec handler.
3250
3253
3251 2004-08-26 Fernando Perez <fperez@colorado.edu>
3254 2004-08-26 Fernando Perez <fperez@colorado.edu>
3252
3255
3253 * ipython.1: Update for threading options, plus some others which
3256 * ipython.1: Update for threading options, plus some others which
3254 were missing.
3257 were missing.
3255
3258
3256 * IPython/ipmaker.py (__call__): Added -wthread option for
3259 * IPython/ipmaker.py (__call__): Added -wthread option for
3257 wxpython thread handling. Make sure threading options are only
3260 wxpython thread handling. Make sure threading options are only
3258 valid at the command line.
3261 valid at the command line.
3259
3262
3260 * scripts/ipython: moved shell selection into a factory function
3263 * scripts/ipython: moved shell selection into a factory function
3261 in Shell.py, to keep the starter script to a minimum.
3264 in Shell.py, to keep the starter script to a minimum.
3262
3265
3263 2004-08-25 Fernando Perez <fperez@colorado.edu>
3266 2004-08-25 Fernando Perez <fperez@colorado.edu>
3264
3267
3265 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3268 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3266 John. Along with some recent changes he made to matplotlib, the
3269 John. Along with some recent changes he made to matplotlib, the
3267 next versions of both systems should work very well together.
3270 next versions of both systems should work very well together.
3268
3271
3269 2004-08-24 Fernando Perez <fperez@colorado.edu>
3272 2004-08-24 Fernando Perez <fperez@colorado.edu>
3270
3273
3271 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3274 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3272 tried to switch the profiling to using hotshot, but I'm getting
3275 tried to switch the profiling to using hotshot, but I'm getting
3273 strange errors from prof.runctx() there. I may be misreading the
3276 strange errors from prof.runctx() there. I may be misreading the
3274 docs, but it looks weird. For now the profiling code will
3277 docs, but it looks weird. For now the profiling code will
3275 continue to use the standard profiler.
3278 continue to use the standard profiler.
3276
3279
3277 2004-08-23 Fernando Perez <fperez@colorado.edu>
3280 2004-08-23 Fernando Perez <fperez@colorado.edu>
3278
3281
3279 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3282 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3280 threaded shell, by John Hunter. It's not quite ready yet, but
3283 threaded shell, by John Hunter. It's not quite ready yet, but
3281 close.
3284 close.
3282
3285
3283 2004-08-22 Fernando Perez <fperez@colorado.edu>
3286 2004-08-22 Fernando Perez <fperez@colorado.edu>
3284
3287
3285 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3288 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3286 in Magic and ultraTB.
3289 in Magic and ultraTB.
3287
3290
3288 * ipython.1: document threading options in manpage.
3291 * ipython.1: document threading options in manpage.
3289
3292
3290 * scripts/ipython: Changed name of -thread option to -gthread,
3293 * scripts/ipython: Changed name of -thread option to -gthread,
3291 since this is GTK specific. I want to leave the door open for a
3294 since this is GTK specific. I want to leave the door open for a
3292 -wthread option for WX, which will most likely be necessary. This
3295 -wthread option for WX, which will most likely be necessary. This
3293 change affects usage and ipmaker as well.
3296 change affects usage and ipmaker as well.
3294
3297
3295 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3298 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3296 handle the matplotlib shell issues. Code by John Hunter
3299 handle the matplotlib shell issues. Code by John Hunter
3297 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3300 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3298 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3301 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3299 broken (and disabled for end users) for now, but it puts the
3302 broken (and disabled for end users) for now, but it puts the
3300 infrastructure in place.
3303 infrastructure in place.
3301
3304
3302 2004-08-21 Fernando Perez <fperez@colorado.edu>
3305 2004-08-21 Fernando Perez <fperez@colorado.edu>
3303
3306
3304 * ipythonrc-pylab: Add matplotlib support.
3307 * ipythonrc-pylab: Add matplotlib support.
3305
3308
3306 * matplotlib_config.py: new files for matplotlib support, part of
3309 * matplotlib_config.py: new files for matplotlib support, part of
3307 the pylab profile.
3310 the pylab profile.
3308
3311
3309 * IPython/usage.py (__doc__): documented the threading options.
3312 * IPython/usage.py (__doc__): documented the threading options.
3310
3313
3311 2004-08-20 Fernando Perez <fperez@colorado.edu>
3314 2004-08-20 Fernando Perez <fperez@colorado.edu>
3312
3315
3313 * ipython: Modified the main calling routine to handle the -thread
3316 * ipython: Modified the main calling routine to handle the -thread
3314 and -mpthread options. This needs to be done as a top-level hack,
3317 and -mpthread options. This needs to be done as a top-level hack,
3315 because it determines which class to instantiate for IPython
3318 because it determines which class to instantiate for IPython
3316 itself.
3319 itself.
3317
3320
3318 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3321 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3319 classes to support multithreaded GTK operation without blocking,
3322 classes to support multithreaded GTK operation without blocking,
3320 and matplotlib with all backends. This is a lot of still very
3323 and matplotlib with all backends. This is a lot of still very
3321 experimental code, and threads are tricky. So it may still have a
3324 experimental code, and threads are tricky. So it may still have a
3322 few rough edges... This code owes a lot to
3325 few rough edges... This code owes a lot to
3323 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3326 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3324 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3327 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3325 to John Hunter for all the matplotlib work.
3328 to John Hunter for all the matplotlib work.
3326
3329
3327 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3330 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3328 options for gtk thread and matplotlib support.
3331 options for gtk thread and matplotlib support.
3329
3332
3330 2004-08-16 Fernando Perez <fperez@colorado.edu>
3333 2004-08-16 Fernando Perez <fperez@colorado.edu>
3331
3334
3332 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3335 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3333 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3336 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3334 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3337 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3335
3338
3336 2004-08-11 Fernando Perez <fperez@colorado.edu>
3339 2004-08-11 Fernando Perez <fperez@colorado.edu>
3337
3340
3338 * setup.py (isfile): Fix build so documentation gets updated for
3341 * setup.py (isfile): Fix build so documentation gets updated for
3339 rpms (it was only done for .tgz builds).
3342 rpms (it was only done for .tgz builds).
3340
3343
3341 2004-08-10 Fernando Perez <fperez@colorado.edu>
3344 2004-08-10 Fernando Perez <fperez@colorado.edu>
3342
3345
3343 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3346 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3344
3347
3345 * iplib.py : Silence syntax error exceptions in tab-completion.
3348 * iplib.py : Silence syntax error exceptions in tab-completion.
3346
3349
3347 2004-08-05 Fernando Perez <fperez@colorado.edu>
3350 2004-08-05 Fernando Perez <fperez@colorado.edu>
3348
3351
3349 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3352 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3350 'color off' mark for continuation prompts. This was causing long
3353 'color off' mark for continuation prompts. This was causing long
3351 continuation lines to mis-wrap.
3354 continuation lines to mis-wrap.
3352
3355
3353 2004-08-01 Fernando Perez <fperez@colorado.edu>
3356 2004-08-01 Fernando Perez <fperez@colorado.edu>
3354
3357
3355 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3358 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3356 for building ipython to be a parameter. All this is necessary
3359 for building ipython to be a parameter. All this is necessary
3357 right now to have a multithreaded version, but this insane
3360 right now to have a multithreaded version, but this insane
3358 non-design will be cleaned up soon. For now, it's a hack that
3361 non-design will be cleaned up soon. For now, it's a hack that
3359 works.
3362 works.
3360
3363
3361 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3364 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3362 args in various places. No bugs so far, but it's a dangerous
3365 args in various places. No bugs so far, but it's a dangerous
3363 practice.
3366 practice.
3364
3367
3365 2004-07-31 Fernando Perez <fperez@colorado.edu>
3368 2004-07-31 Fernando Perez <fperez@colorado.edu>
3366
3369
3367 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3370 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3368 fix completion of files with dots in their names under most
3371 fix completion of files with dots in their names under most
3369 profiles (pysh was OK because the completion order is different).
3372 profiles (pysh was OK because the completion order is different).
3370
3373
3371 2004-07-27 Fernando Perez <fperez@colorado.edu>
3374 2004-07-27 Fernando Perez <fperez@colorado.edu>
3372
3375
3373 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3376 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3374 keywords manually, b/c the one in keyword.py was removed in python
3377 keywords manually, b/c the one in keyword.py was removed in python
3375 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3378 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3376 This is NOT a bug under python 2.3 and earlier.
3379 This is NOT a bug under python 2.3 and earlier.
3377
3380
3378 2004-07-26 Fernando Perez <fperez@colorado.edu>
3381 2004-07-26 Fernando Perez <fperez@colorado.edu>
3379
3382
3380 * IPython/ultraTB.py (VerboseTB.text): Add another
3383 * IPython/ultraTB.py (VerboseTB.text): Add another
3381 linecache.checkcache() call to try to prevent inspect.py from
3384 linecache.checkcache() call to try to prevent inspect.py from
3382 crashing under python 2.3. I think this fixes
3385 crashing under python 2.3. I think this fixes
3383 http://www.scipy.net/roundup/ipython/issue17.
3386 http://www.scipy.net/roundup/ipython/issue17.
3384
3387
3385 2004-07-26 *** Released version 0.6.2
3388 2004-07-26 *** Released version 0.6.2
3386
3389
3387 2004-07-26 Fernando Perez <fperez@colorado.edu>
3390 2004-07-26 Fernando Perez <fperez@colorado.edu>
3388
3391
3389 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3392 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3390 fail for any number.
3393 fail for any number.
3391 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3394 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3392 empty bookmarks.
3395 empty bookmarks.
3393
3396
3394 2004-07-26 *** Released version 0.6.1
3397 2004-07-26 *** Released version 0.6.1
3395
3398
3396 2004-07-26 Fernando Perez <fperez@colorado.edu>
3399 2004-07-26 Fernando Perez <fperez@colorado.edu>
3397
3400
3398 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3401 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3399
3402
3400 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3403 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3401 escaping '()[]{}' in filenames.
3404 escaping '()[]{}' in filenames.
3402
3405
3403 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3406 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3404 Python 2.2 users who lack a proper shlex.split.
3407 Python 2.2 users who lack a proper shlex.split.
3405
3408
3406 2004-07-19 Fernando Perez <fperez@colorado.edu>
3409 2004-07-19 Fernando Perez <fperez@colorado.edu>
3407
3410
3408 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3411 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3409 for reading readline's init file. I follow the normal chain:
3412 for reading readline's init file. I follow the normal chain:
3410 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3413 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3411 report by Mike Heeter. This closes
3414 report by Mike Heeter. This closes
3412 http://www.scipy.net/roundup/ipython/issue16.
3415 http://www.scipy.net/roundup/ipython/issue16.
3413
3416
3414 2004-07-18 Fernando Perez <fperez@colorado.edu>
3417 2004-07-18 Fernando Perez <fperez@colorado.edu>
3415
3418
3416 * IPython/iplib.py (__init__): Add better handling of '\' under
3419 * IPython/iplib.py (__init__): Add better handling of '\' under
3417 Win32 for filenames. After a patch by Ville.
3420 Win32 for filenames. After a patch by Ville.
3418
3421
3419 2004-07-17 Fernando Perez <fperez@colorado.edu>
3422 2004-07-17 Fernando Perez <fperez@colorado.edu>
3420
3423
3421 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3424 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3422 autocalling would be triggered for 'foo is bar' if foo is
3425 autocalling would be triggered for 'foo is bar' if foo is
3423 callable. I also cleaned up the autocall detection code to use a
3426 callable. I also cleaned up the autocall detection code to use a
3424 regexp, which is faster. Bug reported by Alexander Schmolck.
3427 regexp, which is faster. Bug reported by Alexander Schmolck.
3425
3428
3426 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3429 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3427 '?' in them would confuse the help system. Reported by Alex
3430 '?' in them would confuse the help system. Reported by Alex
3428 Schmolck.
3431 Schmolck.
3429
3432
3430 2004-07-16 Fernando Perez <fperez@colorado.edu>
3433 2004-07-16 Fernando Perez <fperez@colorado.edu>
3431
3434
3432 * IPython/GnuplotInteractive.py (__all__): added plot2.
3435 * IPython/GnuplotInteractive.py (__all__): added plot2.
3433
3436
3434 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3437 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3435 plotting dictionaries, lists or tuples of 1d arrays.
3438 plotting dictionaries, lists or tuples of 1d arrays.
3436
3439
3437 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3440 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3438 optimizations.
3441 optimizations.
3439
3442
3440 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3443 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3441 the information which was there from Janko's original IPP code:
3444 the information which was there from Janko's original IPP code:
3442
3445
3443 03.05.99 20:53 porto.ifm.uni-kiel.de
3446 03.05.99 20:53 porto.ifm.uni-kiel.de
3444 --Started changelog.
3447 --Started changelog.
3445 --make clear do what it say it does
3448 --make clear do what it say it does
3446 --added pretty output of lines from inputcache
3449 --added pretty output of lines from inputcache
3447 --Made Logger a mixin class, simplifies handling of switches
3450 --Made Logger a mixin class, simplifies handling of switches
3448 --Added own completer class. .string<TAB> expands to last history
3451 --Added own completer class. .string<TAB> expands to last history
3449 line which starts with string. The new expansion is also present
3452 line which starts with string. The new expansion is also present
3450 with Ctrl-r from the readline library. But this shows, who this
3453 with Ctrl-r from the readline library. But this shows, who this
3451 can be done for other cases.
3454 can be done for other cases.
3452 --Added convention that all shell functions should accept a
3455 --Added convention that all shell functions should accept a
3453 parameter_string This opens the door for different behaviour for
3456 parameter_string This opens the door for different behaviour for
3454 each function. @cd is a good example of this.
3457 each function. @cd is a good example of this.
3455
3458
3456 04.05.99 12:12 porto.ifm.uni-kiel.de
3459 04.05.99 12:12 porto.ifm.uni-kiel.de
3457 --added logfile rotation
3460 --added logfile rotation
3458 --added new mainloop method which freezes first the namespace
3461 --added new mainloop method which freezes first the namespace
3459
3462
3460 07.05.99 21:24 porto.ifm.uni-kiel.de
3463 07.05.99 21:24 porto.ifm.uni-kiel.de
3461 --added the docreader classes. Now there is a help system.
3464 --added the docreader classes. Now there is a help system.
3462 -This is only a first try. Currently it's not easy to put new
3465 -This is only a first try. Currently it's not easy to put new
3463 stuff in the indices. But this is the way to go. Info would be
3466 stuff in the indices. But this is the way to go. Info would be
3464 better, but HTML is every where and not everybody has an info
3467 better, but HTML is every where and not everybody has an info
3465 system installed and it's not so easy to change html-docs to info.
3468 system installed and it's not so easy to change html-docs to info.
3466 --added global logfile option
3469 --added global logfile option
3467 --there is now a hook for object inspection method pinfo needs to
3470 --there is now a hook for object inspection method pinfo needs to
3468 be provided for this. Can be reached by two '??'.
3471 be provided for this. Can be reached by two '??'.
3469
3472
3470 08.05.99 20:51 porto.ifm.uni-kiel.de
3473 08.05.99 20:51 porto.ifm.uni-kiel.de
3471 --added a README
3474 --added a README
3472 --bug in rc file. Something has changed so functions in the rc
3475 --bug in rc file. Something has changed so functions in the rc
3473 file need to reference the shell and not self. Not clear if it's a
3476 file need to reference the shell and not self. Not clear if it's a
3474 bug or feature.
3477 bug or feature.
3475 --changed rc file for new behavior
3478 --changed rc file for new behavior
3476
3479
3477 2004-07-15 Fernando Perez <fperez@colorado.edu>
3480 2004-07-15 Fernando Perez <fperez@colorado.edu>
3478
3481
3479 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3482 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3480 cache was falling out of sync in bizarre manners when multi-line
3483 cache was falling out of sync in bizarre manners when multi-line
3481 input was present. Minor optimizations and cleanup.
3484 input was present. Minor optimizations and cleanup.
3482
3485
3483 (Logger): Remove old Changelog info for cleanup. This is the
3486 (Logger): Remove old Changelog info for cleanup. This is the
3484 information which was there from Janko's original code:
3487 information which was there from Janko's original code:
3485
3488
3486 Changes to Logger: - made the default log filename a parameter
3489 Changes to Logger: - made the default log filename a parameter
3487
3490
3488 - put a check for lines beginning with !@? in log(). Needed
3491 - put a check for lines beginning with !@? in log(). Needed
3489 (even if the handlers properly log their lines) for mid-session
3492 (even if the handlers properly log their lines) for mid-session
3490 logging activation to work properly. Without this, lines logged
3493 logging activation to work properly. Without this, lines logged
3491 in mid session, which get read from the cache, would end up
3494 in mid session, which get read from the cache, would end up
3492 'bare' (with !@? in the open) in the log. Now they are caught
3495 'bare' (with !@? in the open) in the log. Now they are caught
3493 and prepended with a #.
3496 and prepended with a #.
3494
3497
3495 * IPython/iplib.py (InteractiveShell.init_readline): added check
3498 * IPython/iplib.py (InteractiveShell.init_readline): added check
3496 in case MagicCompleter fails to be defined, so we don't crash.
3499 in case MagicCompleter fails to be defined, so we don't crash.
3497
3500
3498 2004-07-13 Fernando Perez <fperez@colorado.edu>
3501 2004-07-13 Fernando Perez <fperez@colorado.edu>
3499
3502
3500 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3503 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3501 of EPS if the requested filename ends in '.eps'.
3504 of EPS if the requested filename ends in '.eps'.
3502
3505
3503 2004-07-04 Fernando Perez <fperez@colorado.edu>
3506 2004-07-04 Fernando Perez <fperez@colorado.edu>
3504
3507
3505 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3508 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3506 escaping of quotes when calling the shell.
3509 escaping of quotes when calling the shell.
3507
3510
3508 2004-07-02 Fernando Perez <fperez@colorado.edu>
3511 2004-07-02 Fernando Perez <fperez@colorado.edu>
3509
3512
3510 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3513 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3511 gettext not working because we were clobbering '_'. Fixes
3514 gettext not working because we were clobbering '_'. Fixes
3512 http://www.scipy.net/roundup/ipython/issue6.
3515 http://www.scipy.net/roundup/ipython/issue6.
3513
3516
3514 2004-07-01 Fernando Perez <fperez@colorado.edu>
3517 2004-07-01 Fernando Perez <fperez@colorado.edu>
3515
3518
3516 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3519 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3517 into @cd. Patch by Ville.
3520 into @cd. Patch by Ville.
3518
3521
3519 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3522 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3520 new function to store things after ipmaker runs. Patch by Ville.
3523 new function to store things after ipmaker runs. Patch by Ville.
3521 Eventually this will go away once ipmaker is removed and the class
3524 Eventually this will go away once ipmaker is removed and the class
3522 gets cleaned up, but for now it's ok. Key functionality here is
3525 gets cleaned up, but for now it's ok. Key functionality here is
3523 the addition of the persistent storage mechanism, a dict for
3526 the addition of the persistent storage mechanism, a dict for
3524 keeping data across sessions (for now just bookmarks, but more can
3527 keeping data across sessions (for now just bookmarks, but more can
3525 be implemented later).
3528 be implemented later).
3526
3529
3527 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3530 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3528 persistent across sections. Patch by Ville, I modified it
3531 persistent across sections. Patch by Ville, I modified it
3529 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3532 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3530 added a '-l' option to list all bookmarks.
3533 added a '-l' option to list all bookmarks.
3531
3534
3532 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3535 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3533 center for cleanup. Registered with atexit.register(). I moved
3536 center for cleanup. Registered with atexit.register(). I moved
3534 here the old exit_cleanup(). After a patch by Ville.
3537 here the old exit_cleanup(). After a patch by Ville.
3535
3538
3536 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3539 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3537 characters in the hacked shlex_split for python 2.2.
3540 characters in the hacked shlex_split for python 2.2.
3538
3541
3539 * IPython/iplib.py (file_matches): more fixes to filenames with
3542 * IPython/iplib.py (file_matches): more fixes to filenames with
3540 whitespace in them. It's not perfect, but limitations in python's
3543 whitespace in them. It's not perfect, but limitations in python's
3541 readline make it impossible to go further.
3544 readline make it impossible to go further.
3542
3545
3543 2004-06-29 Fernando Perez <fperez@colorado.edu>
3546 2004-06-29 Fernando Perez <fperez@colorado.edu>
3544
3547
3545 * IPython/iplib.py (file_matches): escape whitespace correctly in
3548 * IPython/iplib.py (file_matches): escape whitespace correctly in
3546 filename completions. Bug reported by Ville.
3549 filename completions. Bug reported by Ville.
3547
3550
3548 2004-06-28 Fernando Perez <fperez@colorado.edu>
3551 2004-06-28 Fernando Perez <fperez@colorado.edu>
3549
3552
3550 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3553 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3551 the history file will be called 'history-PROFNAME' (or just
3554 the history file will be called 'history-PROFNAME' (or just
3552 'history' if no profile is loaded). I was getting annoyed at
3555 'history' if no profile is loaded). I was getting annoyed at
3553 getting my Numerical work history clobbered by pysh sessions.
3556 getting my Numerical work history clobbered by pysh sessions.
3554
3557
3555 * IPython/iplib.py (InteractiveShell.__init__): Internal
3558 * IPython/iplib.py (InteractiveShell.__init__): Internal
3556 getoutputerror() function so that we can honor the system_verbose
3559 getoutputerror() function so that we can honor the system_verbose
3557 flag for _all_ system calls. I also added escaping of #
3560 flag for _all_ system calls. I also added escaping of #
3558 characters here to avoid confusing Itpl.
3561 characters here to avoid confusing Itpl.
3559
3562
3560 * IPython/Magic.py (shlex_split): removed call to shell in
3563 * IPython/Magic.py (shlex_split): removed call to shell in
3561 parse_options and replaced it with shlex.split(). The annoying
3564 parse_options and replaced it with shlex.split(). The annoying
3562 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3565 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3563 to backport it from 2.3, with several frail hacks (the shlex
3566 to backport it from 2.3, with several frail hacks (the shlex
3564 module is rather limited in 2.2). Thanks to a suggestion by Ville
3567 module is rather limited in 2.2). Thanks to a suggestion by Ville
3565 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3568 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3566 problem.
3569 problem.
3567
3570
3568 (Magic.magic_system_verbose): new toggle to print the actual
3571 (Magic.magic_system_verbose): new toggle to print the actual
3569 system calls made by ipython. Mainly for debugging purposes.
3572 system calls made by ipython. Mainly for debugging purposes.
3570
3573
3571 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3574 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3572 doesn't support persistence. Reported (and fix suggested) by
3575 doesn't support persistence. Reported (and fix suggested) by
3573 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3576 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3574
3577
3575 2004-06-26 Fernando Perez <fperez@colorado.edu>
3578 2004-06-26 Fernando Perez <fperez@colorado.edu>
3576
3579
3577 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3580 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3578 continue prompts.
3581 continue prompts.
3579
3582
3580 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3583 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3581 function (basically a big docstring) and a few more things here to
3584 function (basically a big docstring) and a few more things here to
3582 speedup startup. pysh.py is now very lightweight. We want because
3585 speedup startup. pysh.py is now very lightweight. We want because
3583 it gets execfile'd, while InterpreterExec gets imported, so
3586 it gets execfile'd, while InterpreterExec gets imported, so
3584 byte-compilation saves time.
3587 byte-compilation saves time.
3585
3588
3586 2004-06-25 Fernando Perez <fperez@colorado.edu>
3589 2004-06-25 Fernando Perez <fperez@colorado.edu>
3587
3590
3588 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3591 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3589 -NUM', which was recently broken.
3592 -NUM', which was recently broken.
3590
3593
3591 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3594 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3592 in multi-line input (but not !!, which doesn't make sense there).
3595 in multi-line input (but not !!, which doesn't make sense there).
3593
3596
3594 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3597 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3595 It's just too useful, and people can turn it off in the less
3598 It's just too useful, and people can turn it off in the less
3596 common cases where it's a problem.
3599 common cases where it's a problem.
3597
3600
3598 2004-06-24 Fernando Perez <fperez@colorado.edu>
3601 2004-06-24 Fernando Perez <fperez@colorado.edu>
3599
3602
3600 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3603 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3601 special syntaxes (like alias calling) is now allied in multi-line
3604 special syntaxes (like alias calling) is now allied in multi-line
3602 input. This is still _very_ experimental, but it's necessary for
3605 input. This is still _very_ experimental, but it's necessary for
3603 efficient shell usage combining python looping syntax with system
3606 efficient shell usage combining python looping syntax with system
3604 calls. For now it's restricted to aliases, I don't think it
3607 calls. For now it's restricted to aliases, I don't think it
3605 really even makes sense to have this for magics.
3608 really even makes sense to have this for magics.
3606
3609
3607 2004-06-23 Fernando Perez <fperez@colorado.edu>
3610 2004-06-23 Fernando Perez <fperez@colorado.edu>
3608
3611
3609 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3612 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3610 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3613 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3611
3614
3612 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3615 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3613 extensions under Windows (after code sent by Gary Bishop). The
3616 extensions under Windows (after code sent by Gary Bishop). The
3614 extensions considered 'executable' are stored in IPython's rc
3617 extensions considered 'executable' are stored in IPython's rc
3615 structure as win_exec_ext.
3618 structure as win_exec_ext.
3616
3619
3617 * IPython/genutils.py (shell): new function, like system() but
3620 * IPython/genutils.py (shell): new function, like system() but
3618 without return value. Very useful for interactive shell work.
3621 without return value. Very useful for interactive shell work.
3619
3622
3620 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3623 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3621 delete aliases.
3624 delete aliases.
3622
3625
3623 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3626 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3624 sure that the alias table doesn't contain python keywords.
3627 sure that the alias table doesn't contain python keywords.
3625
3628
3626 2004-06-21 Fernando Perez <fperez@colorado.edu>
3629 2004-06-21 Fernando Perez <fperez@colorado.edu>
3627
3630
3628 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3631 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3629 non-existent items are found in $PATH. Reported by Thorsten.
3632 non-existent items are found in $PATH. Reported by Thorsten.
3630
3633
3631 2004-06-20 Fernando Perez <fperez@colorado.edu>
3634 2004-06-20 Fernando Perez <fperez@colorado.edu>
3632
3635
3633 * IPython/iplib.py (complete): modified the completer so that the
3636 * IPython/iplib.py (complete): modified the completer so that the
3634 order of priorities can be easily changed at runtime.
3637 order of priorities can be easily changed at runtime.
3635
3638
3636 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3639 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3637 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3640 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3638
3641
3639 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3642 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3640 expand Python variables prepended with $ in all system calls. The
3643 expand Python variables prepended with $ in all system calls. The
3641 same was done to InteractiveShell.handle_shell_escape. Now all
3644 same was done to InteractiveShell.handle_shell_escape. Now all
3642 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3645 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3643 expansion of python variables and expressions according to the
3646 expansion of python variables and expressions according to the
3644 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3647 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3645
3648
3646 Though PEP-215 has been rejected, a similar (but simpler) one
3649 Though PEP-215 has been rejected, a similar (but simpler) one
3647 seems like it will go into Python 2.4, PEP-292 -
3650 seems like it will go into Python 2.4, PEP-292 -
3648 http://www.python.org/peps/pep-0292.html.
3651 http://www.python.org/peps/pep-0292.html.
3649
3652
3650 I'll keep the full syntax of PEP-215, since IPython has since the
3653 I'll keep the full syntax of PEP-215, since IPython has since the
3651 start used Ka-Ping Yee's reference implementation discussed there
3654 start used Ka-Ping Yee's reference implementation discussed there
3652 (Itpl), and I actually like the powerful semantics it offers.
3655 (Itpl), and I actually like the powerful semantics it offers.
3653
3656
3654 In order to access normal shell variables, the $ has to be escaped
3657 In order to access normal shell variables, the $ has to be escaped
3655 via an extra $. For example:
3658 via an extra $. For example:
3656
3659
3657 In [7]: PATH='a python variable'
3660 In [7]: PATH='a python variable'
3658
3661
3659 In [8]: !echo $PATH
3662 In [8]: !echo $PATH
3660 a python variable
3663 a python variable
3661
3664
3662 In [9]: !echo $$PATH
3665 In [9]: !echo $$PATH
3663 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3666 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3664
3667
3665 (Magic.parse_options): escape $ so the shell doesn't evaluate
3668 (Magic.parse_options): escape $ so the shell doesn't evaluate
3666 things prematurely.
3669 things prematurely.
3667
3670
3668 * IPython/iplib.py (InteractiveShell.call_alias): added the
3671 * IPython/iplib.py (InteractiveShell.call_alias): added the
3669 ability for aliases to expand python variables via $.
3672 ability for aliases to expand python variables via $.
3670
3673
3671 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3674 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3672 system, now there's a @rehash/@rehashx pair of magics. These work
3675 system, now there's a @rehash/@rehashx pair of magics. These work
3673 like the csh rehash command, and can be invoked at any time. They
3676 like the csh rehash command, and can be invoked at any time. They
3674 build a table of aliases to everything in the user's $PATH
3677 build a table of aliases to everything in the user's $PATH
3675 (@rehash uses everything, @rehashx is slower but only adds
3678 (@rehash uses everything, @rehashx is slower but only adds
3676 executable files). With this, the pysh.py-based shell profile can
3679 executable files). With this, the pysh.py-based shell profile can
3677 now simply call rehash upon startup, and full access to all
3680 now simply call rehash upon startup, and full access to all
3678 programs in the user's path is obtained.
3681 programs in the user's path is obtained.
3679
3682
3680 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3683 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3681 functionality is now fully in place. I removed the old dynamic
3684 functionality is now fully in place. I removed the old dynamic
3682 code generation based approach, in favor of a much lighter one
3685 code generation based approach, in favor of a much lighter one
3683 based on a simple dict. The advantage is that this allows me to
3686 based on a simple dict. The advantage is that this allows me to
3684 now have thousands of aliases with negligible cost (unthinkable
3687 now have thousands of aliases with negligible cost (unthinkable
3685 with the old system).
3688 with the old system).
3686
3689
3687 2004-06-19 Fernando Perez <fperez@colorado.edu>
3690 2004-06-19 Fernando Perez <fperez@colorado.edu>
3688
3691
3689 * IPython/iplib.py (__init__): extended MagicCompleter class to
3692 * IPython/iplib.py (__init__): extended MagicCompleter class to
3690 also complete (last in priority) on user aliases.
3693 also complete (last in priority) on user aliases.
3691
3694
3692 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3695 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3693 call to eval.
3696 call to eval.
3694 (ItplNS.__init__): Added a new class which functions like Itpl,
3697 (ItplNS.__init__): Added a new class which functions like Itpl,
3695 but allows configuring the namespace for the evaluation to occur
3698 but allows configuring the namespace for the evaluation to occur
3696 in.
3699 in.
3697
3700
3698 2004-06-18 Fernando Perez <fperez@colorado.edu>
3701 2004-06-18 Fernando Perez <fperez@colorado.edu>
3699
3702
3700 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3703 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3701 better message when 'exit' or 'quit' are typed (a common newbie
3704 better message when 'exit' or 'quit' are typed (a common newbie
3702 confusion).
3705 confusion).
3703
3706
3704 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3707 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3705 check for Windows users.
3708 check for Windows users.
3706
3709
3707 * IPython/iplib.py (InteractiveShell.user_setup): removed
3710 * IPython/iplib.py (InteractiveShell.user_setup): removed
3708 disabling of colors for Windows. I'll test at runtime and issue a
3711 disabling of colors for Windows. I'll test at runtime and issue a
3709 warning if Gary's readline isn't found, as to nudge users to
3712 warning if Gary's readline isn't found, as to nudge users to
3710 download it.
3713 download it.
3711
3714
3712 2004-06-16 Fernando Perez <fperez@colorado.edu>
3715 2004-06-16 Fernando Perez <fperez@colorado.edu>
3713
3716
3714 * IPython/genutils.py (Stream.__init__): changed to print errors
3717 * IPython/genutils.py (Stream.__init__): changed to print errors
3715 to sys.stderr. I had a circular dependency here. Now it's
3718 to sys.stderr. I had a circular dependency here. Now it's
3716 possible to run ipython as IDLE's shell (consider this pre-alpha,
3719 possible to run ipython as IDLE's shell (consider this pre-alpha,
3717 since true stdout things end up in the starting terminal instead
3720 since true stdout things end up in the starting terminal instead
3718 of IDLE's out).
3721 of IDLE's out).
3719
3722
3720 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3723 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3721 users who haven't # updated their prompt_in2 definitions. Remove
3724 users who haven't # updated their prompt_in2 definitions. Remove
3722 eventually.
3725 eventually.
3723 (multiple_replace): added credit to original ASPN recipe.
3726 (multiple_replace): added credit to original ASPN recipe.
3724
3727
3725 2004-06-15 Fernando Perez <fperez@colorado.edu>
3728 2004-06-15 Fernando Perez <fperez@colorado.edu>
3726
3729
3727 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3730 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3728 list of auto-defined aliases.
3731 list of auto-defined aliases.
3729
3732
3730 2004-06-13 Fernando Perez <fperez@colorado.edu>
3733 2004-06-13 Fernando Perez <fperez@colorado.edu>
3731
3734
3732 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3735 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3733 install was really requested (so setup.py can be used for other
3736 install was really requested (so setup.py can be used for other
3734 things under Windows).
3737 things under Windows).
3735
3738
3736 2004-06-10 Fernando Perez <fperez@colorado.edu>
3739 2004-06-10 Fernando Perez <fperez@colorado.edu>
3737
3740
3738 * IPython/Logger.py (Logger.create_log): Manually remove any old
3741 * IPython/Logger.py (Logger.create_log): Manually remove any old
3739 backup, since os.remove may fail under Windows. Fixes bug
3742 backup, since os.remove may fail under Windows. Fixes bug
3740 reported by Thorsten.
3743 reported by Thorsten.
3741
3744
3742 2004-06-09 Fernando Perez <fperez@colorado.edu>
3745 2004-06-09 Fernando Perez <fperez@colorado.edu>
3743
3746
3744 * examples/example-embed.py: fixed all references to %n (replaced
3747 * examples/example-embed.py: fixed all references to %n (replaced
3745 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3748 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3746 for all examples and the manual as well.
3749 for all examples and the manual as well.
3747
3750
3748 2004-06-08 Fernando Perez <fperez@colorado.edu>
3751 2004-06-08 Fernando Perez <fperez@colorado.edu>
3749
3752
3750 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3753 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3751 alignment and color management. All 3 prompt subsystems now
3754 alignment and color management. All 3 prompt subsystems now
3752 inherit from BasePrompt.
3755 inherit from BasePrompt.
3753
3756
3754 * tools/release: updates for windows installer build and tag rpms
3757 * tools/release: updates for windows installer build and tag rpms
3755 with python version (since paths are fixed).
3758 with python version (since paths are fixed).
3756
3759
3757 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3760 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3758 which will become eventually obsolete. Also fixed the default
3761 which will become eventually obsolete. Also fixed the default
3759 prompt_in2 to use \D, so at least new users start with the correct
3762 prompt_in2 to use \D, so at least new users start with the correct
3760 defaults.
3763 defaults.
3761 WARNING: Users with existing ipythonrc files will need to apply
3764 WARNING: Users with existing ipythonrc files will need to apply
3762 this fix manually!
3765 this fix manually!
3763
3766
3764 * setup.py: make windows installer (.exe). This is finally the
3767 * setup.py: make windows installer (.exe). This is finally the
3765 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3768 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3766 which I hadn't included because it required Python 2.3 (or recent
3769 which I hadn't included because it required Python 2.3 (or recent
3767 distutils).
3770 distutils).
3768
3771
3769 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3772 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3770 usage of new '\D' escape.
3773 usage of new '\D' escape.
3771
3774
3772 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3775 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3773 lacks os.getuid())
3776 lacks os.getuid())
3774 (CachedOutput.set_colors): Added the ability to turn coloring
3777 (CachedOutput.set_colors): Added the ability to turn coloring
3775 on/off with @colors even for manually defined prompt colors. It
3778 on/off with @colors even for manually defined prompt colors. It
3776 uses a nasty global, but it works safely and via the generic color
3779 uses a nasty global, but it works safely and via the generic color
3777 handling mechanism.
3780 handling mechanism.
3778 (Prompt2.__init__): Introduced new escape '\D' for continuation
3781 (Prompt2.__init__): Introduced new escape '\D' for continuation
3779 prompts. It represents the counter ('\#') as dots.
3782 prompts. It represents the counter ('\#') as dots.
3780 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3783 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3781 need to update their ipythonrc files and replace '%n' with '\D' in
3784 need to update their ipythonrc files and replace '%n' with '\D' in
3782 their prompt_in2 settings everywhere. Sorry, but there's
3785 their prompt_in2 settings everywhere. Sorry, but there's
3783 otherwise no clean way to get all prompts to properly align. The
3786 otherwise no clean way to get all prompts to properly align. The
3784 ipythonrc shipped with IPython has been updated.
3787 ipythonrc shipped with IPython has been updated.
3785
3788
3786 2004-06-07 Fernando Perez <fperez@colorado.edu>
3789 2004-06-07 Fernando Perez <fperez@colorado.edu>
3787
3790
3788 * setup.py (isfile): Pass local_icons option to latex2html, so the
3791 * setup.py (isfile): Pass local_icons option to latex2html, so the
3789 resulting HTML file is self-contained. Thanks to
3792 resulting HTML file is self-contained. Thanks to
3790 dryice-AT-liu.com.cn for the tip.
3793 dryice-AT-liu.com.cn for the tip.
3791
3794
3792 * pysh.py: I created a new profile 'shell', which implements a
3795 * pysh.py: I created a new profile 'shell', which implements a
3793 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3796 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3794 system shell, nor will it become one anytime soon. It's mainly
3797 system shell, nor will it become one anytime soon. It's mainly
3795 meant to illustrate the use of the new flexible bash-like prompts.
3798 meant to illustrate the use of the new flexible bash-like prompts.
3796 I guess it could be used by hardy souls for true shell management,
3799 I guess it could be used by hardy souls for true shell management,
3797 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3800 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3798 profile. This uses the InterpreterExec extension provided by
3801 profile. This uses the InterpreterExec extension provided by
3799 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3802 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3800
3803
3801 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3804 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3802 auto-align itself with the length of the previous input prompt
3805 auto-align itself with the length of the previous input prompt
3803 (taking into account the invisible color escapes).
3806 (taking into account the invisible color escapes).
3804 (CachedOutput.__init__): Large restructuring of this class. Now
3807 (CachedOutput.__init__): Large restructuring of this class. Now
3805 all three prompts (primary1, primary2, output) are proper objects,
3808 all three prompts (primary1, primary2, output) are proper objects,
3806 managed by the 'parent' CachedOutput class. The code is still a
3809 managed by the 'parent' CachedOutput class. The code is still a
3807 bit hackish (all prompts share state via a pointer to the cache),
3810 bit hackish (all prompts share state via a pointer to the cache),
3808 but it's overall far cleaner than before.
3811 but it's overall far cleaner than before.
3809
3812
3810 * IPython/genutils.py (getoutputerror): modified to add verbose,
3813 * IPython/genutils.py (getoutputerror): modified to add verbose,
3811 debug and header options. This makes the interface of all getout*
3814 debug and header options. This makes the interface of all getout*
3812 functions uniform.
3815 functions uniform.
3813 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3816 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3814
3817
3815 * IPython/Magic.py (Magic.default_option): added a function to
3818 * IPython/Magic.py (Magic.default_option): added a function to
3816 allow registering default options for any magic command. This
3819 allow registering default options for any magic command. This
3817 makes it easy to have profiles which customize the magics globally
3820 makes it easy to have profiles which customize the magics globally
3818 for a certain use. The values set through this function are
3821 for a certain use. The values set through this function are
3819 picked up by the parse_options() method, which all magics should
3822 picked up by the parse_options() method, which all magics should
3820 use to parse their options.
3823 use to parse their options.
3821
3824
3822 * IPython/genutils.py (warn): modified the warnings framework to
3825 * IPython/genutils.py (warn): modified the warnings framework to
3823 use the Term I/O class. I'm trying to slowly unify all of
3826 use the Term I/O class. I'm trying to slowly unify all of
3824 IPython's I/O operations to pass through Term.
3827 IPython's I/O operations to pass through Term.
3825
3828
3826 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3829 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3827 the secondary prompt to correctly match the length of the primary
3830 the secondary prompt to correctly match the length of the primary
3828 one for any prompt. Now multi-line code will properly line up
3831 one for any prompt. Now multi-line code will properly line up
3829 even for path dependent prompts, such as the new ones available
3832 even for path dependent prompts, such as the new ones available
3830 via the prompt_specials.
3833 via the prompt_specials.
3831
3834
3832 2004-06-06 Fernando Perez <fperez@colorado.edu>
3835 2004-06-06 Fernando Perez <fperez@colorado.edu>
3833
3836
3834 * IPython/Prompts.py (prompt_specials): Added the ability to have
3837 * IPython/Prompts.py (prompt_specials): Added the ability to have
3835 bash-like special sequences in the prompts, which get
3838 bash-like special sequences in the prompts, which get
3836 automatically expanded. Things like hostname, current working
3839 automatically expanded. Things like hostname, current working
3837 directory and username are implemented already, but it's easy to
3840 directory and username are implemented already, but it's easy to
3838 add more in the future. Thanks to a patch by W.J. van der Laan
3841 add more in the future. Thanks to a patch by W.J. van der Laan
3839 <gnufnork-AT-hetdigitalegat.nl>
3842 <gnufnork-AT-hetdigitalegat.nl>
3840 (prompt_specials): Added color support for prompt strings, so
3843 (prompt_specials): Added color support for prompt strings, so
3841 users can define arbitrary color setups for their prompts.
3844 users can define arbitrary color setups for their prompts.
3842
3845
3843 2004-06-05 Fernando Perez <fperez@colorado.edu>
3846 2004-06-05 Fernando Perez <fperez@colorado.edu>
3844
3847
3845 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3848 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3846 code to load Gary Bishop's readline and configure it
3849 code to load Gary Bishop's readline and configure it
3847 automatically. Thanks to Gary for help on this.
3850 automatically. Thanks to Gary for help on this.
3848
3851
3849 2004-06-01 Fernando Perez <fperez@colorado.edu>
3852 2004-06-01 Fernando Perez <fperez@colorado.edu>
3850
3853
3851 * IPython/Logger.py (Logger.create_log): fix bug for logging
3854 * IPython/Logger.py (Logger.create_log): fix bug for logging
3852 with no filename (previous fix was incomplete).
3855 with no filename (previous fix was incomplete).
3853
3856
3854 2004-05-25 Fernando Perez <fperez@colorado.edu>
3857 2004-05-25 Fernando Perez <fperez@colorado.edu>
3855
3858
3856 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3859 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3857 parens would get passed to the shell.
3860 parens would get passed to the shell.
3858
3861
3859 2004-05-20 Fernando Perez <fperez@colorado.edu>
3862 2004-05-20 Fernando Perez <fperez@colorado.edu>
3860
3863
3861 * IPython/Magic.py (Magic.magic_prun): changed default profile
3864 * IPython/Magic.py (Magic.magic_prun): changed default profile
3862 sort order to 'time' (the more common profiling need).
3865 sort order to 'time' (the more common profiling need).
3863
3866
3864 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3867 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3865 so that source code shown is guaranteed in sync with the file on
3868 so that source code shown is guaranteed in sync with the file on
3866 disk (also changed in psource). Similar fix to the one for
3869 disk (also changed in psource). Similar fix to the one for
3867 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3870 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3868 <yann.ledu-AT-noos.fr>.
3871 <yann.ledu-AT-noos.fr>.
3869
3872
3870 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3873 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3871 with a single option would not be correctly parsed. Closes
3874 with a single option would not be correctly parsed. Closes
3872 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3875 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3873 introduced in 0.6.0 (on 2004-05-06).
3876 introduced in 0.6.0 (on 2004-05-06).
3874
3877
3875 2004-05-13 *** Released version 0.6.0
3878 2004-05-13 *** Released version 0.6.0
3876
3879
3877 2004-05-13 Fernando Perez <fperez@colorado.edu>
3880 2004-05-13 Fernando Perez <fperez@colorado.edu>
3878
3881
3879 * debian/: Added debian/ directory to CVS, so that debian support
3882 * debian/: Added debian/ directory to CVS, so that debian support
3880 is publicly accessible. The debian package is maintained by Jack
3883 is publicly accessible. The debian package is maintained by Jack
3881 Moffit <jack-AT-xiph.org>.
3884 Moffit <jack-AT-xiph.org>.
3882
3885
3883 * Documentation: included the notes about an ipython-based system
3886 * Documentation: included the notes about an ipython-based system
3884 shell (the hypothetical 'pysh') into the new_design.pdf document,
3887 shell (the hypothetical 'pysh') into the new_design.pdf document,
3885 so that these ideas get distributed to users along with the
3888 so that these ideas get distributed to users along with the
3886 official documentation.
3889 official documentation.
3887
3890
3888 2004-05-10 Fernando Perez <fperez@colorado.edu>
3891 2004-05-10 Fernando Perez <fperez@colorado.edu>
3889
3892
3890 * IPython/Logger.py (Logger.create_log): fix recently introduced
3893 * IPython/Logger.py (Logger.create_log): fix recently introduced
3891 bug (misindented line) where logstart would fail when not given an
3894 bug (misindented line) where logstart would fail when not given an
3892 explicit filename.
3895 explicit filename.
3893
3896
3894 2004-05-09 Fernando Perez <fperez@colorado.edu>
3897 2004-05-09 Fernando Perez <fperez@colorado.edu>
3895
3898
3896 * IPython/Magic.py (Magic.parse_options): skip system call when
3899 * IPython/Magic.py (Magic.parse_options): skip system call when
3897 there are no options to look for. Faster, cleaner for the common
3900 there are no options to look for. Faster, cleaner for the common
3898 case.
3901 case.
3899
3902
3900 * Documentation: many updates to the manual: describing Windows
3903 * Documentation: many updates to the manual: describing Windows
3901 support better, Gnuplot updates, credits, misc small stuff. Also
3904 support better, Gnuplot updates, credits, misc small stuff. Also
3902 updated the new_design doc a bit.
3905 updated the new_design doc a bit.
3903
3906
3904 2004-05-06 *** Released version 0.6.0.rc1
3907 2004-05-06 *** Released version 0.6.0.rc1
3905
3908
3906 2004-05-06 Fernando Perez <fperez@colorado.edu>
3909 2004-05-06 Fernando Perez <fperez@colorado.edu>
3907
3910
3908 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3911 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3909 operations to use the vastly more efficient list/''.join() method.
3912 operations to use the vastly more efficient list/''.join() method.
3910 (FormattedTB.text): Fix
3913 (FormattedTB.text): Fix
3911 http://www.scipy.net/roundup/ipython/issue12 - exception source
3914 http://www.scipy.net/roundup/ipython/issue12 - exception source
3912 extract not updated after reload. Thanks to Mike Salib
3915 extract not updated after reload. Thanks to Mike Salib
3913 <msalib-AT-mit.edu> for pinning the source of the problem.
3916 <msalib-AT-mit.edu> for pinning the source of the problem.
3914 Fortunately, the solution works inside ipython and doesn't require
3917 Fortunately, the solution works inside ipython and doesn't require
3915 any changes to python proper.
3918 any changes to python proper.
3916
3919
3917 * IPython/Magic.py (Magic.parse_options): Improved to process the
3920 * IPython/Magic.py (Magic.parse_options): Improved to process the
3918 argument list as a true shell would (by actually using the
3921 argument list as a true shell would (by actually using the
3919 underlying system shell). This way, all @magics automatically get
3922 underlying system shell). This way, all @magics automatically get
3920 shell expansion for variables. Thanks to a comment by Alex
3923 shell expansion for variables. Thanks to a comment by Alex
3921 Schmolck.
3924 Schmolck.
3922
3925
3923 2004-04-04 Fernando Perez <fperez@colorado.edu>
3926 2004-04-04 Fernando Perez <fperez@colorado.edu>
3924
3927
3925 * IPython/iplib.py (InteractiveShell.interact): Added a special
3928 * IPython/iplib.py (InteractiveShell.interact): Added a special
3926 trap for a debugger quit exception, which is basically impossible
3929 trap for a debugger quit exception, which is basically impossible
3927 to handle by normal mechanisms, given what pdb does to the stack.
3930 to handle by normal mechanisms, given what pdb does to the stack.
3928 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3931 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3929
3932
3930 2004-04-03 Fernando Perez <fperez@colorado.edu>
3933 2004-04-03 Fernando Perez <fperez@colorado.edu>
3931
3934
3932 * IPython/genutils.py (Term): Standardized the names of the Term
3935 * IPython/genutils.py (Term): Standardized the names of the Term
3933 class streams to cin/cout/cerr, following C++ naming conventions
3936 class streams to cin/cout/cerr, following C++ naming conventions
3934 (I can't use in/out/err because 'in' is not a valid attribute
3937 (I can't use in/out/err because 'in' is not a valid attribute
3935 name).
3938 name).
3936
3939
3937 * IPython/iplib.py (InteractiveShell.interact): don't increment
3940 * IPython/iplib.py (InteractiveShell.interact): don't increment
3938 the prompt if there's no user input. By Daniel 'Dang' Griffith
3941 the prompt if there's no user input. By Daniel 'Dang' Griffith
3939 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3942 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3940 Francois Pinard.
3943 Francois Pinard.
3941
3944
3942 2004-04-02 Fernando Perez <fperez@colorado.edu>
3945 2004-04-02 Fernando Perez <fperez@colorado.edu>
3943
3946
3944 * IPython/genutils.py (Stream.__init__): Modified to survive at
3947 * IPython/genutils.py (Stream.__init__): Modified to survive at
3945 least importing in contexts where stdin/out/err aren't true file
3948 least importing in contexts where stdin/out/err aren't true file
3946 objects, such as PyCrust (they lack fileno() and mode). However,
3949 objects, such as PyCrust (they lack fileno() and mode). However,
3947 the recovery facilities which rely on these things existing will
3950 the recovery facilities which rely on these things existing will
3948 not work.
3951 not work.
3949
3952
3950 2004-04-01 Fernando Perez <fperez@colorado.edu>
3953 2004-04-01 Fernando Perez <fperez@colorado.edu>
3951
3954
3952 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3955 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3953 use the new getoutputerror() function, so it properly
3956 use the new getoutputerror() function, so it properly
3954 distinguishes stdout/err.
3957 distinguishes stdout/err.
3955
3958
3956 * IPython/genutils.py (getoutputerror): added a function to
3959 * IPython/genutils.py (getoutputerror): added a function to
3957 capture separately the standard output and error of a command.
3960 capture separately the standard output and error of a command.
3958 After a comment from dang on the mailing lists. This code is
3961 After a comment from dang on the mailing lists. This code is
3959 basically a modified version of commands.getstatusoutput(), from
3962 basically a modified version of commands.getstatusoutput(), from
3960 the standard library.
3963 the standard library.
3961
3964
3962 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3965 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3963 '!!' as a special syntax (shorthand) to access @sx.
3966 '!!' as a special syntax (shorthand) to access @sx.
3964
3967
3965 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3968 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3966 command and return its output as a list split on '\n'.
3969 command and return its output as a list split on '\n'.
3967
3970
3968 2004-03-31 Fernando Perez <fperez@colorado.edu>
3971 2004-03-31 Fernando Perez <fperez@colorado.edu>
3969
3972
3970 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3973 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3971 method to dictionaries used as FakeModule instances if they lack
3974 method to dictionaries used as FakeModule instances if they lack
3972 it. At least pydoc in python2.3 breaks for runtime-defined
3975 it. At least pydoc in python2.3 breaks for runtime-defined
3973 functions without this hack. At some point I need to _really_
3976 functions without this hack. At some point I need to _really_
3974 understand what FakeModule is doing, because it's a gross hack.
3977 understand what FakeModule is doing, because it's a gross hack.
3975 But it solves Arnd's problem for now...
3978 But it solves Arnd's problem for now...
3976
3979
3977 2004-02-27 Fernando Perez <fperez@colorado.edu>
3980 2004-02-27 Fernando Perez <fperez@colorado.edu>
3978
3981
3979 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3982 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3980 mode would behave erratically. Also increased the number of
3983 mode would behave erratically. Also increased the number of
3981 possible logs in rotate mod to 999. Thanks to Rod Holland
3984 possible logs in rotate mod to 999. Thanks to Rod Holland
3982 <rhh@StructureLABS.com> for the report and fixes.
3985 <rhh@StructureLABS.com> for the report and fixes.
3983
3986
3984 2004-02-26 Fernando Perez <fperez@colorado.edu>
3987 2004-02-26 Fernando Perez <fperez@colorado.edu>
3985
3988
3986 * IPython/genutils.py (page): Check that the curses module really
3989 * IPython/genutils.py (page): Check that the curses module really
3987 has the initscr attribute before trying to use it. For some
3990 has the initscr attribute before trying to use it. For some
3988 reason, the Solaris curses module is missing this. I think this
3991 reason, the Solaris curses module is missing this. I think this
3989 should be considered a Solaris python bug, but I'm not sure.
3992 should be considered a Solaris python bug, but I'm not sure.
3990
3993
3991 2004-01-17 Fernando Perez <fperez@colorado.edu>
3994 2004-01-17 Fernando Perez <fperez@colorado.edu>
3992
3995
3993 * IPython/genutils.py (Stream.__init__): Changes to try to make
3996 * IPython/genutils.py (Stream.__init__): Changes to try to make
3994 ipython robust against stdin/out/err being closed by the user.
3997 ipython robust against stdin/out/err being closed by the user.
3995 This is 'user error' (and blocks a normal python session, at least
3998 This is 'user error' (and blocks a normal python session, at least
3996 the stdout case). However, Ipython should be able to survive such
3999 the stdout case). However, Ipython should be able to survive such
3997 instances of abuse as gracefully as possible. To simplify the
4000 instances of abuse as gracefully as possible. To simplify the
3998 coding and maintain compatibility with Gary Bishop's Term
4001 coding and maintain compatibility with Gary Bishop's Term
3999 contributions, I've made use of classmethods for this. I think
4002 contributions, I've made use of classmethods for this. I think
4000 this introduces a dependency on python 2.2.
4003 this introduces a dependency on python 2.2.
4001
4004
4002 2004-01-13 Fernando Perez <fperez@colorado.edu>
4005 2004-01-13 Fernando Perez <fperez@colorado.edu>
4003
4006
4004 * IPython/numutils.py (exp_safe): simplified the code a bit and
4007 * IPython/numutils.py (exp_safe): simplified the code a bit and
4005 removed the need for importing the kinds module altogether.
4008 removed the need for importing the kinds module altogether.
4006
4009
4007 2004-01-06 Fernando Perez <fperez@colorado.edu>
4010 2004-01-06 Fernando Perez <fperez@colorado.edu>
4008
4011
4009 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4012 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4010 a magic function instead, after some community feedback. No
4013 a magic function instead, after some community feedback. No
4011 special syntax will exist for it, but its name is deliberately
4014 special syntax will exist for it, but its name is deliberately
4012 very short.
4015 very short.
4013
4016
4014 2003-12-20 Fernando Perez <fperez@colorado.edu>
4017 2003-12-20 Fernando Perez <fperez@colorado.edu>
4015
4018
4016 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4019 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4017 new functionality, to automagically assign the result of a shell
4020 new functionality, to automagically assign the result of a shell
4018 command to a variable. I'll solicit some community feedback on
4021 command to a variable. I'll solicit some community feedback on
4019 this before making it permanent.
4022 this before making it permanent.
4020
4023
4021 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4024 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4022 requested about callables for which inspect couldn't obtain a
4025 requested about callables for which inspect couldn't obtain a
4023 proper argspec. Thanks to a crash report sent by Etienne
4026 proper argspec. Thanks to a crash report sent by Etienne
4024 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4027 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4025
4028
4026 2003-12-09 Fernando Perez <fperez@colorado.edu>
4029 2003-12-09 Fernando Perez <fperez@colorado.edu>
4027
4030
4028 * IPython/genutils.py (page): patch for the pager to work across
4031 * IPython/genutils.py (page): patch for the pager to work across
4029 various versions of Windows. By Gary Bishop.
4032 various versions of Windows. By Gary Bishop.
4030
4033
4031 2003-12-04 Fernando Perez <fperez@colorado.edu>
4034 2003-12-04 Fernando Perez <fperez@colorado.edu>
4032
4035
4033 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4036 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4034 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4037 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4035 While I tested this and it looks ok, there may still be corner
4038 While I tested this and it looks ok, there may still be corner
4036 cases I've missed.
4039 cases I've missed.
4037
4040
4038 2003-12-01 Fernando Perez <fperez@colorado.edu>
4041 2003-12-01 Fernando Perez <fperez@colorado.edu>
4039
4042
4040 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4043 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4041 where a line like 'p,q=1,2' would fail because the automagic
4044 where a line like 'p,q=1,2' would fail because the automagic
4042 system would be triggered for @p.
4045 system would be triggered for @p.
4043
4046
4044 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4047 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4045 cleanups, code unmodified.
4048 cleanups, code unmodified.
4046
4049
4047 * IPython/genutils.py (Term): added a class for IPython to handle
4050 * IPython/genutils.py (Term): added a class for IPython to handle
4048 output. In most cases it will just be a proxy for stdout/err, but
4051 output. In most cases it will just be a proxy for stdout/err, but
4049 having this allows modifications to be made for some platforms,
4052 having this allows modifications to be made for some platforms,
4050 such as handling color escapes under Windows. All of this code
4053 such as handling color escapes under Windows. All of this code
4051 was contributed by Gary Bishop, with minor modifications by me.
4054 was contributed by Gary Bishop, with minor modifications by me.
4052 The actual changes affect many files.
4055 The actual changes affect many files.
4053
4056
4054 2003-11-30 Fernando Perez <fperez@colorado.edu>
4057 2003-11-30 Fernando Perez <fperez@colorado.edu>
4055
4058
4056 * IPython/iplib.py (file_matches): new completion code, courtesy
4059 * IPython/iplib.py (file_matches): new completion code, courtesy
4057 of Jeff Collins. This enables filename completion again under
4060 of Jeff Collins. This enables filename completion again under
4058 python 2.3, which disabled it at the C level.
4061 python 2.3, which disabled it at the C level.
4059
4062
4060 2003-11-11 Fernando Perez <fperez@colorado.edu>
4063 2003-11-11 Fernando Perez <fperez@colorado.edu>
4061
4064
4062 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4065 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4063 for Numeric.array(map(...)), but often convenient.
4066 for Numeric.array(map(...)), but often convenient.
4064
4067
4065 2003-11-05 Fernando Perez <fperez@colorado.edu>
4068 2003-11-05 Fernando Perez <fperez@colorado.edu>
4066
4069
4067 * IPython/numutils.py (frange): Changed a call from int() to
4070 * IPython/numutils.py (frange): Changed a call from int() to
4068 int(round()) to prevent a problem reported with arange() in the
4071 int(round()) to prevent a problem reported with arange() in the
4069 numpy list.
4072 numpy list.
4070
4073
4071 2003-10-06 Fernando Perez <fperez@colorado.edu>
4074 2003-10-06 Fernando Perez <fperez@colorado.edu>
4072
4075
4073 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4076 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4074 prevent crashes if sys lacks an argv attribute (it happens with
4077 prevent crashes if sys lacks an argv attribute (it happens with
4075 embedded interpreters which build a bare-bones sys module).
4078 embedded interpreters which build a bare-bones sys module).
4076 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4079 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4077
4080
4078 2003-09-24 Fernando Perez <fperez@colorado.edu>
4081 2003-09-24 Fernando Perez <fperez@colorado.edu>
4079
4082
4080 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4083 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4081 to protect against poorly written user objects where __getattr__
4084 to protect against poorly written user objects where __getattr__
4082 raises exceptions other than AttributeError. Thanks to a bug
4085 raises exceptions other than AttributeError. Thanks to a bug
4083 report by Oliver Sander <osander-AT-gmx.de>.
4086 report by Oliver Sander <osander-AT-gmx.de>.
4084
4087
4085 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4088 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4086 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4089 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4087
4090
4088 2003-09-09 Fernando Perez <fperez@colorado.edu>
4091 2003-09-09 Fernando Perez <fperez@colorado.edu>
4089
4092
4090 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4093 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4091 unpacking a list whith a callable as first element would
4094 unpacking a list whith a callable as first element would
4092 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4095 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4093 Collins.
4096 Collins.
4094
4097
4095 2003-08-25 *** Released version 0.5.0
4098 2003-08-25 *** Released version 0.5.0
4096
4099
4097 2003-08-22 Fernando Perez <fperez@colorado.edu>
4100 2003-08-22 Fernando Perez <fperez@colorado.edu>
4098
4101
4099 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4102 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4100 improperly defined user exceptions. Thanks to feedback from Mark
4103 improperly defined user exceptions. Thanks to feedback from Mark
4101 Russell <mrussell-AT-verio.net>.
4104 Russell <mrussell-AT-verio.net>.
4102
4105
4103 2003-08-20 Fernando Perez <fperez@colorado.edu>
4106 2003-08-20 Fernando Perez <fperez@colorado.edu>
4104
4107
4105 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4108 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4106 printing so that it would print multi-line string forms starting
4109 printing so that it would print multi-line string forms starting
4107 with a new line. This way the formatting is better respected for
4110 with a new line. This way the formatting is better respected for
4108 objects which work hard to make nice string forms.
4111 objects which work hard to make nice string forms.
4109
4112
4110 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4113 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4111 autocall would overtake data access for objects with both
4114 autocall would overtake data access for objects with both
4112 __getitem__ and __call__.
4115 __getitem__ and __call__.
4113
4116
4114 2003-08-19 *** Released version 0.5.0-rc1
4117 2003-08-19 *** Released version 0.5.0-rc1
4115
4118
4116 2003-08-19 Fernando Perez <fperez@colorado.edu>
4119 2003-08-19 Fernando Perez <fperez@colorado.edu>
4117
4120
4118 * IPython/deep_reload.py (load_tail): single tiny change here
4121 * IPython/deep_reload.py (load_tail): single tiny change here
4119 seems to fix the long-standing bug of dreload() failing to work
4122 seems to fix the long-standing bug of dreload() failing to work
4120 for dotted names. But this module is pretty tricky, so I may have
4123 for dotted names. But this module is pretty tricky, so I may have
4121 missed some subtlety. Needs more testing!.
4124 missed some subtlety. Needs more testing!.
4122
4125
4123 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4126 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4124 exceptions which have badly implemented __str__ methods.
4127 exceptions which have badly implemented __str__ methods.
4125 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4128 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4126 which I've been getting reports about from Python 2.3 users. I
4129 which I've been getting reports about from Python 2.3 users. I
4127 wish I had a simple test case to reproduce the problem, so I could
4130 wish I had a simple test case to reproduce the problem, so I could
4128 either write a cleaner workaround or file a bug report if
4131 either write a cleaner workaround or file a bug report if
4129 necessary.
4132 necessary.
4130
4133
4131 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4134 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4132 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4135 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4133 a bug report by Tjabo Kloppenburg.
4136 a bug report by Tjabo Kloppenburg.
4134
4137
4135 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4138 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4136 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4139 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4137 seems rather unstable. Thanks to a bug report by Tjabo
4140 seems rather unstable. Thanks to a bug report by Tjabo
4138 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4141 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4139
4142
4140 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4143 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4141 this out soon because of the critical fixes in the inner loop for
4144 this out soon because of the critical fixes in the inner loop for
4142 generators.
4145 generators.
4143
4146
4144 * IPython/Magic.py (Magic.getargspec): removed. This (and
4147 * IPython/Magic.py (Magic.getargspec): removed. This (and
4145 _get_def) have been obsoleted by OInspect for a long time, I
4148 _get_def) have been obsoleted by OInspect for a long time, I
4146 hadn't noticed that they were dead code.
4149 hadn't noticed that they were dead code.
4147 (Magic._ofind): restored _ofind functionality for a few literals
4150 (Magic._ofind): restored _ofind functionality for a few literals
4148 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4151 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4149 for things like "hello".capitalize?, since that would require a
4152 for things like "hello".capitalize?, since that would require a
4150 potentially dangerous eval() again.
4153 potentially dangerous eval() again.
4151
4154
4152 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4155 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4153 logic a bit more to clean up the escapes handling and minimize the
4156 logic a bit more to clean up the escapes handling and minimize the
4154 use of _ofind to only necessary cases. The interactive 'feel' of
4157 use of _ofind to only necessary cases. The interactive 'feel' of
4155 IPython should have improved quite a bit with the changes in
4158 IPython should have improved quite a bit with the changes in
4156 _prefilter and _ofind (besides being far safer than before).
4159 _prefilter and _ofind (besides being far safer than before).
4157
4160
4158 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4161 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4159 obscure, never reported). Edit would fail to find the object to
4162 obscure, never reported). Edit would fail to find the object to
4160 edit under some circumstances.
4163 edit under some circumstances.
4161 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4164 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4162 which were causing double-calling of generators. Those eval calls
4165 which were causing double-calling of generators. Those eval calls
4163 were _very_ dangerous, since code with side effects could be
4166 were _very_ dangerous, since code with side effects could be
4164 triggered. As they say, 'eval is evil'... These were the
4167 triggered. As they say, 'eval is evil'... These were the
4165 nastiest evals in IPython. Besides, _ofind is now far simpler,
4168 nastiest evals in IPython. Besides, _ofind is now far simpler,
4166 and it should also be quite a bit faster. Its use of inspect is
4169 and it should also be quite a bit faster. Its use of inspect is
4167 also safer, so perhaps some of the inspect-related crashes I've
4170 also safer, so perhaps some of the inspect-related crashes I've
4168 seen lately with Python 2.3 might be taken care of. That will
4171 seen lately with Python 2.3 might be taken care of. That will
4169 need more testing.
4172 need more testing.
4170
4173
4171 2003-08-17 Fernando Perez <fperez@colorado.edu>
4174 2003-08-17 Fernando Perez <fperez@colorado.edu>
4172
4175
4173 * IPython/iplib.py (InteractiveShell._prefilter): significant
4176 * IPython/iplib.py (InteractiveShell._prefilter): significant
4174 simplifications to the logic for handling user escapes. Faster
4177 simplifications to the logic for handling user escapes. Faster
4175 and simpler code.
4178 and simpler code.
4176
4179
4177 2003-08-14 Fernando Perez <fperez@colorado.edu>
4180 2003-08-14 Fernando Perez <fperez@colorado.edu>
4178
4181
4179 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4182 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4180 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4183 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4181 but it should be quite a bit faster. And the recursive version
4184 but it should be quite a bit faster. And the recursive version
4182 generated O(log N) intermediate storage for all rank>1 arrays,
4185 generated O(log N) intermediate storage for all rank>1 arrays,
4183 even if they were contiguous.
4186 even if they were contiguous.
4184 (l1norm): Added this function.
4187 (l1norm): Added this function.
4185 (norm): Added this function for arbitrary norms (including
4188 (norm): Added this function for arbitrary norms (including
4186 l-infinity). l1 and l2 are still special cases for convenience
4189 l-infinity). l1 and l2 are still special cases for convenience
4187 and speed.
4190 and speed.
4188
4191
4189 2003-08-03 Fernando Perez <fperez@colorado.edu>
4192 2003-08-03 Fernando Perez <fperez@colorado.edu>
4190
4193
4191 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4194 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4192 exceptions, which now raise PendingDeprecationWarnings in Python
4195 exceptions, which now raise PendingDeprecationWarnings in Python
4193 2.3. There were some in Magic and some in Gnuplot2.
4196 2.3. There were some in Magic and some in Gnuplot2.
4194
4197
4195 2003-06-30 Fernando Perez <fperez@colorado.edu>
4198 2003-06-30 Fernando Perez <fperez@colorado.edu>
4196
4199
4197 * IPython/genutils.py (page): modified to call curses only for
4200 * IPython/genutils.py (page): modified to call curses only for
4198 terminals where TERM=='xterm'. After problems under many other
4201 terminals where TERM=='xterm'. After problems under many other
4199 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4202 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4200
4203
4201 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4204 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4202 would be triggered when readline was absent. This was just an old
4205 would be triggered when readline was absent. This was just an old
4203 debugging statement I'd forgotten to take out.
4206 debugging statement I'd forgotten to take out.
4204
4207
4205 2003-06-20 Fernando Perez <fperez@colorado.edu>
4208 2003-06-20 Fernando Perez <fperez@colorado.edu>
4206
4209
4207 * IPython/genutils.py (clock): modified to return only user time
4210 * IPython/genutils.py (clock): modified to return only user time
4208 (not counting system time), after a discussion on scipy. While
4211 (not counting system time), after a discussion on scipy. While
4209 system time may be a useful quantity occasionally, it may much
4212 system time may be a useful quantity occasionally, it may much
4210 more easily be skewed by occasional swapping or other similar
4213 more easily be skewed by occasional swapping or other similar
4211 activity.
4214 activity.
4212
4215
4213 2003-06-05 Fernando Perez <fperez@colorado.edu>
4216 2003-06-05 Fernando Perez <fperez@colorado.edu>
4214
4217
4215 * IPython/numutils.py (identity): new function, for building
4218 * IPython/numutils.py (identity): new function, for building
4216 arbitrary rank Kronecker deltas (mostly backwards compatible with
4219 arbitrary rank Kronecker deltas (mostly backwards compatible with
4217 Numeric.identity)
4220 Numeric.identity)
4218
4221
4219 2003-06-03 Fernando Perez <fperez@colorado.edu>
4222 2003-06-03 Fernando Perez <fperez@colorado.edu>
4220
4223
4221 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4224 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4222 arguments passed to magics with spaces, to allow trailing '\' to
4225 arguments passed to magics with spaces, to allow trailing '\' to
4223 work normally (mainly for Windows users).
4226 work normally (mainly for Windows users).
4224
4227
4225 2003-05-29 Fernando Perez <fperez@colorado.edu>
4228 2003-05-29 Fernando Perez <fperez@colorado.edu>
4226
4229
4227 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4230 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4228 instead of pydoc.help. This fixes a bizarre behavior where
4231 instead of pydoc.help. This fixes a bizarre behavior where
4229 printing '%s' % locals() would trigger the help system. Now
4232 printing '%s' % locals() would trigger the help system. Now
4230 ipython behaves like normal python does.
4233 ipython behaves like normal python does.
4231
4234
4232 Note that if one does 'from pydoc import help', the bizarre
4235 Note that if one does 'from pydoc import help', the bizarre
4233 behavior returns, but this will also happen in normal python, so
4236 behavior returns, but this will also happen in normal python, so
4234 it's not an ipython bug anymore (it has to do with how pydoc.help
4237 it's not an ipython bug anymore (it has to do with how pydoc.help
4235 is implemented).
4238 is implemented).
4236
4239
4237 2003-05-22 Fernando Perez <fperez@colorado.edu>
4240 2003-05-22 Fernando Perez <fperez@colorado.edu>
4238
4241
4239 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4242 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4240 return [] instead of None when nothing matches, also match to end
4243 return [] instead of None when nothing matches, also match to end
4241 of line. Patch by Gary Bishop.
4244 of line. Patch by Gary Bishop.
4242
4245
4243 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4246 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4244 protection as before, for files passed on the command line. This
4247 protection as before, for files passed on the command line. This
4245 prevents the CrashHandler from kicking in if user files call into
4248 prevents the CrashHandler from kicking in if user files call into
4246 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4249 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4247 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4250 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4248
4251
4249 2003-05-20 *** Released version 0.4.0
4252 2003-05-20 *** Released version 0.4.0
4250
4253
4251 2003-05-20 Fernando Perez <fperez@colorado.edu>
4254 2003-05-20 Fernando Perez <fperez@colorado.edu>
4252
4255
4253 * setup.py: added support for manpages. It's a bit hackish b/c of
4256 * setup.py: added support for manpages. It's a bit hackish b/c of
4254 a bug in the way the bdist_rpm distutils target handles gzipped
4257 a bug in the way the bdist_rpm distutils target handles gzipped
4255 manpages, but it works. After a patch by Jack.
4258 manpages, but it works. After a patch by Jack.
4256
4259
4257 2003-05-19 Fernando Perez <fperez@colorado.edu>
4260 2003-05-19 Fernando Perez <fperez@colorado.edu>
4258
4261
4259 * IPython/numutils.py: added a mockup of the kinds module, since
4262 * IPython/numutils.py: added a mockup of the kinds module, since
4260 it was recently removed from Numeric. This way, numutils will
4263 it was recently removed from Numeric. This way, numutils will
4261 work for all users even if they are missing kinds.
4264 work for all users even if they are missing kinds.
4262
4265
4263 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4266 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4264 failure, which can occur with SWIG-wrapped extensions. After a
4267 failure, which can occur with SWIG-wrapped extensions. After a
4265 crash report from Prabhu.
4268 crash report from Prabhu.
4266
4269
4267 2003-05-16 Fernando Perez <fperez@colorado.edu>
4270 2003-05-16 Fernando Perez <fperez@colorado.edu>
4268
4271
4269 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4272 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4270 protect ipython from user code which may call directly
4273 protect ipython from user code which may call directly
4271 sys.excepthook (this looks like an ipython crash to the user, even
4274 sys.excepthook (this looks like an ipython crash to the user, even
4272 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4275 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4273 This is especially important to help users of WxWindows, but may
4276 This is especially important to help users of WxWindows, but may
4274 also be useful in other cases.
4277 also be useful in other cases.
4275
4278
4276 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4279 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4277 an optional tb_offset to be specified, and to preserve exception
4280 an optional tb_offset to be specified, and to preserve exception
4278 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4281 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4279
4282
4280 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4283 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4281
4284
4282 2003-05-15 Fernando Perez <fperez@colorado.edu>
4285 2003-05-15 Fernando Perez <fperez@colorado.edu>
4283
4286
4284 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4287 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4285 installing for a new user under Windows.
4288 installing for a new user under Windows.
4286
4289
4287 2003-05-12 Fernando Perez <fperez@colorado.edu>
4290 2003-05-12 Fernando Perez <fperez@colorado.edu>
4288
4291
4289 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4292 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4290 handler for Emacs comint-based lines. Currently it doesn't do
4293 handler for Emacs comint-based lines. Currently it doesn't do
4291 much (but importantly, it doesn't update the history cache). In
4294 much (but importantly, it doesn't update the history cache). In
4292 the future it may be expanded if Alex needs more functionality
4295 the future it may be expanded if Alex needs more functionality
4293 there.
4296 there.
4294
4297
4295 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4298 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4296 info to crash reports.
4299 info to crash reports.
4297
4300
4298 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4301 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4299 just like Python's -c. Also fixed crash with invalid -color
4302 just like Python's -c. Also fixed crash with invalid -color
4300 option value at startup. Thanks to Will French
4303 option value at startup. Thanks to Will French
4301 <wfrench-AT-bestweb.net> for the bug report.
4304 <wfrench-AT-bestweb.net> for the bug report.
4302
4305
4303 2003-05-09 Fernando Perez <fperez@colorado.edu>
4306 2003-05-09 Fernando Perez <fperez@colorado.edu>
4304
4307
4305 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4308 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4306 to EvalDict (it's a mapping, after all) and simplified its code
4309 to EvalDict (it's a mapping, after all) and simplified its code
4307 quite a bit, after a nice discussion on c.l.py where Gustavo
4310 quite a bit, after a nice discussion on c.l.py where Gustavo
4308 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4311 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4309
4312
4310 2003-04-30 Fernando Perez <fperez@colorado.edu>
4313 2003-04-30 Fernando Perez <fperez@colorado.edu>
4311
4314
4312 * IPython/genutils.py (timings_out): modified it to reduce its
4315 * IPython/genutils.py (timings_out): modified it to reduce its
4313 overhead in the common reps==1 case.
4316 overhead in the common reps==1 case.
4314
4317
4315 2003-04-29 Fernando Perez <fperez@colorado.edu>
4318 2003-04-29 Fernando Perez <fperez@colorado.edu>
4316
4319
4317 * IPython/genutils.py (timings_out): Modified to use the resource
4320 * IPython/genutils.py (timings_out): Modified to use the resource
4318 module, which avoids the wraparound problems of time.clock().
4321 module, which avoids the wraparound problems of time.clock().
4319
4322
4320 2003-04-17 *** Released version 0.2.15pre4
4323 2003-04-17 *** Released version 0.2.15pre4
4321
4324
4322 2003-04-17 Fernando Perez <fperez@colorado.edu>
4325 2003-04-17 Fernando Perez <fperez@colorado.edu>
4323
4326
4324 * setup.py (scriptfiles): Split windows-specific stuff over to a
4327 * setup.py (scriptfiles): Split windows-specific stuff over to a
4325 separate file, in an attempt to have a Windows GUI installer.
4328 separate file, in an attempt to have a Windows GUI installer.
4326 That didn't work, but part of the groundwork is done.
4329 That didn't work, but part of the groundwork is done.
4327
4330
4328 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4331 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4329 indent/unindent with 4 spaces. Particularly useful in combination
4332 indent/unindent with 4 spaces. Particularly useful in combination
4330 with the new auto-indent option.
4333 with the new auto-indent option.
4331
4334
4332 2003-04-16 Fernando Perez <fperez@colorado.edu>
4335 2003-04-16 Fernando Perez <fperez@colorado.edu>
4333
4336
4334 * IPython/Magic.py: various replacements of self.rc for
4337 * IPython/Magic.py: various replacements of self.rc for
4335 self.shell.rc. A lot more remains to be done to fully disentangle
4338 self.shell.rc. A lot more remains to be done to fully disentangle
4336 this class from the main Shell class.
4339 this class from the main Shell class.
4337
4340
4338 * IPython/GnuplotRuntime.py: added checks for mouse support so
4341 * IPython/GnuplotRuntime.py: added checks for mouse support so
4339 that we don't try to enable it if the current gnuplot doesn't
4342 that we don't try to enable it if the current gnuplot doesn't
4340 really support it. Also added checks so that we don't try to
4343 really support it. Also added checks so that we don't try to
4341 enable persist under Windows (where Gnuplot doesn't recognize the
4344 enable persist under Windows (where Gnuplot doesn't recognize the
4342 option).
4345 option).
4343
4346
4344 * IPython/iplib.py (InteractiveShell.interact): Added optional
4347 * IPython/iplib.py (InteractiveShell.interact): Added optional
4345 auto-indenting code, after a patch by King C. Shu
4348 auto-indenting code, after a patch by King C. Shu
4346 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4349 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4347 get along well with pasting indented code. If I ever figure out
4350 get along well with pasting indented code. If I ever figure out
4348 how to make that part go well, it will become on by default.
4351 how to make that part go well, it will become on by default.
4349
4352
4350 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4353 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4351 crash ipython if there was an unmatched '%' in the user's prompt
4354 crash ipython if there was an unmatched '%' in the user's prompt
4352 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4355 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4353
4356
4354 * IPython/iplib.py (InteractiveShell.interact): removed the
4357 * IPython/iplib.py (InteractiveShell.interact): removed the
4355 ability to ask the user whether he wants to crash or not at the
4358 ability to ask the user whether he wants to crash or not at the
4356 'last line' exception handler. Calling functions at that point
4359 'last line' exception handler. Calling functions at that point
4357 changes the stack, and the error reports would have incorrect
4360 changes the stack, and the error reports would have incorrect
4358 tracebacks.
4361 tracebacks.
4359
4362
4360 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4363 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4361 pass through a peger a pretty-printed form of any object. After a
4364 pass through a peger a pretty-printed form of any object. After a
4362 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4365 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4363
4366
4364 2003-04-14 Fernando Perez <fperez@colorado.edu>
4367 2003-04-14 Fernando Perez <fperez@colorado.edu>
4365
4368
4366 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4369 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4367 all files in ~ would be modified at first install (instead of
4370 all files in ~ would be modified at first install (instead of
4368 ~/.ipython). This could be potentially disastrous, as the
4371 ~/.ipython). This could be potentially disastrous, as the
4369 modification (make line-endings native) could damage binary files.
4372 modification (make line-endings native) could damage binary files.
4370
4373
4371 2003-04-10 Fernando Perez <fperez@colorado.edu>
4374 2003-04-10 Fernando Perez <fperez@colorado.edu>
4372
4375
4373 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4376 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4374 handle only lines which are invalid python. This now means that
4377 handle only lines which are invalid python. This now means that
4375 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4378 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4376 for the bug report.
4379 for the bug report.
4377
4380
4378 2003-04-01 Fernando Perez <fperez@colorado.edu>
4381 2003-04-01 Fernando Perez <fperez@colorado.edu>
4379
4382
4380 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4383 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4381 where failing to set sys.last_traceback would crash pdb.pm().
4384 where failing to set sys.last_traceback would crash pdb.pm().
4382 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4385 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4383 report.
4386 report.
4384
4387
4385 2003-03-25 Fernando Perez <fperez@colorado.edu>
4388 2003-03-25 Fernando Perez <fperez@colorado.edu>
4386
4389
4387 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4390 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4388 before printing it (it had a lot of spurious blank lines at the
4391 before printing it (it had a lot of spurious blank lines at the
4389 end).
4392 end).
4390
4393
4391 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4394 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4392 output would be sent 21 times! Obviously people don't use this
4395 output would be sent 21 times! Obviously people don't use this
4393 too often, or I would have heard about it.
4396 too often, or I would have heard about it.
4394
4397
4395 2003-03-24 Fernando Perez <fperez@colorado.edu>
4398 2003-03-24 Fernando Perez <fperez@colorado.edu>
4396
4399
4397 * setup.py (scriptfiles): renamed the data_files parameter from
4400 * setup.py (scriptfiles): renamed the data_files parameter from
4398 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4401 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4399 for the patch.
4402 for the patch.
4400
4403
4401 2003-03-20 Fernando Perez <fperez@colorado.edu>
4404 2003-03-20 Fernando Perez <fperez@colorado.edu>
4402
4405
4403 * IPython/genutils.py (error): added error() and fatal()
4406 * IPython/genutils.py (error): added error() and fatal()
4404 functions.
4407 functions.
4405
4408
4406 2003-03-18 *** Released version 0.2.15pre3
4409 2003-03-18 *** Released version 0.2.15pre3
4407
4410
4408 2003-03-18 Fernando Perez <fperez@colorado.edu>
4411 2003-03-18 Fernando Perez <fperez@colorado.edu>
4409
4412
4410 * setupext/install_data_ext.py
4413 * setupext/install_data_ext.py
4411 (install_data_ext.initialize_options): Class contributed by Jack
4414 (install_data_ext.initialize_options): Class contributed by Jack
4412 Moffit for fixing the old distutils hack. He is sending this to
4415 Moffit for fixing the old distutils hack. He is sending this to
4413 the distutils folks so in the future we may not need it as a
4416 the distutils folks so in the future we may not need it as a
4414 private fix.
4417 private fix.
4415
4418
4416 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4419 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4417 changes for Debian packaging. See his patch for full details.
4420 changes for Debian packaging. See his patch for full details.
4418 The old distutils hack of making the ipythonrc* files carry a
4421 The old distutils hack of making the ipythonrc* files carry a
4419 bogus .py extension is gone, at last. Examples were moved to a
4422 bogus .py extension is gone, at last. Examples were moved to a
4420 separate subdir under doc/, and the separate executable scripts
4423 separate subdir under doc/, and the separate executable scripts
4421 now live in their own directory. Overall a great cleanup. The
4424 now live in their own directory. Overall a great cleanup. The
4422 manual was updated to use the new files, and setup.py has been
4425 manual was updated to use the new files, and setup.py has been
4423 fixed for this setup.
4426 fixed for this setup.
4424
4427
4425 * IPython/PyColorize.py (Parser.usage): made non-executable and
4428 * IPython/PyColorize.py (Parser.usage): made non-executable and
4426 created a pycolor wrapper around it to be included as a script.
4429 created a pycolor wrapper around it to be included as a script.
4427
4430
4428 2003-03-12 *** Released version 0.2.15pre2
4431 2003-03-12 *** Released version 0.2.15pre2
4429
4432
4430 2003-03-12 Fernando Perez <fperez@colorado.edu>
4433 2003-03-12 Fernando Perez <fperez@colorado.edu>
4431
4434
4432 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4435 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4433 long-standing problem with garbage characters in some terminals.
4436 long-standing problem with garbage characters in some terminals.
4434 The issue was really that the \001 and \002 escapes must _only_ be
4437 The issue was really that the \001 and \002 escapes must _only_ be
4435 passed to input prompts (which call readline), but _never_ to
4438 passed to input prompts (which call readline), but _never_ to
4436 normal text to be printed on screen. I changed ColorANSI to have
4439 normal text to be printed on screen. I changed ColorANSI to have
4437 two classes: TermColors and InputTermColors, each with the
4440 two classes: TermColors and InputTermColors, each with the
4438 appropriate escapes for input prompts or normal text. The code in
4441 appropriate escapes for input prompts or normal text. The code in
4439 Prompts.py got slightly more complicated, but this very old and
4442 Prompts.py got slightly more complicated, but this very old and
4440 annoying bug is finally fixed.
4443 annoying bug is finally fixed.
4441
4444
4442 All the credit for nailing down the real origin of this problem
4445 All the credit for nailing down the real origin of this problem
4443 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4446 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4444 *Many* thanks to him for spending quite a bit of effort on this.
4447 *Many* thanks to him for spending quite a bit of effort on this.
4445
4448
4446 2003-03-05 *** Released version 0.2.15pre1
4449 2003-03-05 *** Released version 0.2.15pre1
4447
4450
4448 2003-03-03 Fernando Perez <fperez@colorado.edu>
4451 2003-03-03 Fernando Perez <fperez@colorado.edu>
4449
4452
4450 * IPython/FakeModule.py: Moved the former _FakeModule to a
4453 * IPython/FakeModule.py: Moved the former _FakeModule to a
4451 separate file, because it's also needed by Magic (to fix a similar
4454 separate file, because it's also needed by Magic (to fix a similar
4452 pickle-related issue in @run).
4455 pickle-related issue in @run).
4453
4456
4454 2003-03-02 Fernando Perez <fperez@colorado.edu>
4457 2003-03-02 Fernando Perez <fperez@colorado.edu>
4455
4458
4456 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4459 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4457 the autocall option at runtime.
4460 the autocall option at runtime.
4458 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4461 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4459 across Magic.py to start separating Magic from InteractiveShell.
4462 across Magic.py to start separating Magic from InteractiveShell.
4460 (Magic._ofind): Fixed to return proper namespace for dotted
4463 (Magic._ofind): Fixed to return proper namespace for dotted
4461 names. Before, a dotted name would always return 'not currently
4464 names. Before, a dotted name would always return 'not currently
4462 defined', because it would find the 'parent'. s.x would be found,
4465 defined', because it would find the 'parent'. s.x would be found,
4463 but since 'x' isn't defined by itself, it would get confused.
4466 but since 'x' isn't defined by itself, it would get confused.
4464 (Magic.magic_run): Fixed pickling problems reported by Ralf
4467 (Magic.magic_run): Fixed pickling problems reported by Ralf
4465 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4468 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4466 that I'd used when Mike Heeter reported similar issues at the
4469 that I'd used when Mike Heeter reported similar issues at the
4467 top-level, but now for @run. It boils down to injecting the
4470 top-level, but now for @run. It boils down to injecting the
4468 namespace where code is being executed with something that looks
4471 namespace where code is being executed with something that looks
4469 enough like a module to fool pickle.dump(). Since a pickle stores
4472 enough like a module to fool pickle.dump(). Since a pickle stores
4470 a named reference to the importing module, we need this for
4473 a named reference to the importing module, we need this for
4471 pickles to save something sensible.
4474 pickles to save something sensible.
4472
4475
4473 * IPython/ipmaker.py (make_IPython): added an autocall option.
4476 * IPython/ipmaker.py (make_IPython): added an autocall option.
4474
4477
4475 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4478 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4476 the auto-eval code. Now autocalling is an option, and the code is
4479 the auto-eval code. Now autocalling is an option, and the code is
4477 also vastly safer. There is no more eval() involved at all.
4480 also vastly safer. There is no more eval() involved at all.
4478
4481
4479 2003-03-01 Fernando Perez <fperez@colorado.edu>
4482 2003-03-01 Fernando Perez <fperez@colorado.edu>
4480
4483
4481 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4484 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4482 dict with named keys instead of a tuple.
4485 dict with named keys instead of a tuple.
4483
4486
4484 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4487 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4485
4488
4486 * setup.py (make_shortcut): Fixed message about directories
4489 * setup.py (make_shortcut): Fixed message about directories
4487 created during Windows installation (the directories were ok, just
4490 created during Windows installation (the directories were ok, just
4488 the printed message was misleading). Thanks to Chris Liechti
4491 the printed message was misleading). Thanks to Chris Liechti
4489 <cliechti-AT-gmx.net> for the heads up.
4492 <cliechti-AT-gmx.net> for the heads up.
4490
4493
4491 2003-02-21 Fernando Perez <fperez@colorado.edu>
4494 2003-02-21 Fernando Perez <fperez@colorado.edu>
4492
4495
4493 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4496 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4494 of ValueError exception when checking for auto-execution. This
4497 of ValueError exception when checking for auto-execution. This
4495 one is raised by things like Numeric arrays arr.flat when the
4498 one is raised by things like Numeric arrays arr.flat when the
4496 array is non-contiguous.
4499 array is non-contiguous.
4497
4500
4498 2003-01-31 Fernando Perez <fperez@colorado.edu>
4501 2003-01-31 Fernando Perez <fperez@colorado.edu>
4499
4502
4500 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4503 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4501 not return any value at all (even though the command would get
4504 not return any value at all (even though the command would get
4502 executed).
4505 executed).
4503 (xsys): Flush stdout right after printing the command to ensure
4506 (xsys): Flush stdout right after printing the command to ensure
4504 proper ordering of commands and command output in the total
4507 proper ordering of commands and command output in the total
4505 output.
4508 output.
4506 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4509 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4507 system/getoutput as defaults. The old ones are kept for
4510 system/getoutput as defaults. The old ones are kept for
4508 compatibility reasons, so no code which uses this library needs
4511 compatibility reasons, so no code which uses this library needs
4509 changing.
4512 changing.
4510
4513
4511 2003-01-27 *** Released version 0.2.14
4514 2003-01-27 *** Released version 0.2.14
4512
4515
4513 2003-01-25 Fernando Perez <fperez@colorado.edu>
4516 2003-01-25 Fernando Perez <fperez@colorado.edu>
4514
4517
4515 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4518 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4516 functions defined in previous edit sessions could not be re-edited
4519 functions defined in previous edit sessions could not be re-edited
4517 (because the temp files were immediately removed). Now temp files
4520 (because the temp files were immediately removed). Now temp files
4518 are removed only at IPython's exit.
4521 are removed only at IPython's exit.
4519 (Magic.magic_run): Improved @run to perform shell-like expansions
4522 (Magic.magic_run): Improved @run to perform shell-like expansions
4520 on its arguments (~users and $VARS). With this, @run becomes more
4523 on its arguments (~users and $VARS). With this, @run becomes more
4521 like a normal command-line.
4524 like a normal command-line.
4522
4525
4523 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4526 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4524 bugs related to embedding and cleaned up that code. A fairly
4527 bugs related to embedding and cleaned up that code. A fairly
4525 important one was the impossibility to access the global namespace
4528 important one was the impossibility to access the global namespace
4526 through the embedded IPython (only local variables were visible).
4529 through the embedded IPython (only local variables were visible).
4527
4530
4528 2003-01-14 Fernando Perez <fperez@colorado.edu>
4531 2003-01-14 Fernando Perez <fperez@colorado.edu>
4529
4532
4530 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4533 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4531 auto-calling to be a bit more conservative. Now it doesn't get
4534 auto-calling to be a bit more conservative. Now it doesn't get
4532 triggered if any of '!=()<>' are in the rest of the input line, to
4535 triggered if any of '!=()<>' are in the rest of the input line, to
4533 allow comparing callables. Thanks to Alex for the heads up.
4536 allow comparing callables. Thanks to Alex for the heads up.
4534
4537
4535 2003-01-07 Fernando Perez <fperez@colorado.edu>
4538 2003-01-07 Fernando Perez <fperez@colorado.edu>
4536
4539
4537 * IPython/genutils.py (page): fixed estimation of the number of
4540 * IPython/genutils.py (page): fixed estimation of the number of
4538 lines in a string to be paged to simply count newlines. This
4541 lines in a string to be paged to simply count newlines. This
4539 prevents over-guessing due to embedded escape sequences. A better
4542 prevents over-guessing due to embedded escape sequences. A better
4540 long-term solution would involve stripping out the control chars
4543 long-term solution would involve stripping out the control chars
4541 for the count, but it's potentially so expensive I just don't
4544 for the count, but it's potentially so expensive I just don't
4542 think it's worth doing.
4545 think it's worth doing.
4543
4546
4544 2002-12-19 *** Released version 0.2.14pre50
4547 2002-12-19 *** Released version 0.2.14pre50
4545
4548
4546 2002-12-19 Fernando Perez <fperez@colorado.edu>
4549 2002-12-19 Fernando Perez <fperez@colorado.edu>
4547
4550
4548 * tools/release (version): Changed release scripts to inform
4551 * tools/release (version): Changed release scripts to inform
4549 Andrea and build a NEWS file with a list of recent changes.
4552 Andrea and build a NEWS file with a list of recent changes.
4550
4553
4551 * IPython/ColorANSI.py (__all__): changed terminal detection
4554 * IPython/ColorANSI.py (__all__): changed terminal detection
4552 code. Seems to work better for xterms without breaking
4555 code. Seems to work better for xterms without breaking
4553 konsole. Will need more testing to determine if WinXP and Mac OSX
4556 konsole. Will need more testing to determine if WinXP and Mac OSX
4554 also work ok.
4557 also work ok.
4555
4558
4556 2002-12-18 *** Released version 0.2.14pre49
4559 2002-12-18 *** Released version 0.2.14pre49
4557
4560
4558 2002-12-18 Fernando Perez <fperez@colorado.edu>
4561 2002-12-18 Fernando Perez <fperez@colorado.edu>
4559
4562
4560 * Docs: added new info about Mac OSX, from Andrea.
4563 * Docs: added new info about Mac OSX, from Andrea.
4561
4564
4562 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4565 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4563 allow direct plotting of python strings whose format is the same
4566 allow direct plotting of python strings whose format is the same
4564 of gnuplot data files.
4567 of gnuplot data files.
4565
4568
4566 2002-12-16 Fernando Perez <fperez@colorado.edu>
4569 2002-12-16 Fernando Perez <fperez@colorado.edu>
4567
4570
4568 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4571 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4569 value of exit question to be acknowledged.
4572 value of exit question to be acknowledged.
4570
4573
4571 2002-12-03 Fernando Perez <fperez@colorado.edu>
4574 2002-12-03 Fernando Perez <fperez@colorado.edu>
4572
4575
4573 * IPython/ipmaker.py: removed generators, which had been added
4576 * IPython/ipmaker.py: removed generators, which had been added
4574 by mistake in an earlier debugging run. This was causing trouble
4577 by mistake in an earlier debugging run. This was causing trouble
4575 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4578 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4576 for pointing this out.
4579 for pointing this out.
4577
4580
4578 2002-11-17 Fernando Perez <fperez@colorado.edu>
4581 2002-11-17 Fernando Perez <fperez@colorado.edu>
4579
4582
4580 * Manual: updated the Gnuplot section.
4583 * Manual: updated the Gnuplot section.
4581
4584
4582 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4585 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4583 a much better split of what goes in Runtime and what goes in
4586 a much better split of what goes in Runtime and what goes in
4584 Interactive.
4587 Interactive.
4585
4588
4586 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4589 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4587 being imported from iplib.
4590 being imported from iplib.
4588
4591
4589 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4592 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4590 for command-passing. Now the global Gnuplot instance is called
4593 for command-passing. Now the global Gnuplot instance is called
4591 'gp' instead of 'g', which was really a far too fragile and
4594 'gp' instead of 'g', which was really a far too fragile and
4592 common name.
4595 common name.
4593
4596
4594 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4597 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4595 bounding boxes generated by Gnuplot for square plots.
4598 bounding boxes generated by Gnuplot for square plots.
4596
4599
4597 * IPython/genutils.py (popkey): new function added. I should
4600 * IPython/genutils.py (popkey): new function added. I should
4598 suggest this on c.l.py as a dict method, it seems useful.
4601 suggest this on c.l.py as a dict method, it seems useful.
4599
4602
4600 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4603 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4601 to transparently handle PostScript generation. MUCH better than
4604 to transparently handle PostScript generation. MUCH better than
4602 the previous plot_eps/replot_eps (which I removed now). The code
4605 the previous plot_eps/replot_eps (which I removed now). The code
4603 is also fairly clean and well documented now (including
4606 is also fairly clean and well documented now (including
4604 docstrings).
4607 docstrings).
4605
4608
4606 2002-11-13 Fernando Perez <fperez@colorado.edu>
4609 2002-11-13 Fernando Perez <fperez@colorado.edu>
4607
4610
4608 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4611 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4609 (inconsistent with options).
4612 (inconsistent with options).
4610
4613
4611 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4614 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4612 manually disabled, I don't know why. Fixed it.
4615 manually disabled, I don't know why. Fixed it.
4613 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4616 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4614 eps output.
4617 eps output.
4615
4618
4616 2002-11-12 Fernando Perez <fperez@colorado.edu>
4619 2002-11-12 Fernando Perez <fperez@colorado.edu>
4617
4620
4618 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4621 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4619 don't propagate up to caller. Fixes crash reported by François
4622 don't propagate up to caller. Fixes crash reported by François
4620 Pinard.
4623 Pinard.
4621
4624
4622 2002-11-09 Fernando Perez <fperez@colorado.edu>
4625 2002-11-09 Fernando Perez <fperez@colorado.edu>
4623
4626
4624 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4627 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4625 history file for new users.
4628 history file for new users.
4626 (make_IPython): fixed bug where initial install would leave the
4629 (make_IPython): fixed bug where initial install would leave the
4627 user running in the .ipython dir.
4630 user running in the .ipython dir.
4628 (make_IPython): fixed bug where config dir .ipython would be
4631 (make_IPython): fixed bug where config dir .ipython would be
4629 created regardless of the given -ipythondir option. Thanks to Cory
4632 created regardless of the given -ipythondir option. Thanks to Cory
4630 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4633 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4631
4634
4632 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4635 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4633 type confirmations. Will need to use it in all of IPython's code
4636 type confirmations. Will need to use it in all of IPython's code
4634 consistently.
4637 consistently.
4635
4638
4636 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4639 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4637 context to print 31 lines instead of the default 5. This will make
4640 context to print 31 lines instead of the default 5. This will make
4638 the crash reports extremely detailed in case the problem is in
4641 the crash reports extremely detailed in case the problem is in
4639 libraries I don't have access to.
4642 libraries I don't have access to.
4640
4643
4641 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4644 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4642 line of defense' code to still crash, but giving users fair
4645 line of defense' code to still crash, but giving users fair
4643 warning. I don't want internal errors to go unreported: if there's
4646 warning. I don't want internal errors to go unreported: if there's
4644 an internal problem, IPython should crash and generate a full
4647 an internal problem, IPython should crash and generate a full
4645 report.
4648 report.
4646
4649
4647 2002-11-08 Fernando Perez <fperez@colorado.edu>
4650 2002-11-08 Fernando Perez <fperez@colorado.edu>
4648
4651
4649 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4652 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4650 otherwise uncaught exceptions which can appear if people set
4653 otherwise uncaught exceptions which can appear if people set
4651 sys.stdout to something badly broken. Thanks to a crash report
4654 sys.stdout to something badly broken. Thanks to a crash report
4652 from henni-AT-mail.brainbot.com.
4655 from henni-AT-mail.brainbot.com.
4653
4656
4654 2002-11-04 Fernando Perez <fperez@colorado.edu>
4657 2002-11-04 Fernando Perez <fperez@colorado.edu>
4655
4658
4656 * IPython/iplib.py (InteractiveShell.interact): added
4659 * IPython/iplib.py (InteractiveShell.interact): added
4657 __IPYTHON__active to the builtins. It's a flag which goes on when
4660 __IPYTHON__active to the builtins. It's a flag which goes on when
4658 the interaction starts and goes off again when it stops. This
4661 the interaction starts and goes off again when it stops. This
4659 allows embedding code to detect being inside IPython. Before this
4662 allows embedding code to detect being inside IPython. Before this
4660 was done via __IPYTHON__, but that only shows that an IPython
4663 was done via __IPYTHON__, but that only shows that an IPython
4661 instance has been created.
4664 instance has been created.
4662
4665
4663 * IPython/Magic.py (Magic.magic_env): I realized that in a
4666 * IPython/Magic.py (Magic.magic_env): I realized that in a
4664 UserDict, instance.data holds the data as a normal dict. So I
4667 UserDict, instance.data holds the data as a normal dict. So I
4665 modified @env to return os.environ.data instead of rebuilding a
4668 modified @env to return os.environ.data instead of rebuilding a
4666 dict by hand.
4669 dict by hand.
4667
4670
4668 2002-11-02 Fernando Perez <fperez@colorado.edu>
4671 2002-11-02 Fernando Perez <fperez@colorado.edu>
4669
4672
4670 * IPython/genutils.py (warn): changed so that level 1 prints no
4673 * IPython/genutils.py (warn): changed so that level 1 prints no
4671 header. Level 2 is now the default (with 'WARNING' header, as
4674 header. Level 2 is now the default (with 'WARNING' header, as
4672 before). I think I tracked all places where changes were needed in
4675 before). I think I tracked all places where changes were needed in
4673 IPython, but outside code using the old level numbering may have
4676 IPython, but outside code using the old level numbering may have
4674 broken.
4677 broken.
4675
4678
4676 * IPython/iplib.py (InteractiveShell.runcode): added this to
4679 * IPython/iplib.py (InteractiveShell.runcode): added this to
4677 handle the tracebacks in SystemExit traps correctly. The previous
4680 handle the tracebacks in SystemExit traps correctly. The previous
4678 code (through interact) was printing more of the stack than
4681 code (through interact) was printing more of the stack than
4679 necessary, showing IPython internal code to the user.
4682 necessary, showing IPython internal code to the user.
4680
4683
4681 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4684 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4682 default. Now that the default at the confirmation prompt is yes,
4685 default. Now that the default at the confirmation prompt is yes,
4683 it's not so intrusive. François' argument that ipython sessions
4686 it's not so intrusive. François' argument that ipython sessions
4684 tend to be complex enough not to lose them from an accidental C-d,
4687 tend to be complex enough not to lose them from an accidental C-d,
4685 is a valid one.
4688 is a valid one.
4686
4689
4687 * IPython/iplib.py (InteractiveShell.interact): added a
4690 * IPython/iplib.py (InteractiveShell.interact): added a
4688 showtraceback() call to the SystemExit trap, and modified the exit
4691 showtraceback() call to the SystemExit trap, and modified the exit
4689 confirmation to have yes as the default.
4692 confirmation to have yes as the default.
4690
4693
4691 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4694 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4692 this file. It's been gone from the code for a long time, this was
4695 this file. It's been gone from the code for a long time, this was
4693 simply leftover junk.
4696 simply leftover junk.
4694
4697
4695 2002-11-01 Fernando Perez <fperez@colorado.edu>
4698 2002-11-01 Fernando Perez <fperez@colorado.edu>
4696
4699
4697 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4700 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4698 added. If set, IPython now traps EOF and asks for
4701 added. If set, IPython now traps EOF and asks for
4699 confirmation. After a request by François Pinard.
4702 confirmation. After a request by François Pinard.
4700
4703
4701 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4704 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4702 of @abort, and with a new (better) mechanism for handling the
4705 of @abort, and with a new (better) mechanism for handling the
4703 exceptions.
4706 exceptions.
4704
4707
4705 2002-10-27 Fernando Perez <fperez@colorado.edu>
4708 2002-10-27 Fernando Perez <fperez@colorado.edu>
4706
4709
4707 * IPython/usage.py (__doc__): updated the --help information and
4710 * IPython/usage.py (__doc__): updated the --help information and
4708 the ipythonrc file to indicate that -log generates
4711 the ipythonrc file to indicate that -log generates
4709 ./ipython.log. Also fixed the corresponding info in @logstart.
4712 ./ipython.log. Also fixed the corresponding info in @logstart.
4710 This and several other fixes in the manuals thanks to reports by
4713 This and several other fixes in the manuals thanks to reports by
4711 François Pinard <pinard-AT-iro.umontreal.ca>.
4714 François Pinard <pinard-AT-iro.umontreal.ca>.
4712
4715
4713 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4716 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4714 refer to @logstart (instead of @log, which doesn't exist).
4717 refer to @logstart (instead of @log, which doesn't exist).
4715
4718
4716 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4719 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4717 AttributeError crash. Thanks to Christopher Armstrong
4720 AttributeError crash. Thanks to Christopher Armstrong
4718 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4721 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4719 introduced recently (in 0.2.14pre37) with the fix to the eval
4722 introduced recently (in 0.2.14pre37) with the fix to the eval
4720 problem mentioned below.
4723 problem mentioned below.
4721
4724
4722 2002-10-17 Fernando Perez <fperez@colorado.edu>
4725 2002-10-17 Fernando Perez <fperez@colorado.edu>
4723
4726
4724 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4727 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4725 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4728 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4726
4729
4727 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4730 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4728 this function to fix a problem reported by Alex Schmolck. He saw
4731 this function to fix a problem reported by Alex Schmolck. He saw
4729 it with list comprehensions and generators, which were getting
4732 it with list comprehensions and generators, which were getting
4730 called twice. The real problem was an 'eval' call in testing for
4733 called twice. The real problem was an 'eval' call in testing for
4731 automagic which was evaluating the input line silently.
4734 automagic which was evaluating the input line silently.
4732
4735
4733 This is a potentially very nasty bug, if the input has side
4736 This is a potentially very nasty bug, if the input has side
4734 effects which must not be repeated. The code is much cleaner now,
4737 effects which must not be repeated. The code is much cleaner now,
4735 without any blanket 'except' left and with a regexp test for
4738 without any blanket 'except' left and with a regexp test for
4736 actual function names.
4739 actual function names.
4737
4740
4738 But an eval remains, which I'm not fully comfortable with. I just
4741 But an eval remains, which I'm not fully comfortable with. I just
4739 don't know how to find out if an expression could be a callable in
4742 don't know how to find out if an expression could be a callable in
4740 the user's namespace without doing an eval on the string. However
4743 the user's namespace without doing an eval on the string. However
4741 that string is now much more strictly checked so that no code
4744 that string is now much more strictly checked so that no code
4742 slips by, so the eval should only happen for things that can
4745 slips by, so the eval should only happen for things that can
4743 really be only function/method names.
4746 really be only function/method names.
4744
4747
4745 2002-10-15 Fernando Perez <fperez@colorado.edu>
4748 2002-10-15 Fernando Perez <fperez@colorado.edu>
4746
4749
4747 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4750 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4748 OSX information to main manual, removed README_Mac_OSX file from
4751 OSX information to main manual, removed README_Mac_OSX file from
4749 distribution. Also updated credits for recent additions.
4752 distribution. Also updated credits for recent additions.
4750
4753
4751 2002-10-10 Fernando Perez <fperez@colorado.edu>
4754 2002-10-10 Fernando Perez <fperez@colorado.edu>
4752
4755
4753 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4756 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4754 terminal-related issues. Many thanks to Andrea Riciputi
4757 terminal-related issues. Many thanks to Andrea Riciputi
4755 <andrea.riciputi-AT-libero.it> for writing it.
4758 <andrea.riciputi-AT-libero.it> for writing it.
4756
4759
4757 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4760 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4758 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4761 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4759
4762
4760 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4763 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4761 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4764 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4762 <syver-en-AT-online.no> who both submitted patches for this problem.
4765 <syver-en-AT-online.no> who both submitted patches for this problem.
4763
4766
4764 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4767 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4765 global embedding to make sure that things don't overwrite user
4768 global embedding to make sure that things don't overwrite user
4766 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4769 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4767
4770
4768 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4771 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4769 compatibility. Thanks to Hayden Callow
4772 compatibility. Thanks to Hayden Callow
4770 <h.callow-AT-elec.canterbury.ac.nz>
4773 <h.callow-AT-elec.canterbury.ac.nz>
4771
4774
4772 2002-10-04 Fernando Perez <fperez@colorado.edu>
4775 2002-10-04 Fernando Perez <fperez@colorado.edu>
4773
4776
4774 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4777 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4775 Gnuplot.File objects.
4778 Gnuplot.File objects.
4776
4779
4777 2002-07-23 Fernando Perez <fperez@colorado.edu>
4780 2002-07-23 Fernando Perez <fperez@colorado.edu>
4778
4781
4779 * IPython/genutils.py (timing): Added timings() and timing() for
4782 * IPython/genutils.py (timing): Added timings() and timing() for
4780 quick access to the most commonly needed data, the execution
4783 quick access to the most commonly needed data, the execution
4781 times. Old timing() renamed to timings_out().
4784 times. Old timing() renamed to timings_out().
4782
4785
4783 2002-07-18 Fernando Perez <fperez@colorado.edu>
4786 2002-07-18 Fernando Perez <fperez@colorado.edu>
4784
4787
4785 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4788 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4786 bug with nested instances disrupting the parent's tab completion.
4789 bug with nested instances disrupting the parent's tab completion.
4787
4790
4788 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4791 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4789 all_completions code to begin the emacs integration.
4792 all_completions code to begin the emacs integration.
4790
4793
4791 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4794 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4792 argument to allow titling individual arrays when plotting.
4795 argument to allow titling individual arrays when plotting.
4793
4796
4794 2002-07-15 Fernando Perez <fperez@colorado.edu>
4797 2002-07-15 Fernando Perez <fperez@colorado.edu>
4795
4798
4796 * setup.py (make_shortcut): changed to retrieve the value of
4799 * setup.py (make_shortcut): changed to retrieve the value of
4797 'Program Files' directory from the registry (this value changes in
4800 'Program Files' directory from the registry (this value changes in
4798 non-english versions of Windows). Thanks to Thomas Fanslau
4801 non-english versions of Windows). Thanks to Thomas Fanslau
4799 <tfanslau-AT-gmx.de> for the report.
4802 <tfanslau-AT-gmx.de> for the report.
4800
4803
4801 2002-07-10 Fernando Perez <fperez@colorado.edu>
4804 2002-07-10 Fernando Perez <fperez@colorado.edu>
4802
4805
4803 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4806 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4804 a bug in pdb, which crashes if a line with only whitespace is
4807 a bug in pdb, which crashes if a line with only whitespace is
4805 entered. Bug report submitted to sourceforge.
4808 entered. Bug report submitted to sourceforge.
4806
4809
4807 2002-07-09 Fernando Perez <fperez@colorado.edu>
4810 2002-07-09 Fernando Perez <fperez@colorado.edu>
4808
4811
4809 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4812 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4810 reporting exceptions (it's a bug in inspect.py, I just set a
4813 reporting exceptions (it's a bug in inspect.py, I just set a
4811 workaround).
4814 workaround).
4812
4815
4813 2002-07-08 Fernando Perez <fperez@colorado.edu>
4816 2002-07-08 Fernando Perez <fperez@colorado.edu>
4814
4817
4815 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4818 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4816 __IPYTHON__ in __builtins__ to show up in user_ns.
4819 __IPYTHON__ in __builtins__ to show up in user_ns.
4817
4820
4818 2002-07-03 Fernando Perez <fperez@colorado.edu>
4821 2002-07-03 Fernando Perez <fperez@colorado.edu>
4819
4822
4820 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4823 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4821 name from @gp_set_instance to @gp_set_default.
4824 name from @gp_set_instance to @gp_set_default.
4822
4825
4823 * IPython/ipmaker.py (make_IPython): default editor value set to
4826 * IPython/ipmaker.py (make_IPython): default editor value set to
4824 '0' (a string), to match the rc file. Otherwise will crash when
4827 '0' (a string), to match the rc file. Otherwise will crash when
4825 .strip() is called on it.
4828 .strip() is called on it.
4826
4829
4827
4830
4828 2002-06-28 Fernando Perez <fperez@colorado.edu>
4831 2002-06-28 Fernando Perez <fperez@colorado.edu>
4829
4832
4830 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4833 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4831 of files in current directory when a file is executed via
4834 of files in current directory when a file is executed via
4832 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4835 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4833
4836
4834 * setup.py (manfiles): fix for rpm builds, submitted by RA
4837 * setup.py (manfiles): fix for rpm builds, submitted by RA
4835 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4838 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4836
4839
4837 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4840 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4838 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4841 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4839 string!). A. Schmolck caught this one.
4842 string!). A. Schmolck caught this one.
4840
4843
4841 2002-06-27 Fernando Perez <fperez@colorado.edu>
4844 2002-06-27 Fernando Perez <fperez@colorado.edu>
4842
4845
4843 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4846 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4844 defined files at the cmd line. __name__ wasn't being set to
4847 defined files at the cmd line. __name__ wasn't being set to
4845 __main__.
4848 __main__.
4846
4849
4847 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4850 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4848 regular lists and tuples besides Numeric arrays.
4851 regular lists and tuples besides Numeric arrays.
4849
4852
4850 * IPython/Prompts.py (CachedOutput.__call__): Added output
4853 * IPython/Prompts.py (CachedOutput.__call__): Added output
4851 supression for input ending with ';'. Similar to Mathematica and
4854 supression for input ending with ';'. Similar to Mathematica and
4852 Matlab. The _* vars and Out[] list are still updated, just like
4855 Matlab. The _* vars and Out[] list are still updated, just like
4853 Mathematica behaves.
4856 Mathematica behaves.
4854
4857
4855 2002-06-25 Fernando Perez <fperez@colorado.edu>
4858 2002-06-25 Fernando Perez <fperez@colorado.edu>
4856
4859
4857 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4860 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4858 .ini extensions for profiels under Windows.
4861 .ini extensions for profiels under Windows.
4859
4862
4860 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4863 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4861 string form. Fix contributed by Alexander Schmolck
4864 string form. Fix contributed by Alexander Schmolck
4862 <a.schmolck-AT-gmx.net>
4865 <a.schmolck-AT-gmx.net>
4863
4866
4864 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4867 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4865 pre-configured Gnuplot instance.
4868 pre-configured Gnuplot instance.
4866
4869
4867 2002-06-21 Fernando Perez <fperez@colorado.edu>
4870 2002-06-21 Fernando Perez <fperez@colorado.edu>
4868
4871
4869 * IPython/numutils.py (exp_safe): new function, works around the
4872 * IPython/numutils.py (exp_safe): new function, works around the
4870 underflow problems in Numeric.
4873 underflow problems in Numeric.
4871 (log2): New fn. Safe log in base 2: returns exact integer answer
4874 (log2): New fn. Safe log in base 2: returns exact integer answer
4872 for exact integer powers of 2.
4875 for exact integer powers of 2.
4873
4876
4874 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4877 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4875 properly.
4878 properly.
4876
4879
4877 2002-06-20 Fernando Perez <fperez@colorado.edu>
4880 2002-06-20 Fernando Perez <fperez@colorado.edu>
4878
4881
4879 * IPython/genutils.py (timing): new function like
4882 * IPython/genutils.py (timing): new function like
4880 Mathematica's. Similar to time_test, but returns more info.
4883 Mathematica's. Similar to time_test, but returns more info.
4881
4884
4882 2002-06-18 Fernando Perez <fperez@colorado.edu>
4885 2002-06-18 Fernando Perez <fperez@colorado.edu>
4883
4886
4884 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4887 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4885 according to Mike Heeter's suggestions.
4888 according to Mike Heeter's suggestions.
4886
4889
4887 2002-06-16 Fernando Perez <fperez@colorado.edu>
4890 2002-06-16 Fernando Perez <fperez@colorado.edu>
4888
4891
4889 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4892 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4890 system. GnuplotMagic is gone as a user-directory option. New files
4893 system. GnuplotMagic is gone as a user-directory option. New files
4891 make it easier to use all the gnuplot stuff both from external
4894 make it easier to use all the gnuplot stuff both from external
4892 programs as well as from IPython. Had to rewrite part of
4895 programs as well as from IPython. Had to rewrite part of
4893 hardcopy() b/c of a strange bug: often the ps files simply don't
4896 hardcopy() b/c of a strange bug: often the ps files simply don't
4894 get created, and require a repeat of the command (often several
4897 get created, and require a repeat of the command (often several
4895 times).
4898 times).
4896
4899
4897 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4900 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4898 resolve output channel at call time, so that if sys.stderr has
4901 resolve output channel at call time, so that if sys.stderr has
4899 been redirected by user this gets honored.
4902 been redirected by user this gets honored.
4900
4903
4901 2002-06-13 Fernando Perez <fperez@colorado.edu>
4904 2002-06-13 Fernando Perez <fperez@colorado.edu>
4902
4905
4903 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4906 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4904 IPShell. Kept a copy with the old names to avoid breaking people's
4907 IPShell. Kept a copy with the old names to avoid breaking people's
4905 embedded code.
4908 embedded code.
4906
4909
4907 * IPython/ipython: simplified it to the bare minimum after
4910 * IPython/ipython: simplified it to the bare minimum after
4908 Holger's suggestions. Added info about how to use it in
4911 Holger's suggestions. Added info about how to use it in
4909 PYTHONSTARTUP.
4912 PYTHONSTARTUP.
4910
4913
4911 * IPython/Shell.py (IPythonShell): changed the options passing
4914 * IPython/Shell.py (IPythonShell): changed the options passing
4912 from a string with funky %s replacements to a straight list. Maybe
4915 from a string with funky %s replacements to a straight list. Maybe
4913 a bit more typing, but it follows sys.argv conventions, so there's
4916 a bit more typing, but it follows sys.argv conventions, so there's
4914 less special-casing to remember.
4917 less special-casing to remember.
4915
4918
4916 2002-06-12 Fernando Perez <fperez@colorado.edu>
4919 2002-06-12 Fernando Perez <fperez@colorado.edu>
4917
4920
4918 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4921 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4919 command. Thanks to a suggestion by Mike Heeter.
4922 command. Thanks to a suggestion by Mike Heeter.
4920 (Magic.magic_pfile): added behavior to look at filenames if given
4923 (Magic.magic_pfile): added behavior to look at filenames if given
4921 arg is not a defined object.
4924 arg is not a defined object.
4922 (Magic.magic_save): New @save function to save code snippets. Also
4925 (Magic.magic_save): New @save function to save code snippets. Also
4923 a Mike Heeter idea.
4926 a Mike Heeter idea.
4924
4927
4925 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4928 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4926 plot() and replot(). Much more convenient now, especially for
4929 plot() and replot(). Much more convenient now, especially for
4927 interactive use.
4930 interactive use.
4928
4931
4929 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4932 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4930 filenames.
4933 filenames.
4931
4934
4932 2002-06-02 Fernando Perez <fperez@colorado.edu>
4935 2002-06-02 Fernando Perez <fperez@colorado.edu>
4933
4936
4934 * IPython/Struct.py (Struct.__init__): modified to admit
4937 * IPython/Struct.py (Struct.__init__): modified to admit
4935 initialization via another struct.
4938 initialization via another struct.
4936
4939
4937 * IPython/genutils.py (SystemExec.__init__): New stateful
4940 * IPython/genutils.py (SystemExec.__init__): New stateful
4938 interface to xsys and bq. Useful for writing system scripts.
4941 interface to xsys and bq. Useful for writing system scripts.
4939
4942
4940 2002-05-30 Fernando Perez <fperez@colorado.edu>
4943 2002-05-30 Fernando Perez <fperez@colorado.edu>
4941
4944
4942 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4945 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4943 documents. This will make the user download smaller (it's getting
4946 documents. This will make the user download smaller (it's getting
4944 too big).
4947 too big).
4945
4948
4946 2002-05-29 Fernando Perez <fperez@colorado.edu>
4949 2002-05-29 Fernando Perez <fperez@colorado.edu>
4947
4950
4948 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4951 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4949 fix problems with shelve and pickle. Seems to work, but I don't
4952 fix problems with shelve and pickle. Seems to work, but I don't
4950 know if corner cases break it. Thanks to Mike Heeter
4953 know if corner cases break it. Thanks to Mike Heeter
4951 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4954 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4952
4955
4953 2002-05-24 Fernando Perez <fperez@colorado.edu>
4956 2002-05-24 Fernando Perez <fperez@colorado.edu>
4954
4957
4955 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4958 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4956 macros having broken.
4959 macros having broken.
4957
4960
4958 2002-05-21 Fernando Perez <fperez@colorado.edu>
4961 2002-05-21 Fernando Perez <fperez@colorado.edu>
4959
4962
4960 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4963 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4961 introduced logging bug: all history before logging started was
4964 introduced logging bug: all history before logging started was
4962 being written one character per line! This came from the redesign
4965 being written one character per line! This came from the redesign
4963 of the input history as a special list which slices to strings,
4966 of the input history as a special list which slices to strings,
4964 not to lists.
4967 not to lists.
4965
4968
4966 2002-05-20 Fernando Perez <fperez@colorado.edu>
4969 2002-05-20 Fernando Perez <fperez@colorado.edu>
4967
4970
4968 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4971 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4969 be an attribute of all classes in this module. The design of these
4972 be an attribute of all classes in this module. The design of these
4970 classes needs some serious overhauling.
4973 classes needs some serious overhauling.
4971
4974
4972 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4975 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4973 which was ignoring '_' in option names.
4976 which was ignoring '_' in option names.
4974
4977
4975 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4978 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4976 'Verbose_novars' to 'Context' and made it the new default. It's a
4979 'Verbose_novars' to 'Context' and made it the new default. It's a
4977 bit more readable and also safer than verbose.
4980 bit more readable and also safer than verbose.
4978
4981
4979 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4982 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4980 triple-quoted strings.
4983 triple-quoted strings.
4981
4984
4982 * IPython/OInspect.py (__all__): new module exposing the object
4985 * IPython/OInspect.py (__all__): new module exposing the object
4983 introspection facilities. Now the corresponding magics are dummy
4986 introspection facilities. Now the corresponding magics are dummy
4984 wrappers around this. Having this module will make it much easier
4987 wrappers around this. Having this module will make it much easier
4985 to put these functions into our modified pdb.
4988 to put these functions into our modified pdb.
4986 This new object inspector system uses the new colorizing module,
4989 This new object inspector system uses the new colorizing module,
4987 so source code and other things are nicely syntax highlighted.
4990 so source code and other things are nicely syntax highlighted.
4988
4991
4989 2002-05-18 Fernando Perez <fperez@colorado.edu>
4992 2002-05-18 Fernando Perez <fperez@colorado.edu>
4990
4993
4991 * IPython/ColorANSI.py: Split the coloring tools into a separate
4994 * IPython/ColorANSI.py: Split the coloring tools into a separate
4992 module so I can use them in other code easier (they were part of
4995 module so I can use them in other code easier (they were part of
4993 ultraTB).
4996 ultraTB).
4994
4997
4995 2002-05-17 Fernando Perez <fperez@colorado.edu>
4998 2002-05-17 Fernando Perez <fperez@colorado.edu>
4996
4999
4997 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5000 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4998 fixed it to set the global 'g' also to the called instance, as
5001 fixed it to set the global 'g' also to the called instance, as
4999 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5002 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5000 user's 'g' variables).
5003 user's 'g' variables).
5001
5004
5002 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5005 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5003 global variables (aliases to _ih,_oh) so that users which expect
5006 global variables (aliases to _ih,_oh) so that users which expect
5004 In[5] or Out[7] to work aren't unpleasantly surprised.
5007 In[5] or Out[7] to work aren't unpleasantly surprised.
5005 (InputList.__getslice__): new class to allow executing slices of
5008 (InputList.__getslice__): new class to allow executing slices of
5006 input history directly. Very simple class, complements the use of
5009 input history directly. Very simple class, complements the use of
5007 macros.
5010 macros.
5008
5011
5009 2002-05-16 Fernando Perez <fperez@colorado.edu>
5012 2002-05-16 Fernando Perez <fperez@colorado.edu>
5010
5013
5011 * setup.py (docdirbase): make doc directory be just doc/IPython
5014 * setup.py (docdirbase): make doc directory be just doc/IPython
5012 without version numbers, it will reduce clutter for users.
5015 without version numbers, it will reduce clutter for users.
5013
5016
5014 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5017 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5015 execfile call to prevent possible memory leak. See for details:
5018 execfile call to prevent possible memory leak. See for details:
5016 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5019 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5017
5020
5018 2002-05-15 Fernando Perez <fperez@colorado.edu>
5021 2002-05-15 Fernando Perez <fperez@colorado.edu>
5019
5022
5020 * IPython/Magic.py (Magic.magic_psource): made the object
5023 * IPython/Magic.py (Magic.magic_psource): made the object
5021 introspection names be more standard: pdoc, pdef, pfile and
5024 introspection names be more standard: pdoc, pdef, pfile and
5022 psource. They all print/page their output, and it makes
5025 psource. They all print/page their output, and it makes
5023 remembering them easier. Kept old names for compatibility as
5026 remembering them easier. Kept old names for compatibility as
5024 aliases.
5027 aliases.
5025
5028
5026 2002-05-14 Fernando Perez <fperez@colorado.edu>
5029 2002-05-14 Fernando Perez <fperez@colorado.edu>
5027
5030
5028 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5031 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5029 what the mouse problem was. The trick is to use gnuplot with temp
5032 what the mouse problem was. The trick is to use gnuplot with temp
5030 files and NOT with pipes (for data communication), because having
5033 files and NOT with pipes (for data communication), because having
5031 both pipes and the mouse on is bad news.
5034 both pipes and the mouse on is bad news.
5032
5035
5033 2002-05-13 Fernando Perez <fperez@colorado.edu>
5036 2002-05-13 Fernando Perez <fperez@colorado.edu>
5034
5037
5035 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5038 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5036 bug. Information would be reported about builtins even when
5039 bug. Information would be reported about builtins even when
5037 user-defined functions overrode them.
5040 user-defined functions overrode them.
5038
5041
5039 2002-05-11 Fernando Perez <fperez@colorado.edu>
5042 2002-05-11 Fernando Perez <fperez@colorado.edu>
5040
5043
5041 * IPython/__init__.py (__all__): removed FlexCompleter from
5044 * IPython/__init__.py (__all__): removed FlexCompleter from
5042 __all__ so that things don't fail in platforms without readline.
5045 __all__ so that things don't fail in platforms without readline.
5043
5046
5044 2002-05-10 Fernando Perez <fperez@colorado.edu>
5047 2002-05-10 Fernando Perez <fperez@colorado.edu>
5045
5048
5046 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5049 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5047 it requires Numeric, effectively making Numeric a dependency for
5050 it requires Numeric, effectively making Numeric a dependency for
5048 IPython.
5051 IPython.
5049
5052
5050 * Released 0.2.13
5053 * Released 0.2.13
5051
5054
5052 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5055 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5053 profiler interface. Now all the major options from the profiler
5056 profiler interface. Now all the major options from the profiler
5054 module are directly supported in IPython, both for single
5057 module are directly supported in IPython, both for single
5055 expressions (@prun) and for full programs (@run -p).
5058 expressions (@prun) and for full programs (@run -p).
5056
5059
5057 2002-05-09 Fernando Perez <fperez@colorado.edu>
5060 2002-05-09 Fernando Perez <fperez@colorado.edu>
5058
5061
5059 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5062 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5060 magic properly formatted for screen.
5063 magic properly formatted for screen.
5061
5064
5062 * setup.py (make_shortcut): Changed things to put pdf version in
5065 * setup.py (make_shortcut): Changed things to put pdf version in
5063 doc/ instead of doc/manual (had to change lyxport a bit).
5066 doc/ instead of doc/manual (had to change lyxport a bit).
5064
5067
5065 * IPython/Magic.py (Profile.string_stats): made profile runs go
5068 * IPython/Magic.py (Profile.string_stats): made profile runs go
5066 through pager (they are long and a pager allows searching, saving,
5069 through pager (they are long and a pager allows searching, saving,
5067 etc.)
5070 etc.)
5068
5071
5069 2002-05-08 Fernando Perez <fperez@colorado.edu>
5072 2002-05-08 Fernando Perez <fperez@colorado.edu>
5070
5073
5071 * Released 0.2.12
5074 * Released 0.2.12
5072
5075
5073 2002-05-06 Fernando Perez <fperez@colorado.edu>
5076 2002-05-06 Fernando Perez <fperez@colorado.edu>
5074
5077
5075 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5078 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5076 introduced); 'hist n1 n2' was broken.
5079 introduced); 'hist n1 n2' was broken.
5077 (Magic.magic_pdb): added optional on/off arguments to @pdb
5080 (Magic.magic_pdb): added optional on/off arguments to @pdb
5078 (Magic.magic_run): added option -i to @run, which executes code in
5081 (Magic.magic_run): added option -i to @run, which executes code in
5079 the IPython namespace instead of a clean one. Also added @irun as
5082 the IPython namespace instead of a clean one. Also added @irun as
5080 an alias to @run -i.
5083 an alias to @run -i.
5081
5084
5082 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5085 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5083 fixed (it didn't really do anything, the namespaces were wrong).
5086 fixed (it didn't really do anything, the namespaces were wrong).
5084
5087
5085 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5088 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5086
5089
5087 * IPython/__init__.py (__all__): Fixed package namespace, now
5090 * IPython/__init__.py (__all__): Fixed package namespace, now
5088 'import IPython' does give access to IPython.<all> as
5091 'import IPython' does give access to IPython.<all> as
5089 expected. Also renamed __release__ to Release.
5092 expected. Also renamed __release__ to Release.
5090
5093
5091 * IPython/Debugger.py (__license__): created new Pdb class which
5094 * IPython/Debugger.py (__license__): created new Pdb class which
5092 functions like a drop-in for the normal pdb.Pdb but does NOT
5095 functions like a drop-in for the normal pdb.Pdb but does NOT
5093 import readline by default. This way it doesn't muck up IPython's
5096 import readline by default. This way it doesn't muck up IPython's
5094 readline handling, and now tab-completion finally works in the
5097 readline handling, and now tab-completion finally works in the
5095 debugger -- sort of. It completes things globally visible, but the
5098 debugger -- sort of. It completes things globally visible, but the
5096 completer doesn't track the stack as pdb walks it. That's a bit
5099 completer doesn't track the stack as pdb walks it. That's a bit
5097 tricky, and I'll have to implement it later.
5100 tricky, and I'll have to implement it later.
5098
5101
5099 2002-05-05 Fernando Perez <fperez@colorado.edu>
5102 2002-05-05 Fernando Perez <fperez@colorado.edu>
5100
5103
5101 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5104 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5102 magic docstrings when printed via ? (explicit \'s were being
5105 magic docstrings when printed via ? (explicit \'s were being
5103 printed).
5106 printed).
5104
5107
5105 * IPython/ipmaker.py (make_IPython): fixed namespace
5108 * IPython/ipmaker.py (make_IPython): fixed namespace
5106 identification bug. Now variables loaded via logs or command-line
5109 identification bug. Now variables loaded via logs or command-line
5107 files are recognized in the interactive namespace by @who.
5110 files are recognized in the interactive namespace by @who.
5108
5111
5109 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5112 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5110 log replay system stemming from the string form of Structs.
5113 log replay system stemming from the string form of Structs.
5111
5114
5112 * IPython/Magic.py (Macro.__init__): improved macros to properly
5115 * IPython/Magic.py (Macro.__init__): improved macros to properly
5113 handle magic commands in them.
5116 handle magic commands in them.
5114 (Magic.magic_logstart): usernames are now expanded so 'logstart
5117 (Magic.magic_logstart): usernames are now expanded so 'logstart
5115 ~/mylog' now works.
5118 ~/mylog' now works.
5116
5119
5117 * IPython/iplib.py (complete): fixed bug where paths starting with
5120 * IPython/iplib.py (complete): fixed bug where paths starting with
5118 '/' would be completed as magic names.
5121 '/' would be completed as magic names.
5119
5122
5120 2002-05-04 Fernando Perez <fperez@colorado.edu>
5123 2002-05-04 Fernando Perez <fperez@colorado.edu>
5121
5124
5122 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5125 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5123 allow running full programs under the profiler's control.
5126 allow running full programs under the profiler's control.
5124
5127
5125 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5128 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5126 mode to report exceptions verbosely but without formatting
5129 mode to report exceptions verbosely but without formatting
5127 variables. This addresses the issue of ipython 'freezing' (it's
5130 variables. This addresses the issue of ipython 'freezing' (it's
5128 not frozen, but caught in an expensive formatting loop) when huge
5131 not frozen, but caught in an expensive formatting loop) when huge
5129 variables are in the context of an exception.
5132 variables are in the context of an exception.
5130 (VerboseTB.text): Added '--->' markers at line where exception was
5133 (VerboseTB.text): Added '--->' markers at line where exception was
5131 triggered. Much clearer to read, especially in NoColor modes.
5134 triggered. Much clearer to read, especially in NoColor modes.
5132
5135
5133 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5136 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5134 implemented in reverse when changing to the new parse_options().
5137 implemented in reverse when changing to the new parse_options().
5135
5138
5136 2002-05-03 Fernando Perez <fperez@colorado.edu>
5139 2002-05-03 Fernando Perez <fperez@colorado.edu>
5137
5140
5138 * IPython/Magic.py (Magic.parse_options): new function so that
5141 * IPython/Magic.py (Magic.parse_options): new function so that
5139 magics can parse options easier.
5142 magics can parse options easier.
5140 (Magic.magic_prun): new function similar to profile.run(),
5143 (Magic.magic_prun): new function similar to profile.run(),
5141 suggested by Chris Hart.
5144 suggested by Chris Hart.
5142 (Magic.magic_cd): fixed behavior so that it only changes if
5145 (Magic.magic_cd): fixed behavior so that it only changes if
5143 directory actually is in history.
5146 directory actually is in history.
5144
5147
5145 * IPython/usage.py (__doc__): added information about potential
5148 * IPython/usage.py (__doc__): added information about potential
5146 slowness of Verbose exception mode when there are huge data
5149 slowness of Verbose exception mode when there are huge data
5147 structures to be formatted (thanks to Archie Paulson).
5150 structures to be formatted (thanks to Archie Paulson).
5148
5151
5149 * IPython/ipmaker.py (make_IPython): Changed default logging
5152 * IPython/ipmaker.py (make_IPython): Changed default logging
5150 (when simply called with -log) to use curr_dir/ipython.log in
5153 (when simply called with -log) to use curr_dir/ipython.log in
5151 rotate mode. Fixed crash which was occuring with -log before
5154 rotate mode. Fixed crash which was occuring with -log before
5152 (thanks to Jim Boyle).
5155 (thanks to Jim Boyle).
5153
5156
5154 2002-05-01 Fernando Perez <fperez@colorado.edu>
5157 2002-05-01 Fernando Perez <fperez@colorado.edu>
5155
5158
5156 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5159 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5157 was nasty -- though somewhat of a corner case).
5160 was nasty -- though somewhat of a corner case).
5158
5161
5159 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5162 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5160 text (was a bug).
5163 text (was a bug).
5161
5164
5162 2002-04-30 Fernando Perez <fperez@colorado.edu>
5165 2002-04-30 Fernando Perez <fperez@colorado.edu>
5163
5166
5164 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5167 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5165 a print after ^D or ^C from the user so that the In[] prompt
5168 a print after ^D or ^C from the user so that the In[] prompt
5166 doesn't over-run the gnuplot one.
5169 doesn't over-run the gnuplot one.
5167
5170
5168 2002-04-29 Fernando Perez <fperez@colorado.edu>
5171 2002-04-29 Fernando Perez <fperez@colorado.edu>
5169
5172
5170 * Released 0.2.10
5173 * Released 0.2.10
5171
5174
5172 * IPython/__release__.py (version): get date dynamically.
5175 * IPython/__release__.py (version): get date dynamically.
5173
5176
5174 * Misc. documentation updates thanks to Arnd's comments. Also ran
5177 * Misc. documentation updates thanks to Arnd's comments. Also ran
5175 a full spellcheck on the manual (hadn't been done in a while).
5178 a full spellcheck on the manual (hadn't been done in a while).
5176
5179
5177 2002-04-27 Fernando Perez <fperez@colorado.edu>
5180 2002-04-27 Fernando Perez <fperez@colorado.edu>
5178
5181
5179 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5182 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5180 starting a log in mid-session would reset the input history list.
5183 starting a log in mid-session would reset the input history list.
5181
5184
5182 2002-04-26 Fernando Perez <fperez@colorado.edu>
5185 2002-04-26 Fernando Perez <fperez@colorado.edu>
5183
5186
5184 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5187 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5185 all files were being included in an update. Now anything in
5188 all files were being included in an update. Now anything in
5186 UserConfig that matches [A-Za-z]*.py will go (this excludes
5189 UserConfig that matches [A-Za-z]*.py will go (this excludes
5187 __init__.py)
5190 __init__.py)
5188
5191
5189 2002-04-25 Fernando Perez <fperez@colorado.edu>
5192 2002-04-25 Fernando Perez <fperez@colorado.edu>
5190
5193
5191 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5194 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5192 to __builtins__ so that any form of embedded or imported code can
5195 to __builtins__ so that any form of embedded or imported code can
5193 test for being inside IPython.
5196 test for being inside IPython.
5194
5197
5195 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5198 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5196 changed to GnuplotMagic because it's now an importable module,
5199 changed to GnuplotMagic because it's now an importable module,
5197 this makes the name follow that of the standard Gnuplot module.
5200 this makes the name follow that of the standard Gnuplot module.
5198 GnuplotMagic can now be loaded at any time in mid-session.
5201 GnuplotMagic can now be loaded at any time in mid-session.
5199
5202
5200 2002-04-24 Fernando Perez <fperez@colorado.edu>
5203 2002-04-24 Fernando Perez <fperez@colorado.edu>
5201
5204
5202 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5205 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5203 the globals (IPython has its own namespace) and the
5206 the globals (IPython has its own namespace) and the
5204 PhysicalQuantity stuff is much better anyway.
5207 PhysicalQuantity stuff is much better anyway.
5205
5208
5206 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5209 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5207 embedding example to standard user directory for
5210 embedding example to standard user directory for
5208 distribution. Also put it in the manual.
5211 distribution. Also put it in the manual.
5209
5212
5210 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5213 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5211 instance as first argument (so it doesn't rely on some obscure
5214 instance as first argument (so it doesn't rely on some obscure
5212 hidden global).
5215 hidden global).
5213
5216
5214 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5217 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5215 delimiters. While it prevents ().TAB from working, it allows
5218 delimiters. While it prevents ().TAB from working, it allows
5216 completions in open (... expressions. This is by far a more common
5219 completions in open (... expressions. This is by far a more common
5217 case.
5220 case.
5218
5221
5219 2002-04-23 Fernando Perez <fperez@colorado.edu>
5222 2002-04-23 Fernando Perez <fperez@colorado.edu>
5220
5223
5221 * IPython/Extensions/InterpreterPasteInput.py: new
5224 * IPython/Extensions/InterpreterPasteInput.py: new
5222 syntax-processing module for pasting lines with >>> or ... at the
5225 syntax-processing module for pasting lines with >>> or ... at the
5223 start.
5226 start.
5224
5227
5225 * IPython/Extensions/PhysicalQ_Interactive.py
5228 * IPython/Extensions/PhysicalQ_Interactive.py
5226 (PhysicalQuantityInteractive.__int__): fixed to work with either
5229 (PhysicalQuantityInteractive.__int__): fixed to work with either
5227 Numeric or math.
5230 Numeric or math.
5228
5231
5229 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5232 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5230 provided profiles. Now we have:
5233 provided profiles. Now we have:
5231 -math -> math module as * and cmath with its own namespace.
5234 -math -> math module as * and cmath with its own namespace.
5232 -numeric -> Numeric as *, plus gnuplot & grace
5235 -numeric -> Numeric as *, plus gnuplot & grace
5233 -physics -> same as before
5236 -physics -> same as before
5234
5237
5235 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5238 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5236 user-defined magics wouldn't be found by @magic if they were
5239 user-defined magics wouldn't be found by @magic if they were
5237 defined as class methods. Also cleaned up the namespace search
5240 defined as class methods. Also cleaned up the namespace search
5238 logic and the string building (to use %s instead of many repeated
5241 logic and the string building (to use %s instead of many repeated
5239 string adds).
5242 string adds).
5240
5243
5241 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5244 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5242 of user-defined magics to operate with class methods (cleaner, in
5245 of user-defined magics to operate with class methods (cleaner, in
5243 line with the gnuplot code).
5246 line with the gnuplot code).
5244
5247
5245 2002-04-22 Fernando Perez <fperez@colorado.edu>
5248 2002-04-22 Fernando Perez <fperez@colorado.edu>
5246
5249
5247 * setup.py: updated dependency list so that manual is updated when
5250 * setup.py: updated dependency list so that manual is updated when
5248 all included files change.
5251 all included files change.
5249
5252
5250 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5253 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5251 the delimiter removal option (the fix is ugly right now).
5254 the delimiter removal option (the fix is ugly right now).
5252
5255
5253 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5256 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5254 all of the math profile (quicker loading, no conflict between
5257 all of the math profile (quicker loading, no conflict between
5255 g-9.8 and g-gnuplot).
5258 g-9.8 and g-gnuplot).
5256
5259
5257 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5260 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5258 name of post-mortem files to IPython_crash_report.txt.
5261 name of post-mortem files to IPython_crash_report.txt.
5259
5262
5260 * Cleanup/update of the docs. Added all the new readline info and
5263 * Cleanup/update of the docs. Added all the new readline info and
5261 formatted all lists as 'real lists'.
5264 formatted all lists as 'real lists'.
5262
5265
5263 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5266 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5264 tab-completion options, since the full readline parse_and_bind is
5267 tab-completion options, since the full readline parse_and_bind is
5265 now accessible.
5268 now accessible.
5266
5269
5267 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5270 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5268 handling of readline options. Now users can specify any string to
5271 handling of readline options. Now users can specify any string to
5269 be passed to parse_and_bind(), as well as the delimiters to be
5272 be passed to parse_and_bind(), as well as the delimiters to be
5270 removed.
5273 removed.
5271 (InteractiveShell.__init__): Added __name__ to the global
5274 (InteractiveShell.__init__): Added __name__ to the global
5272 namespace so that things like Itpl which rely on its existence
5275 namespace so that things like Itpl which rely on its existence
5273 don't crash.
5276 don't crash.
5274 (InteractiveShell._prefilter): Defined the default with a _ so
5277 (InteractiveShell._prefilter): Defined the default with a _ so
5275 that prefilter() is easier to override, while the default one
5278 that prefilter() is easier to override, while the default one
5276 remains available.
5279 remains available.
5277
5280
5278 2002-04-18 Fernando Perez <fperez@colorado.edu>
5281 2002-04-18 Fernando Perez <fperez@colorado.edu>
5279
5282
5280 * Added information about pdb in the docs.
5283 * Added information about pdb in the docs.
5281
5284
5282 2002-04-17 Fernando Perez <fperez@colorado.edu>
5285 2002-04-17 Fernando Perez <fperez@colorado.edu>
5283
5286
5284 * IPython/ipmaker.py (make_IPython): added rc_override option to
5287 * IPython/ipmaker.py (make_IPython): added rc_override option to
5285 allow passing config options at creation time which may override
5288 allow passing config options at creation time which may override
5286 anything set in the config files or command line. This is
5289 anything set in the config files or command line. This is
5287 particularly useful for configuring embedded instances.
5290 particularly useful for configuring embedded instances.
5288
5291
5289 2002-04-15 Fernando Perez <fperez@colorado.edu>
5292 2002-04-15 Fernando Perez <fperez@colorado.edu>
5290
5293
5291 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5294 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5292 crash embedded instances because of the input cache falling out of
5295 crash embedded instances because of the input cache falling out of
5293 sync with the output counter.
5296 sync with the output counter.
5294
5297
5295 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5298 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5296 mode which calls pdb after an uncaught exception in IPython itself.
5299 mode which calls pdb after an uncaught exception in IPython itself.
5297
5300
5298 2002-04-14 Fernando Perez <fperez@colorado.edu>
5301 2002-04-14 Fernando Perez <fperez@colorado.edu>
5299
5302
5300 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5303 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5301 readline, fix it back after each call.
5304 readline, fix it back after each call.
5302
5305
5303 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5306 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5304 method to force all access via __call__(), which guarantees that
5307 method to force all access via __call__(), which guarantees that
5305 traceback references are properly deleted.
5308 traceback references are properly deleted.
5306
5309
5307 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5310 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5308 improve printing when pprint is in use.
5311 improve printing when pprint is in use.
5309
5312
5310 2002-04-13 Fernando Perez <fperez@colorado.edu>
5313 2002-04-13 Fernando Perez <fperez@colorado.edu>
5311
5314
5312 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5315 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5313 exceptions aren't caught anymore. If the user triggers one, he
5316 exceptions aren't caught anymore. If the user triggers one, he
5314 should know why he's doing it and it should go all the way up,
5317 should know why he's doing it and it should go all the way up,
5315 just like any other exception. So now @abort will fully kill the
5318 just like any other exception. So now @abort will fully kill the
5316 embedded interpreter and the embedding code (unless that happens
5319 embedded interpreter and the embedding code (unless that happens
5317 to catch SystemExit).
5320 to catch SystemExit).
5318
5321
5319 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5322 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5320 and a debugger() method to invoke the interactive pdb debugger
5323 and a debugger() method to invoke the interactive pdb debugger
5321 after printing exception information. Also added the corresponding
5324 after printing exception information. Also added the corresponding
5322 -pdb option and @pdb magic to control this feature, and updated
5325 -pdb option and @pdb magic to control this feature, and updated
5323 the docs. After a suggestion from Christopher Hart
5326 the docs. After a suggestion from Christopher Hart
5324 (hart-AT-caltech.edu).
5327 (hart-AT-caltech.edu).
5325
5328
5326 2002-04-12 Fernando Perez <fperez@colorado.edu>
5329 2002-04-12 Fernando Perez <fperez@colorado.edu>
5327
5330
5328 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5331 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5329 the exception handlers defined by the user (not the CrashHandler)
5332 the exception handlers defined by the user (not the CrashHandler)
5330 so that user exceptions don't trigger an ipython bug report.
5333 so that user exceptions don't trigger an ipython bug report.
5331
5334
5332 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5335 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5333 configurable (it should have always been so).
5336 configurable (it should have always been so).
5334
5337
5335 2002-03-26 Fernando Perez <fperez@colorado.edu>
5338 2002-03-26 Fernando Perez <fperez@colorado.edu>
5336
5339
5337 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5340 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5338 and there to fix embedding namespace issues. This should all be
5341 and there to fix embedding namespace issues. This should all be
5339 done in a more elegant way.
5342 done in a more elegant way.
5340
5343
5341 2002-03-25 Fernando Perez <fperez@colorado.edu>
5344 2002-03-25 Fernando Perez <fperez@colorado.edu>
5342
5345
5343 * IPython/genutils.py (get_home_dir): Try to make it work under
5346 * IPython/genutils.py (get_home_dir): Try to make it work under
5344 win9x also.
5347 win9x also.
5345
5348
5346 2002-03-20 Fernando Perez <fperez@colorado.edu>
5349 2002-03-20 Fernando Perez <fperez@colorado.edu>
5347
5350
5348 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5351 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5349 sys.displayhook untouched upon __init__.
5352 sys.displayhook untouched upon __init__.
5350
5353
5351 2002-03-19 Fernando Perez <fperez@colorado.edu>
5354 2002-03-19 Fernando Perez <fperez@colorado.edu>
5352
5355
5353 * Released 0.2.9 (for embedding bug, basically).
5356 * Released 0.2.9 (for embedding bug, basically).
5354
5357
5355 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5358 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5356 exceptions so that enclosing shell's state can be restored.
5359 exceptions so that enclosing shell's state can be restored.
5357
5360
5358 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5361 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5359 naming conventions in the .ipython/ dir.
5362 naming conventions in the .ipython/ dir.
5360
5363
5361 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5364 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5362 from delimiters list so filenames with - in them get expanded.
5365 from delimiters list so filenames with - in them get expanded.
5363
5366
5364 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5367 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5365 sys.displayhook not being properly restored after an embedded call.
5368 sys.displayhook not being properly restored after an embedded call.
5366
5369
5367 2002-03-18 Fernando Perez <fperez@colorado.edu>
5370 2002-03-18 Fernando Perez <fperez@colorado.edu>
5368
5371
5369 * Released 0.2.8
5372 * Released 0.2.8
5370
5373
5371 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5374 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5372 some files weren't being included in a -upgrade.
5375 some files weren't being included in a -upgrade.
5373 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5376 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5374 on' so that the first tab completes.
5377 on' so that the first tab completes.
5375 (InteractiveShell.handle_magic): fixed bug with spaces around
5378 (InteractiveShell.handle_magic): fixed bug with spaces around
5376 quotes breaking many magic commands.
5379 quotes breaking many magic commands.
5377
5380
5378 * setup.py: added note about ignoring the syntax error messages at
5381 * setup.py: added note about ignoring the syntax error messages at
5379 installation.
5382 installation.
5380
5383
5381 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5384 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5382 streamlining the gnuplot interface, now there's only one magic @gp.
5385 streamlining the gnuplot interface, now there's only one magic @gp.
5383
5386
5384 2002-03-17 Fernando Perez <fperez@colorado.edu>
5387 2002-03-17 Fernando Perez <fperez@colorado.edu>
5385
5388
5386 * IPython/UserConfig/magic_gnuplot.py: new name for the
5389 * IPython/UserConfig/magic_gnuplot.py: new name for the
5387 example-magic_pm.py file. Much enhanced system, now with a shell
5390 example-magic_pm.py file. Much enhanced system, now with a shell
5388 for communicating directly with gnuplot, one command at a time.
5391 for communicating directly with gnuplot, one command at a time.
5389
5392
5390 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5393 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5391 setting __name__=='__main__'.
5394 setting __name__=='__main__'.
5392
5395
5393 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5396 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5394 mini-shell for accessing gnuplot from inside ipython. Should
5397 mini-shell for accessing gnuplot from inside ipython. Should
5395 extend it later for grace access too. Inspired by Arnd's
5398 extend it later for grace access too. Inspired by Arnd's
5396 suggestion.
5399 suggestion.
5397
5400
5398 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5401 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5399 calling magic functions with () in their arguments. Thanks to Arnd
5402 calling magic functions with () in their arguments. Thanks to Arnd
5400 Baecker for pointing this to me.
5403 Baecker for pointing this to me.
5401
5404
5402 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5405 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5403 infinitely for integer or complex arrays (only worked with floats).
5406 infinitely for integer or complex arrays (only worked with floats).
5404
5407
5405 2002-03-16 Fernando Perez <fperez@colorado.edu>
5408 2002-03-16 Fernando Perez <fperez@colorado.edu>
5406
5409
5407 * setup.py: Merged setup and setup_windows into a single script
5410 * setup.py: Merged setup and setup_windows into a single script
5408 which properly handles things for windows users.
5411 which properly handles things for windows users.
5409
5412
5410 2002-03-15 Fernando Perez <fperez@colorado.edu>
5413 2002-03-15 Fernando Perez <fperez@colorado.edu>
5411
5414
5412 * Big change to the manual: now the magics are all automatically
5415 * Big change to the manual: now the magics are all automatically
5413 documented. This information is generated from their docstrings
5416 documented. This information is generated from their docstrings
5414 and put in a latex file included by the manual lyx file. This way
5417 and put in a latex file included by the manual lyx file. This way
5415 we get always up to date information for the magics. The manual
5418 we get always up to date information for the magics. The manual
5416 now also has proper version information, also auto-synced.
5419 now also has proper version information, also auto-synced.
5417
5420
5418 For this to work, an undocumented --magic_docstrings option was added.
5421 For this to work, an undocumented --magic_docstrings option was added.
5419
5422
5420 2002-03-13 Fernando Perez <fperez@colorado.edu>
5423 2002-03-13 Fernando Perez <fperez@colorado.edu>
5421
5424
5422 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5425 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5423 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5426 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5424
5427
5425 2002-03-12 Fernando Perez <fperez@colorado.edu>
5428 2002-03-12 Fernando Perez <fperez@colorado.edu>
5426
5429
5427 * IPython/ultraTB.py (TermColors): changed color escapes again to
5430 * IPython/ultraTB.py (TermColors): changed color escapes again to
5428 fix the (old, reintroduced) line-wrapping bug. Basically, if
5431 fix the (old, reintroduced) line-wrapping bug. Basically, if
5429 \001..\002 aren't given in the color escapes, lines get wrapped
5432 \001..\002 aren't given in the color escapes, lines get wrapped
5430 weirdly. But giving those screws up old xterms and emacs terms. So
5433 weirdly. But giving those screws up old xterms and emacs terms. So
5431 I added some logic for emacs terms to be ok, but I can't identify old
5434 I added some logic for emacs terms to be ok, but I can't identify old
5432 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5435 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5433
5436
5434 2002-03-10 Fernando Perez <fperez@colorado.edu>
5437 2002-03-10 Fernando Perez <fperez@colorado.edu>
5435
5438
5436 * IPython/usage.py (__doc__): Various documentation cleanups and
5439 * IPython/usage.py (__doc__): Various documentation cleanups and
5437 updates, both in usage docstrings and in the manual.
5440 updates, both in usage docstrings and in the manual.
5438
5441
5439 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5442 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5440 handling of caching. Set minimum acceptabe value for having a
5443 handling of caching. Set minimum acceptabe value for having a
5441 cache at 20 values.
5444 cache at 20 values.
5442
5445
5443 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5446 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5444 install_first_time function to a method, renamed it and added an
5447 install_first_time function to a method, renamed it and added an
5445 'upgrade' mode. Now people can update their config directory with
5448 'upgrade' mode. Now people can update their config directory with
5446 a simple command line switch (-upgrade, also new).
5449 a simple command line switch (-upgrade, also new).
5447
5450
5448 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5451 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5449 @file (convenient for automagic users under Python >= 2.2).
5452 @file (convenient for automagic users under Python >= 2.2).
5450 Removed @files (it seemed more like a plural than an abbrev. of
5453 Removed @files (it seemed more like a plural than an abbrev. of
5451 'file show').
5454 'file show').
5452
5455
5453 * IPython/iplib.py (install_first_time): Fixed crash if there were
5456 * IPython/iplib.py (install_first_time): Fixed crash if there were
5454 backup files ('~') in .ipython/ install directory.
5457 backup files ('~') in .ipython/ install directory.
5455
5458
5456 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5459 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5457 system. Things look fine, but these changes are fairly
5460 system. Things look fine, but these changes are fairly
5458 intrusive. Test them for a few days.
5461 intrusive. Test them for a few days.
5459
5462
5460 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5463 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5461 the prompts system. Now all in/out prompt strings are user
5464 the prompts system. Now all in/out prompt strings are user
5462 controllable. This is particularly useful for embedding, as one
5465 controllable. This is particularly useful for embedding, as one
5463 can tag embedded instances with particular prompts.
5466 can tag embedded instances with particular prompts.
5464
5467
5465 Also removed global use of sys.ps1/2, which now allows nested
5468 Also removed global use of sys.ps1/2, which now allows nested
5466 embeddings without any problems. Added command-line options for
5469 embeddings without any problems. Added command-line options for
5467 the prompt strings.
5470 the prompt strings.
5468
5471
5469 2002-03-08 Fernando Perez <fperez@colorado.edu>
5472 2002-03-08 Fernando Perez <fperez@colorado.edu>
5470
5473
5471 * IPython/UserConfig/example-embed-short.py (ipshell): added
5474 * IPython/UserConfig/example-embed-short.py (ipshell): added
5472 example file with the bare minimum code for embedding.
5475 example file with the bare minimum code for embedding.
5473
5476
5474 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5477 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5475 functionality for the embeddable shell to be activated/deactivated
5478 functionality for the embeddable shell to be activated/deactivated
5476 either globally or at each call.
5479 either globally or at each call.
5477
5480
5478 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5481 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5479 rewriting the prompt with '--->' for auto-inputs with proper
5482 rewriting the prompt with '--->' for auto-inputs with proper
5480 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5483 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5481 this is handled by the prompts class itself, as it should.
5484 this is handled by the prompts class itself, as it should.
5482
5485
5483 2002-03-05 Fernando Perez <fperez@colorado.edu>
5486 2002-03-05 Fernando Perez <fperez@colorado.edu>
5484
5487
5485 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5488 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5486 @logstart to avoid name clashes with the math log function.
5489 @logstart to avoid name clashes with the math log function.
5487
5490
5488 * Big updates to X/Emacs section of the manual.
5491 * Big updates to X/Emacs section of the manual.
5489
5492
5490 * Removed ipython_emacs. Milan explained to me how to pass
5493 * Removed ipython_emacs. Milan explained to me how to pass
5491 arguments to ipython through Emacs. Some day I'm going to end up
5494 arguments to ipython through Emacs. Some day I'm going to end up
5492 learning some lisp...
5495 learning some lisp...
5493
5496
5494 2002-03-04 Fernando Perez <fperez@colorado.edu>
5497 2002-03-04 Fernando Perez <fperez@colorado.edu>
5495
5498
5496 * IPython/ipython_emacs: Created script to be used as the
5499 * IPython/ipython_emacs: Created script to be used as the
5497 py-python-command Emacs variable so we can pass IPython
5500 py-python-command Emacs variable so we can pass IPython
5498 parameters. I can't figure out how to tell Emacs directly to pass
5501 parameters. I can't figure out how to tell Emacs directly to pass
5499 parameters to IPython, so a dummy shell script will do it.
5502 parameters to IPython, so a dummy shell script will do it.
5500
5503
5501 Other enhancements made for things to work better under Emacs'
5504 Other enhancements made for things to work better under Emacs'
5502 various types of terminals. Many thanks to Milan Zamazal
5505 various types of terminals. Many thanks to Milan Zamazal
5503 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5506 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5504
5507
5505 2002-03-01 Fernando Perez <fperez@colorado.edu>
5508 2002-03-01 Fernando Perez <fperez@colorado.edu>
5506
5509
5507 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5510 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5508 that loading of readline is now optional. This gives better
5511 that loading of readline is now optional. This gives better
5509 control to emacs users.
5512 control to emacs users.
5510
5513
5511 * IPython/ultraTB.py (__date__): Modified color escape sequences
5514 * IPython/ultraTB.py (__date__): Modified color escape sequences
5512 and now things work fine under xterm and in Emacs' term buffers
5515 and now things work fine under xterm and in Emacs' term buffers
5513 (though not shell ones). Well, in emacs you get colors, but all
5516 (though not shell ones). Well, in emacs you get colors, but all
5514 seem to be 'light' colors (no difference between dark and light
5517 seem to be 'light' colors (no difference between dark and light
5515 ones). But the garbage chars are gone, and also in xterms. It
5518 ones). But the garbage chars are gone, and also in xterms. It
5516 seems that now I'm using 'cleaner' ansi sequences.
5519 seems that now I'm using 'cleaner' ansi sequences.
5517
5520
5518 2002-02-21 Fernando Perez <fperez@colorado.edu>
5521 2002-02-21 Fernando Perez <fperez@colorado.edu>
5519
5522
5520 * Released 0.2.7 (mainly to publish the scoping fix).
5523 * Released 0.2.7 (mainly to publish the scoping fix).
5521
5524
5522 * IPython/Logger.py (Logger.logstate): added. A corresponding
5525 * IPython/Logger.py (Logger.logstate): added. A corresponding
5523 @logstate magic was created.
5526 @logstate magic was created.
5524
5527
5525 * IPython/Magic.py: fixed nested scoping problem under Python
5528 * IPython/Magic.py: fixed nested scoping problem under Python
5526 2.1.x (automagic wasn't working).
5529 2.1.x (automagic wasn't working).
5527
5530
5528 2002-02-20 Fernando Perez <fperez@colorado.edu>
5531 2002-02-20 Fernando Perez <fperez@colorado.edu>
5529
5532
5530 * Released 0.2.6.
5533 * Released 0.2.6.
5531
5534
5532 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5535 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5533 option so that logs can come out without any headers at all.
5536 option so that logs can come out without any headers at all.
5534
5537
5535 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5538 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5536 SciPy.
5539 SciPy.
5537
5540
5538 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5541 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5539 that embedded IPython calls don't require vars() to be explicitly
5542 that embedded IPython calls don't require vars() to be explicitly
5540 passed. Now they are extracted from the caller's frame (code
5543 passed. Now they are extracted from the caller's frame (code
5541 snatched from Eric Jones' weave). Added better documentation to
5544 snatched from Eric Jones' weave). Added better documentation to
5542 the section on embedding and the example file.
5545 the section on embedding and the example file.
5543
5546
5544 * IPython/genutils.py (page): Changed so that under emacs, it just
5547 * IPython/genutils.py (page): Changed so that under emacs, it just
5545 prints the string. You can then page up and down in the emacs
5548 prints the string. You can then page up and down in the emacs
5546 buffer itself. This is how the builtin help() works.
5549 buffer itself. This is how the builtin help() works.
5547
5550
5548 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5551 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5549 macro scoping: macros need to be executed in the user's namespace
5552 macro scoping: macros need to be executed in the user's namespace
5550 to work as if they had been typed by the user.
5553 to work as if they had been typed by the user.
5551
5554
5552 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5555 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5553 execute automatically (no need to type 'exec...'). They then
5556 execute automatically (no need to type 'exec...'). They then
5554 behave like 'true macros'. The printing system was also modified
5557 behave like 'true macros'. The printing system was also modified
5555 for this to work.
5558 for this to work.
5556
5559
5557 2002-02-19 Fernando Perez <fperez@colorado.edu>
5560 2002-02-19 Fernando Perez <fperez@colorado.edu>
5558
5561
5559 * IPython/genutils.py (page_file): new function for paging files
5562 * IPython/genutils.py (page_file): new function for paging files
5560 in an OS-independent way. Also necessary for file viewing to work
5563 in an OS-independent way. Also necessary for file viewing to work
5561 well inside Emacs buffers.
5564 well inside Emacs buffers.
5562 (page): Added checks for being in an emacs buffer.
5565 (page): Added checks for being in an emacs buffer.
5563 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5566 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5564 same bug in iplib.
5567 same bug in iplib.
5565
5568
5566 2002-02-18 Fernando Perez <fperez@colorado.edu>
5569 2002-02-18 Fernando Perez <fperez@colorado.edu>
5567
5570
5568 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5571 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5569 of readline so that IPython can work inside an Emacs buffer.
5572 of readline so that IPython can work inside an Emacs buffer.
5570
5573
5571 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5574 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5572 method signatures (they weren't really bugs, but it looks cleaner
5575 method signatures (they weren't really bugs, but it looks cleaner
5573 and keeps PyChecker happy).
5576 and keeps PyChecker happy).
5574
5577
5575 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5578 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5576 for implementing various user-defined hooks. Currently only
5579 for implementing various user-defined hooks. Currently only
5577 display is done.
5580 display is done.
5578
5581
5579 * IPython/Prompts.py (CachedOutput._display): changed display
5582 * IPython/Prompts.py (CachedOutput._display): changed display
5580 functions so that they can be dynamically changed by users easily.
5583 functions so that they can be dynamically changed by users easily.
5581
5584
5582 * IPython/Extensions/numeric_formats.py (num_display): added an
5585 * IPython/Extensions/numeric_formats.py (num_display): added an
5583 extension for printing NumPy arrays in flexible manners. It
5586 extension for printing NumPy arrays in flexible manners. It
5584 doesn't do anything yet, but all the structure is in
5587 doesn't do anything yet, but all the structure is in
5585 place. Ultimately the plan is to implement output format control
5588 place. Ultimately the plan is to implement output format control
5586 like in Octave.
5589 like in Octave.
5587
5590
5588 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5591 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5589 methods are found at run-time by all the automatic machinery.
5592 methods are found at run-time by all the automatic machinery.
5590
5593
5591 2002-02-17 Fernando Perez <fperez@colorado.edu>
5594 2002-02-17 Fernando Perez <fperez@colorado.edu>
5592
5595
5593 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5596 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5594 whole file a little.
5597 whole file a little.
5595
5598
5596 * ToDo: closed this document. Now there's a new_design.lyx
5599 * ToDo: closed this document. Now there's a new_design.lyx
5597 document for all new ideas. Added making a pdf of it for the
5600 document for all new ideas. Added making a pdf of it for the
5598 end-user distro.
5601 end-user distro.
5599
5602
5600 * IPython/Logger.py (Logger.switch_log): Created this to replace
5603 * IPython/Logger.py (Logger.switch_log): Created this to replace
5601 logon() and logoff(). It also fixes a nasty crash reported by
5604 logon() and logoff(). It also fixes a nasty crash reported by
5602 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5605 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5603
5606
5604 * IPython/iplib.py (complete): got auto-completion to work with
5607 * IPython/iplib.py (complete): got auto-completion to work with
5605 automagic (I had wanted this for a long time).
5608 automagic (I had wanted this for a long time).
5606
5609
5607 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5610 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5608 to @file, since file() is now a builtin and clashes with automagic
5611 to @file, since file() is now a builtin and clashes with automagic
5609 for @file.
5612 for @file.
5610
5613
5611 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5614 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5612 of this was previously in iplib, which had grown to more than 2000
5615 of this was previously in iplib, which had grown to more than 2000
5613 lines, way too long. No new functionality, but it makes managing
5616 lines, way too long. No new functionality, but it makes managing
5614 the code a bit easier.
5617 the code a bit easier.
5615
5618
5616 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5619 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5617 information to crash reports.
5620 information to crash reports.
5618
5621
5619 2002-02-12 Fernando Perez <fperez@colorado.edu>
5622 2002-02-12 Fernando Perez <fperez@colorado.edu>
5620
5623
5621 * Released 0.2.5.
5624 * Released 0.2.5.
5622
5625
5623 2002-02-11 Fernando Perez <fperez@colorado.edu>
5626 2002-02-11 Fernando Perez <fperez@colorado.edu>
5624
5627
5625 * Wrote a relatively complete Windows installer. It puts
5628 * Wrote a relatively complete Windows installer. It puts
5626 everything in place, creates Start Menu entries and fixes the
5629 everything in place, creates Start Menu entries and fixes the
5627 color issues. Nothing fancy, but it works.
5630 color issues. Nothing fancy, but it works.
5628
5631
5629 2002-02-10 Fernando Perez <fperez@colorado.edu>
5632 2002-02-10 Fernando Perez <fperez@colorado.edu>
5630
5633
5631 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5634 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5632 os.path.expanduser() call so that we can type @run ~/myfile.py and
5635 os.path.expanduser() call so that we can type @run ~/myfile.py and
5633 have thigs work as expected.
5636 have thigs work as expected.
5634
5637
5635 * IPython/genutils.py (page): fixed exception handling so things
5638 * IPython/genutils.py (page): fixed exception handling so things
5636 work both in Unix and Windows correctly. Quitting a pager triggers
5639 work both in Unix and Windows correctly. Quitting a pager triggers
5637 an IOError/broken pipe in Unix, and in windows not finding a pager
5640 an IOError/broken pipe in Unix, and in windows not finding a pager
5638 is also an IOError, so I had to actually look at the return value
5641 is also an IOError, so I had to actually look at the return value
5639 of the exception, not just the exception itself. Should be ok now.
5642 of the exception, not just the exception itself. Should be ok now.
5640
5643
5641 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5644 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5642 modified to allow case-insensitive color scheme changes.
5645 modified to allow case-insensitive color scheme changes.
5643
5646
5644 2002-02-09 Fernando Perez <fperez@colorado.edu>
5647 2002-02-09 Fernando Perez <fperez@colorado.edu>
5645
5648
5646 * IPython/genutils.py (native_line_ends): new function to leave
5649 * IPython/genutils.py (native_line_ends): new function to leave
5647 user config files with os-native line-endings.
5650 user config files with os-native line-endings.
5648
5651
5649 * README and manual updates.
5652 * README and manual updates.
5650
5653
5651 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5654 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5652 instead of StringType to catch Unicode strings.
5655 instead of StringType to catch Unicode strings.
5653
5656
5654 * IPython/genutils.py (filefind): fixed bug for paths with
5657 * IPython/genutils.py (filefind): fixed bug for paths with
5655 embedded spaces (very common in Windows).
5658 embedded spaces (very common in Windows).
5656
5659
5657 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5660 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5658 files under Windows, so that they get automatically associated
5661 files under Windows, so that they get automatically associated
5659 with a text editor. Windows makes it a pain to handle
5662 with a text editor. Windows makes it a pain to handle
5660 extension-less files.
5663 extension-less files.
5661
5664
5662 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5665 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5663 warning about readline only occur for Posix. In Windows there's no
5666 warning about readline only occur for Posix. In Windows there's no
5664 way to get readline, so why bother with the warning.
5667 way to get readline, so why bother with the warning.
5665
5668
5666 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5669 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5667 for __str__ instead of dir(self), since dir() changed in 2.2.
5670 for __str__ instead of dir(self), since dir() changed in 2.2.
5668
5671
5669 * Ported to Windows! Tested on XP, I suspect it should work fine
5672 * Ported to Windows! Tested on XP, I suspect it should work fine
5670 on NT/2000, but I don't think it will work on 98 et al. That
5673 on NT/2000, but I don't think it will work on 98 et al. That
5671 series of Windows is such a piece of junk anyway that I won't try
5674 series of Windows is such a piece of junk anyway that I won't try
5672 porting it there. The XP port was straightforward, showed a few
5675 porting it there. The XP port was straightforward, showed a few
5673 bugs here and there (fixed all), in particular some string
5676 bugs here and there (fixed all), in particular some string
5674 handling stuff which required considering Unicode strings (which
5677 handling stuff which required considering Unicode strings (which
5675 Windows uses). This is good, but hasn't been too tested :) No
5678 Windows uses). This is good, but hasn't been too tested :) No
5676 fancy installer yet, I'll put a note in the manual so people at
5679 fancy installer yet, I'll put a note in the manual so people at
5677 least make manually a shortcut.
5680 least make manually a shortcut.
5678
5681
5679 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5682 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5680 into a single one, "colors". This now controls both prompt and
5683 into a single one, "colors". This now controls both prompt and
5681 exception color schemes, and can be changed both at startup
5684 exception color schemes, and can be changed both at startup
5682 (either via command-line switches or via ipythonrc files) and at
5685 (either via command-line switches or via ipythonrc files) and at
5683 runtime, with @colors.
5686 runtime, with @colors.
5684 (Magic.magic_run): renamed @prun to @run and removed the old
5687 (Magic.magic_run): renamed @prun to @run and removed the old
5685 @run. The two were too similar to warrant keeping both.
5688 @run. The two were too similar to warrant keeping both.
5686
5689
5687 2002-02-03 Fernando Perez <fperez@colorado.edu>
5690 2002-02-03 Fernando Perez <fperez@colorado.edu>
5688
5691
5689 * IPython/iplib.py (install_first_time): Added comment on how to
5692 * IPython/iplib.py (install_first_time): Added comment on how to
5690 configure the color options for first-time users. Put a <return>
5693 configure the color options for first-time users. Put a <return>
5691 request at the end so that small-terminal users get a chance to
5694 request at the end so that small-terminal users get a chance to
5692 read the startup info.
5695 read the startup info.
5693
5696
5694 2002-01-23 Fernando Perez <fperez@colorado.edu>
5697 2002-01-23 Fernando Perez <fperez@colorado.edu>
5695
5698
5696 * IPython/iplib.py (CachedOutput.update): Changed output memory
5699 * IPython/iplib.py (CachedOutput.update): Changed output memory
5697 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5700 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5698 input history we still use _i. Did this b/c these variable are
5701 input history we still use _i. Did this b/c these variable are
5699 very commonly used in interactive work, so the less we need to
5702 very commonly used in interactive work, so the less we need to
5700 type the better off we are.
5703 type the better off we are.
5701 (Magic.magic_prun): updated @prun to better handle the namespaces
5704 (Magic.magic_prun): updated @prun to better handle the namespaces
5702 the file will run in, including a fix for __name__ not being set
5705 the file will run in, including a fix for __name__ not being set
5703 before.
5706 before.
5704
5707
5705 2002-01-20 Fernando Perez <fperez@colorado.edu>
5708 2002-01-20 Fernando Perez <fperez@colorado.edu>
5706
5709
5707 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5710 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5708 extra garbage for Python 2.2. Need to look more carefully into
5711 extra garbage for Python 2.2. Need to look more carefully into
5709 this later.
5712 this later.
5710
5713
5711 2002-01-19 Fernando Perez <fperez@colorado.edu>
5714 2002-01-19 Fernando Perez <fperez@colorado.edu>
5712
5715
5713 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5716 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5714 display SyntaxError exceptions properly formatted when they occur
5717 display SyntaxError exceptions properly formatted when they occur
5715 (they can be triggered by imported code).
5718 (they can be triggered by imported code).
5716
5719
5717 2002-01-18 Fernando Perez <fperez@colorado.edu>
5720 2002-01-18 Fernando Perez <fperez@colorado.edu>
5718
5721
5719 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5722 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5720 SyntaxError exceptions are reported nicely formatted, instead of
5723 SyntaxError exceptions are reported nicely formatted, instead of
5721 spitting out only offset information as before.
5724 spitting out only offset information as before.
5722 (Magic.magic_prun): Added the @prun function for executing
5725 (Magic.magic_prun): Added the @prun function for executing
5723 programs with command line args inside IPython.
5726 programs with command line args inside IPython.
5724
5727
5725 2002-01-16 Fernando Perez <fperez@colorado.edu>
5728 2002-01-16 Fernando Perez <fperez@colorado.edu>
5726
5729
5727 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5730 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5728 to *not* include the last item given in a range. This brings their
5731 to *not* include the last item given in a range. This brings their
5729 behavior in line with Python's slicing:
5732 behavior in line with Python's slicing:
5730 a[n1:n2] -> a[n1]...a[n2-1]
5733 a[n1:n2] -> a[n1]...a[n2-1]
5731 It may be a bit less convenient, but I prefer to stick to Python's
5734 It may be a bit less convenient, but I prefer to stick to Python's
5732 conventions *everywhere*, so users never have to wonder.
5735 conventions *everywhere*, so users never have to wonder.
5733 (Magic.magic_macro): Added @macro function to ease the creation of
5736 (Magic.magic_macro): Added @macro function to ease the creation of
5734 macros.
5737 macros.
5735
5738
5736 2002-01-05 Fernando Perez <fperez@colorado.edu>
5739 2002-01-05 Fernando Perez <fperez@colorado.edu>
5737
5740
5738 * Released 0.2.4.
5741 * Released 0.2.4.
5739
5742
5740 * IPython/iplib.py (Magic.magic_pdef):
5743 * IPython/iplib.py (Magic.magic_pdef):
5741 (InteractiveShell.safe_execfile): report magic lines and error
5744 (InteractiveShell.safe_execfile): report magic lines and error
5742 lines without line numbers so one can easily copy/paste them for
5745 lines without line numbers so one can easily copy/paste them for
5743 re-execution.
5746 re-execution.
5744
5747
5745 * Updated manual with recent changes.
5748 * Updated manual with recent changes.
5746
5749
5747 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5750 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5748 docstring printing when class? is called. Very handy for knowing
5751 docstring printing when class? is called. Very handy for knowing
5749 how to create class instances (as long as __init__ is well
5752 how to create class instances (as long as __init__ is well
5750 documented, of course :)
5753 documented, of course :)
5751 (Magic.magic_doc): print both class and constructor docstrings.
5754 (Magic.magic_doc): print both class and constructor docstrings.
5752 (Magic.magic_pdef): give constructor info if passed a class and
5755 (Magic.magic_pdef): give constructor info if passed a class and
5753 __call__ info for callable object instances.
5756 __call__ info for callable object instances.
5754
5757
5755 2002-01-04 Fernando Perez <fperez@colorado.edu>
5758 2002-01-04 Fernando Perez <fperez@colorado.edu>
5756
5759
5757 * Made deep_reload() off by default. It doesn't always work
5760 * Made deep_reload() off by default. It doesn't always work
5758 exactly as intended, so it's probably safer to have it off. It's
5761 exactly as intended, so it's probably safer to have it off. It's
5759 still available as dreload() anyway, so nothing is lost.
5762 still available as dreload() anyway, so nothing is lost.
5760
5763
5761 2002-01-02 Fernando Perez <fperez@colorado.edu>
5764 2002-01-02 Fernando Perez <fperez@colorado.edu>
5762
5765
5763 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5766 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5764 so I wanted an updated release).
5767 so I wanted an updated release).
5765
5768
5766 2001-12-27 Fernando Perez <fperez@colorado.edu>
5769 2001-12-27 Fernando Perez <fperez@colorado.edu>
5767
5770
5768 * IPython/iplib.py (InteractiveShell.interact): Added the original
5771 * IPython/iplib.py (InteractiveShell.interact): Added the original
5769 code from 'code.py' for this module in order to change the
5772 code from 'code.py' for this module in order to change the
5770 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5773 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5771 the history cache would break when the user hit Ctrl-C, and
5774 the history cache would break when the user hit Ctrl-C, and
5772 interact() offers no way to add any hooks to it.
5775 interact() offers no way to add any hooks to it.
5773
5776
5774 2001-12-23 Fernando Perez <fperez@colorado.edu>
5777 2001-12-23 Fernando Perez <fperez@colorado.edu>
5775
5778
5776 * setup.py: added check for 'MANIFEST' before trying to remove
5779 * setup.py: added check for 'MANIFEST' before trying to remove
5777 it. Thanks to Sean Reifschneider.
5780 it. Thanks to Sean Reifschneider.
5778
5781
5779 2001-12-22 Fernando Perez <fperez@colorado.edu>
5782 2001-12-22 Fernando Perez <fperez@colorado.edu>
5780
5783
5781 * Released 0.2.2.
5784 * Released 0.2.2.
5782
5785
5783 * Finished (reasonably) writing the manual. Later will add the
5786 * Finished (reasonably) writing the manual. Later will add the
5784 python-standard navigation stylesheets, but for the time being
5787 python-standard navigation stylesheets, but for the time being
5785 it's fairly complete. Distribution will include html and pdf
5788 it's fairly complete. Distribution will include html and pdf
5786 versions.
5789 versions.
5787
5790
5788 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5791 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5789 (MayaVi author).
5792 (MayaVi author).
5790
5793
5791 2001-12-21 Fernando Perez <fperez@colorado.edu>
5794 2001-12-21 Fernando Perez <fperez@colorado.edu>
5792
5795
5793 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5796 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5794 good public release, I think (with the manual and the distutils
5797 good public release, I think (with the manual and the distutils
5795 installer). The manual can use some work, but that can go
5798 installer). The manual can use some work, but that can go
5796 slowly. Otherwise I think it's quite nice for end users. Next
5799 slowly. Otherwise I think it's quite nice for end users. Next
5797 summer, rewrite the guts of it...
5800 summer, rewrite the guts of it...
5798
5801
5799 * Changed format of ipythonrc files to use whitespace as the
5802 * Changed format of ipythonrc files to use whitespace as the
5800 separator instead of an explicit '='. Cleaner.
5803 separator instead of an explicit '='. Cleaner.
5801
5804
5802 2001-12-20 Fernando Perez <fperez@colorado.edu>
5805 2001-12-20 Fernando Perez <fperez@colorado.edu>
5803
5806
5804 * Started a manual in LyX. For now it's just a quick merge of the
5807 * Started a manual in LyX. For now it's just a quick merge of the
5805 various internal docstrings and READMEs. Later it may grow into a
5808 various internal docstrings and READMEs. Later it may grow into a
5806 nice, full-blown manual.
5809 nice, full-blown manual.
5807
5810
5808 * Set up a distutils based installer. Installation should now be
5811 * Set up a distutils based installer. Installation should now be
5809 trivially simple for end-users.
5812 trivially simple for end-users.
5810
5813
5811 2001-12-11 Fernando Perez <fperez@colorado.edu>
5814 2001-12-11 Fernando Perez <fperez@colorado.edu>
5812
5815
5813 * Released 0.2.0. First public release, announced it at
5816 * Released 0.2.0. First public release, announced it at
5814 comp.lang.python. From now on, just bugfixes...
5817 comp.lang.python. From now on, just bugfixes...
5815
5818
5816 * Went through all the files, set copyright/license notices and
5819 * Went through all the files, set copyright/license notices and
5817 cleaned up things. Ready for release.
5820 cleaned up things. Ready for release.
5818
5821
5819 2001-12-10 Fernando Perez <fperez@colorado.edu>
5822 2001-12-10 Fernando Perez <fperez@colorado.edu>
5820
5823
5821 * Changed the first-time installer not to use tarfiles. It's more
5824 * Changed the first-time installer not to use tarfiles. It's more
5822 robust now and less unix-dependent. Also makes it easier for
5825 robust now and less unix-dependent. Also makes it easier for
5823 people to later upgrade versions.
5826 people to later upgrade versions.
5824
5827
5825 * Changed @exit to @abort to reflect the fact that it's pretty
5828 * Changed @exit to @abort to reflect the fact that it's pretty
5826 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5829 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5827 becomes significant only when IPyhton is embedded: in that case,
5830 becomes significant only when IPyhton is embedded: in that case,
5828 C-D closes IPython only, but @abort kills the enclosing program
5831 C-D closes IPython only, but @abort kills the enclosing program
5829 too (unless it had called IPython inside a try catching
5832 too (unless it had called IPython inside a try catching
5830 SystemExit).
5833 SystemExit).
5831
5834
5832 * Created Shell module which exposes the actuall IPython Shell
5835 * Created Shell module which exposes the actuall IPython Shell
5833 classes, currently the normal and the embeddable one. This at
5836 classes, currently the normal and the embeddable one. This at
5834 least offers a stable interface we won't need to change when
5837 least offers a stable interface we won't need to change when
5835 (later) the internals are rewritten. That rewrite will be confined
5838 (later) the internals are rewritten. That rewrite will be confined
5836 to iplib and ipmaker, but the Shell interface should remain as is.
5839 to iplib and ipmaker, but the Shell interface should remain as is.
5837
5840
5838 * Added embed module which offers an embeddable IPShell object,
5841 * Added embed module which offers an embeddable IPShell object,
5839 useful to fire up IPython *inside* a running program. Great for
5842 useful to fire up IPython *inside* a running program. Great for
5840 debugging or dynamical data analysis.
5843 debugging or dynamical data analysis.
5841
5844
5842 2001-12-08 Fernando Perez <fperez@colorado.edu>
5845 2001-12-08 Fernando Perez <fperez@colorado.edu>
5843
5846
5844 * Fixed small bug preventing seeing info from methods of defined
5847 * Fixed small bug preventing seeing info from methods of defined
5845 objects (incorrect namespace in _ofind()).
5848 objects (incorrect namespace in _ofind()).
5846
5849
5847 * Documentation cleanup. Moved the main usage docstrings to a
5850 * Documentation cleanup. Moved the main usage docstrings to a
5848 separate file, usage.py (cleaner to maintain, and hopefully in the
5851 separate file, usage.py (cleaner to maintain, and hopefully in the
5849 future some perlpod-like way of producing interactive, man and
5852 future some perlpod-like way of producing interactive, man and
5850 html docs out of it will be found).
5853 html docs out of it will be found).
5851
5854
5852 * Added @profile to see your profile at any time.
5855 * Added @profile to see your profile at any time.
5853
5856
5854 * Added @p as an alias for 'print'. It's especially convenient if
5857 * Added @p as an alias for 'print'. It's especially convenient if
5855 using automagic ('p x' prints x).
5858 using automagic ('p x' prints x).
5856
5859
5857 * Small cleanups and fixes after a pychecker run.
5860 * Small cleanups and fixes after a pychecker run.
5858
5861
5859 * Changed the @cd command to handle @cd - and @cd -<n> for
5862 * Changed the @cd command to handle @cd - and @cd -<n> for
5860 visiting any directory in _dh.
5863 visiting any directory in _dh.
5861
5864
5862 * Introduced _dh, a history of visited directories. @dhist prints
5865 * Introduced _dh, a history of visited directories. @dhist prints
5863 it out with numbers.
5866 it out with numbers.
5864
5867
5865 2001-12-07 Fernando Perez <fperez@colorado.edu>
5868 2001-12-07 Fernando Perez <fperez@colorado.edu>
5866
5869
5867 * Released 0.1.22
5870 * Released 0.1.22
5868
5871
5869 * Made initialization a bit more robust against invalid color
5872 * Made initialization a bit more robust against invalid color
5870 options in user input (exit, not traceback-crash).
5873 options in user input (exit, not traceback-crash).
5871
5874
5872 * Changed the bug crash reporter to write the report only in the
5875 * Changed the bug crash reporter to write the report only in the
5873 user's .ipython directory. That way IPython won't litter people's
5876 user's .ipython directory. That way IPython won't litter people's
5874 hard disks with crash files all over the place. Also print on
5877 hard disks with crash files all over the place. Also print on
5875 screen the necessary mail command.
5878 screen the necessary mail command.
5876
5879
5877 * With the new ultraTB, implemented LightBG color scheme for light
5880 * With the new ultraTB, implemented LightBG color scheme for light
5878 background terminals. A lot of people like white backgrounds, so I
5881 background terminals. A lot of people like white backgrounds, so I
5879 guess we should at least give them something readable.
5882 guess we should at least give them something readable.
5880
5883
5881 2001-12-06 Fernando Perez <fperez@colorado.edu>
5884 2001-12-06 Fernando Perez <fperez@colorado.edu>
5882
5885
5883 * Modified the structure of ultraTB. Now there's a proper class
5886 * Modified the structure of ultraTB. Now there's a proper class
5884 for tables of color schemes which allow adding schemes easily and
5887 for tables of color schemes which allow adding schemes easily and
5885 switching the active scheme without creating a new instance every
5888 switching the active scheme without creating a new instance every
5886 time (which was ridiculous). The syntax for creating new schemes
5889 time (which was ridiculous). The syntax for creating new schemes
5887 is also cleaner. I think ultraTB is finally done, with a clean
5890 is also cleaner. I think ultraTB is finally done, with a clean
5888 class structure. Names are also much cleaner (now there's proper
5891 class structure. Names are also much cleaner (now there's proper
5889 color tables, no need for every variable to also have 'color' in
5892 color tables, no need for every variable to also have 'color' in
5890 its name).
5893 its name).
5891
5894
5892 * Broke down genutils into separate files. Now genutils only
5895 * Broke down genutils into separate files. Now genutils only
5893 contains utility functions, and classes have been moved to their
5896 contains utility functions, and classes have been moved to their
5894 own files (they had enough independent functionality to warrant
5897 own files (they had enough independent functionality to warrant
5895 it): ConfigLoader, OutputTrap, Struct.
5898 it): ConfigLoader, OutputTrap, Struct.
5896
5899
5897 2001-12-05 Fernando Perez <fperez@colorado.edu>
5900 2001-12-05 Fernando Perez <fperez@colorado.edu>
5898
5901
5899 * IPython turns 21! Released version 0.1.21, as a candidate for
5902 * IPython turns 21! Released version 0.1.21, as a candidate for
5900 public consumption. If all goes well, release in a few days.
5903 public consumption. If all goes well, release in a few days.
5901
5904
5902 * Fixed path bug (files in Extensions/ directory wouldn't be found
5905 * Fixed path bug (files in Extensions/ directory wouldn't be found
5903 unless IPython/ was explicitly in sys.path).
5906 unless IPython/ was explicitly in sys.path).
5904
5907
5905 * Extended the FlexCompleter class as MagicCompleter to allow
5908 * Extended the FlexCompleter class as MagicCompleter to allow
5906 completion of @-starting lines.
5909 completion of @-starting lines.
5907
5910
5908 * Created __release__.py file as a central repository for release
5911 * Created __release__.py file as a central repository for release
5909 info that other files can read from.
5912 info that other files can read from.
5910
5913
5911 * Fixed small bug in logging: when logging was turned on in
5914 * Fixed small bug in logging: when logging was turned on in
5912 mid-session, old lines with special meanings (!@?) were being
5915 mid-session, old lines with special meanings (!@?) were being
5913 logged without the prepended comment, which is necessary since
5916 logged without the prepended comment, which is necessary since
5914 they are not truly valid python syntax. This should make session
5917 they are not truly valid python syntax. This should make session
5915 restores produce less errors.
5918 restores produce less errors.
5916
5919
5917 * The namespace cleanup forced me to make a FlexCompleter class
5920 * The namespace cleanup forced me to make a FlexCompleter class
5918 which is nothing but a ripoff of rlcompleter, but with selectable
5921 which is nothing but a ripoff of rlcompleter, but with selectable
5919 namespace (rlcompleter only works in __main__.__dict__). I'll try
5922 namespace (rlcompleter only works in __main__.__dict__). I'll try
5920 to submit a note to the authors to see if this change can be
5923 to submit a note to the authors to see if this change can be
5921 incorporated in future rlcompleter releases (Dec.6: done)
5924 incorporated in future rlcompleter releases (Dec.6: done)
5922
5925
5923 * More fixes to namespace handling. It was a mess! Now all
5926 * More fixes to namespace handling. It was a mess! Now all
5924 explicit references to __main__.__dict__ are gone (except when
5927 explicit references to __main__.__dict__ are gone (except when
5925 really needed) and everything is handled through the namespace
5928 really needed) and everything is handled through the namespace
5926 dicts in the IPython instance. We seem to be getting somewhere
5929 dicts in the IPython instance. We seem to be getting somewhere
5927 with this, finally...
5930 with this, finally...
5928
5931
5929 * Small documentation updates.
5932 * Small documentation updates.
5930
5933
5931 * Created the Extensions directory under IPython (with an
5934 * Created the Extensions directory under IPython (with an
5932 __init__.py). Put the PhysicalQ stuff there. This directory should
5935 __init__.py). Put the PhysicalQ stuff there. This directory should
5933 be used for all special-purpose extensions.
5936 be used for all special-purpose extensions.
5934
5937
5935 * File renaming:
5938 * File renaming:
5936 ipythonlib --> ipmaker
5939 ipythonlib --> ipmaker
5937 ipplib --> iplib
5940 ipplib --> iplib
5938 This makes a bit more sense in terms of what these files actually do.
5941 This makes a bit more sense in terms of what these files actually do.
5939
5942
5940 * Moved all the classes and functions in ipythonlib to ipplib, so
5943 * Moved all the classes and functions in ipythonlib to ipplib, so
5941 now ipythonlib only has make_IPython(). This will ease up its
5944 now ipythonlib only has make_IPython(). This will ease up its
5942 splitting in smaller functional chunks later.
5945 splitting in smaller functional chunks later.
5943
5946
5944 * Cleaned up (done, I think) output of @whos. Better column
5947 * Cleaned up (done, I think) output of @whos. Better column
5945 formatting, and now shows str(var) for as much as it can, which is
5948 formatting, and now shows str(var) for as much as it can, which is
5946 typically what one gets with a 'print var'.
5949 typically what one gets with a 'print var'.
5947
5950
5948 2001-12-04 Fernando Perez <fperez@colorado.edu>
5951 2001-12-04 Fernando Perez <fperez@colorado.edu>
5949
5952
5950 * Fixed namespace problems. Now builtin/IPyhton/user names get
5953 * Fixed namespace problems. Now builtin/IPyhton/user names get
5951 properly reported in their namespace. Internal namespace handling
5954 properly reported in their namespace. Internal namespace handling
5952 is finally getting decent (not perfect yet, but much better than
5955 is finally getting decent (not perfect yet, but much better than
5953 the ad-hoc mess we had).
5956 the ad-hoc mess we had).
5954
5957
5955 * Removed -exit option. If people just want to run a python
5958 * Removed -exit option. If people just want to run a python
5956 script, that's what the normal interpreter is for. Less
5959 script, that's what the normal interpreter is for. Less
5957 unnecessary options, less chances for bugs.
5960 unnecessary options, less chances for bugs.
5958
5961
5959 * Added a crash handler which generates a complete post-mortem if
5962 * Added a crash handler which generates a complete post-mortem if
5960 IPython crashes. This will help a lot in tracking bugs down the
5963 IPython crashes. This will help a lot in tracking bugs down the
5961 road.
5964 road.
5962
5965
5963 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5966 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5964 which were boud to functions being reassigned would bypass the
5967 which were boud to functions being reassigned would bypass the
5965 logger, breaking the sync of _il with the prompt counter. This
5968 logger, breaking the sync of _il with the prompt counter. This
5966 would then crash IPython later when a new line was logged.
5969 would then crash IPython later when a new line was logged.
5967
5970
5968 2001-12-02 Fernando Perez <fperez@colorado.edu>
5971 2001-12-02 Fernando Perez <fperez@colorado.edu>
5969
5972
5970 * Made IPython a package. This means people don't have to clutter
5973 * Made IPython a package. This means people don't have to clutter
5971 their sys.path with yet another directory. Changed the INSTALL
5974 their sys.path with yet another directory. Changed the INSTALL
5972 file accordingly.
5975 file accordingly.
5973
5976
5974 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5977 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5975 sorts its output (so @who shows it sorted) and @whos formats the
5978 sorts its output (so @who shows it sorted) and @whos formats the
5976 table according to the width of the first column. Nicer, easier to
5979 table according to the width of the first column. Nicer, easier to
5977 read. Todo: write a generic table_format() which takes a list of
5980 read. Todo: write a generic table_format() which takes a list of
5978 lists and prints it nicely formatted, with optional row/column
5981 lists and prints it nicely formatted, with optional row/column
5979 separators and proper padding and justification.
5982 separators and proper padding and justification.
5980
5983
5981 * Released 0.1.20
5984 * Released 0.1.20
5982
5985
5983 * Fixed bug in @log which would reverse the inputcache list (a
5986 * Fixed bug in @log which would reverse the inputcache list (a
5984 copy operation was missing).
5987 copy operation was missing).
5985
5988
5986 * Code cleanup. @config was changed to use page(). Better, since
5989 * Code cleanup. @config was changed to use page(). Better, since
5987 its output is always quite long.
5990 its output is always quite long.
5988
5991
5989 * Itpl is back as a dependency. I was having too many problems
5992 * Itpl is back as a dependency. I was having too many problems
5990 getting the parametric aliases to work reliably, and it's just
5993 getting the parametric aliases to work reliably, and it's just
5991 easier to code weird string operations with it than playing %()s
5994 easier to code weird string operations with it than playing %()s
5992 games. It's only ~6k, so I don't think it's too big a deal.
5995 games. It's only ~6k, so I don't think it's too big a deal.
5993
5996
5994 * Found (and fixed) a very nasty bug with history. !lines weren't
5997 * Found (and fixed) a very nasty bug with history. !lines weren't
5995 getting cached, and the out of sync caches would crash
5998 getting cached, and the out of sync caches would crash
5996 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5999 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5997 division of labor a bit better. Bug fixed, cleaner structure.
6000 division of labor a bit better. Bug fixed, cleaner structure.
5998
6001
5999 2001-12-01 Fernando Perez <fperez@colorado.edu>
6002 2001-12-01 Fernando Perez <fperez@colorado.edu>
6000
6003
6001 * Released 0.1.19
6004 * Released 0.1.19
6002
6005
6003 * Added option -n to @hist to prevent line number printing. Much
6006 * Added option -n to @hist to prevent line number printing. Much
6004 easier to copy/paste code this way.
6007 easier to copy/paste code this way.
6005
6008
6006 * Created global _il to hold the input list. Allows easy
6009 * Created global _il to hold the input list. Allows easy
6007 re-execution of blocks of code by slicing it (inspired by Janko's
6010 re-execution of blocks of code by slicing it (inspired by Janko's
6008 comment on 'macros').
6011 comment on 'macros').
6009
6012
6010 * Small fixes and doc updates.
6013 * Small fixes and doc updates.
6011
6014
6012 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6015 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6013 much too fragile with automagic. Handles properly multi-line
6016 much too fragile with automagic. Handles properly multi-line
6014 statements and takes parameters.
6017 statements and takes parameters.
6015
6018
6016 2001-11-30 Fernando Perez <fperez@colorado.edu>
6019 2001-11-30 Fernando Perez <fperez@colorado.edu>
6017
6020
6018 * Version 0.1.18 released.
6021 * Version 0.1.18 released.
6019
6022
6020 * Fixed nasty namespace bug in initial module imports.
6023 * Fixed nasty namespace bug in initial module imports.
6021
6024
6022 * Added copyright/license notes to all code files (except
6025 * Added copyright/license notes to all code files (except
6023 DPyGetOpt). For the time being, LGPL. That could change.
6026 DPyGetOpt). For the time being, LGPL. That could change.
6024
6027
6025 * Rewrote a much nicer README, updated INSTALL, cleaned up
6028 * Rewrote a much nicer README, updated INSTALL, cleaned up
6026 ipythonrc-* samples.
6029 ipythonrc-* samples.
6027
6030
6028 * Overall code/documentation cleanup. Basically ready for
6031 * Overall code/documentation cleanup. Basically ready for
6029 release. Only remaining thing: licence decision (LGPL?).
6032 release. Only remaining thing: licence decision (LGPL?).
6030
6033
6031 * Converted load_config to a class, ConfigLoader. Now recursion
6034 * Converted load_config to a class, ConfigLoader. Now recursion
6032 control is better organized. Doesn't include the same file twice.
6035 control is better organized. Doesn't include the same file twice.
6033
6036
6034 2001-11-29 Fernando Perez <fperez@colorado.edu>
6037 2001-11-29 Fernando Perez <fperez@colorado.edu>
6035
6038
6036 * Got input history working. Changed output history variables from
6039 * Got input history working. Changed output history variables from
6037 _p to _o so that _i is for input and _o for output. Just cleaner
6040 _p to _o so that _i is for input and _o for output. Just cleaner
6038 convention.
6041 convention.
6039
6042
6040 * Implemented parametric aliases. This pretty much allows the
6043 * Implemented parametric aliases. This pretty much allows the
6041 alias system to offer full-blown shell convenience, I think.
6044 alias system to offer full-blown shell convenience, I think.
6042
6045
6043 * Version 0.1.17 released, 0.1.18 opened.
6046 * Version 0.1.17 released, 0.1.18 opened.
6044
6047
6045 * dot_ipython/ipythonrc (alias): added documentation.
6048 * dot_ipython/ipythonrc (alias): added documentation.
6046 (xcolor): Fixed small bug (xcolors -> xcolor)
6049 (xcolor): Fixed small bug (xcolors -> xcolor)
6047
6050
6048 * Changed the alias system. Now alias is a magic command to define
6051 * Changed the alias system. Now alias is a magic command to define
6049 aliases just like the shell. Rationale: the builtin magics should
6052 aliases just like the shell. Rationale: the builtin magics should
6050 be there for things deeply connected to IPython's
6053 be there for things deeply connected to IPython's
6051 architecture. And this is a much lighter system for what I think
6054 architecture. And this is a much lighter system for what I think
6052 is the really important feature: allowing users to define quickly
6055 is the really important feature: allowing users to define quickly
6053 magics that will do shell things for them, so they can customize
6056 magics that will do shell things for them, so they can customize
6054 IPython easily to match their work habits. If someone is really
6057 IPython easily to match their work habits. If someone is really
6055 desperate to have another name for a builtin alias, they can
6058 desperate to have another name for a builtin alias, they can
6056 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6059 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6057 works.
6060 works.
6058
6061
6059 2001-11-28 Fernando Perez <fperez@colorado.edu>
6062 2001-11-28 Fernando Perez <fperez@colorado.edu>
6060
6063
6061 * Changed @file so that it opens the source file at the proper
6064 * Changed @file so that it opens the source file at the proper
6062 line. Since it uses less, if your EDITOR environment is
6065 line. Since it uses less, if your EDITOR environment is
6063 configured, typing v will immediately open your editor of choice
6066 configured, typing v will immediately open your editor of choice
6064 right at the line where the object is defined. Not as quick as
6067 right at the line where the object is defined. Not as quick as
6065 having a direct @edit command, but for all intents and purposes it
6068 having a direct @edit command, but for all intents and purposes it
6066 works. And I don't have to worry about writing @edit to deal with
6069 works. And I don't have to worry about writing @edit to deal with
6067 all the editors, less does that.
6070 all the editors, less does that.
6068
6071
6069 * Version 0.1.16 released, 0.1.17 opened.
6072 * Version 0.1.16 released, 0.1.17 opened.
6070
6073
6071 * Fixed some nasty bugs in the page/page_dumb combo that could
6074 * Fixed some nasty bugs in the page/page_dumb combo that could
6072 crash IPython.
6075 crash IPython.
6073
6076
6074 2001-11-27 Fernando Perez <fperez@colorado.edu>
6077 2001-11-27 Fernando Perez <fperez@colorado.edu>
6075
6078
6076 * Version 0.1.15 released, 0.1.16 opened.
6079 * Version 0.1.15 released, 0.1.16 opened.
6077
6080
6078 * Finally got ? and ?? to work for undefined things: now it's
6081 * Finally got ? and ?? to work for undefined things: now it's
6079 possible to type {}.get? and get information about the get method
6082 possible to type {}.get? and get information about the get method
6080 of dicts, or os.path? even if only os is defined (so technically
6083 of dicts, or os.path? even if only os is defined (so technically
6081 os.path isn't). Works at any level. For example, after import os,
6084 os.path isn't). Works at any level. For example, after import os,
6082 os?, os.path?, os.path.abspath? all work. This is great, took some
6085 os?, os.path?, os.path.abspath? all work. This is great, took some
6083 work in _ofind.
6086 work in _ofind.
6084
6087
6085 * Fixed more bugs with logging. The sanest way to do it was to add
6088 * Fixed more bugs with logging. The sanest way to do it was to add
6086 to @log a 'mode' parameter. Killed two in one shot (this mode
6089 to @log a 'mode' parameter. Killed two in one shot (this mode
6087 option was a request of Janko's). I think it's finally clean
6090 option was a request of Janko's). I think it's finally clean
6088 (famous last words).
6091 (famous last words).
6089
6092
6090 * Added a page_dumb() pager which does a decent job of paging on
6093 * Added a page_dumb() pager which does a decent job of paging on
6091 screen, if better things (like less) aren't available. One less
6094 screen, if better things (like less) aren't available. One less
6092 unix dependency (someday maybe somebody will port this to
6095 unix dependency (someday maybe somebody will port this to
6093 windows).
6096 windows).
6094
6097
6095 * Fixed problem in magic_log: would lock of logging out if log
6098 * Fixed problem in magic_log: would lock of logging out if log
6096 creation failed (because it would still think it had succeeded).
6099 creation failed (because it would still think it had succeeded).
6097
6100
6098 * Improved the page() function using curses to auto-detect screen
6101 * Improved the page() function using curses to auto-detect screen
6099 size. Now it can make a much better decision on whether to print
6102 size. Now it can make a much better decision on whether to print
6100 or page a string. Option screen_length was modified: a value 0
6103 or page a string. Option screen_length was modified: a value 0
6101 means auto-detect, and that's the default now.
6104 means auto-detect, and that's the default now.
6102
6105
6103 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6106 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6104 go out. I'll test it for a few days, then talk to Janko about
6107 go out. I'll test it for a few days, then talk to Janko about
6105 licences and announce it.
6108 licences and announce it.
6106
6109
6107 * Fixed the length of the auto-generated ---> prompt which appears
6110 * Fixed the length of the auto-generated ---> prompt which appears
6108 for auto-parens and auto-quotes. Getting this right isn't trivial,
6111 for auto-parens and auto-quotes. Getting this right isn't trivial,
6109 with all the color escapes, different prompt types and optional
6112 with all the color escapes, different prompt types and optional
6110 separators. But it seems to be working in all the combinations.
6113 separators. But it seems to be working in all the combinations.
6111
6114
6112 2001-11-26 Fernando Perez <fperez@colorado.edu>
6115 2001-11-26 Fernando Perez <fperez@colorado.edu>
6113
6116
6114 * Wrote a regexp filter to get option types from the option names
6117 * Wrote a regexp filter to get option types from the option names
6115 string. This eliminates the need to manually keep two duplicate
6118 string. This eliminates the need to manually keep two duplicate
6116 lists.
6119 lists.
6117
6120
6118 * Removed the unneeded check_option_names. Now options are handled
6121 * Removed the unneeded check_option_names. Now options are handled
6119 in a much saner manner and it's easy to visually check that things
6122 in a much saner manner and it's easy to visually check that things
6120 are ok.
6123 are ok.
6121
6124
6122 * Updated version numbers on all files I modified to carry a
6125 * Updated version numbers on all files I modified to carry a
6123 notice so Janko and Nathan have clear version markers.
6126 notice so Janko and Nathan have clear version markers.
6124
6127
6125 * Updated docstring for ultraTB with my changes. I should send
6128 * Updated docstring for ultraTB with my changes. I should send
6126 this to Nathan.
6129 this to Nathan.
6127
6130
6128 * Lots of small fixes. Ran everything through pychecker again.
6131 * Lots of small fixes. Ran everything through pychecker again.
6129
6132
6130 * Made loading of deep_reload an cmd line option. If it's not too
6133 * Made loading of deep_reload an cmd line option. If it's not too
6131 kosher, now people can just disable it. With -nodeep_reload it's
6134 kosher, now people can just disable it. With -nodeep_reload it's
6132 still available as dreload(), it just won't overwrite reload().
6135 still available as dreload(), it just won't overwrite reload().
6133
6136
6134 * Moved many options to the no| form (-opt and -noopt
6137 * Moved many options to the no| form (-opt and -noopt
6135 accepted). Cleaner.
6138 accepted). Cleaner.
6136
6139
6137 * Changed magic_log so that if called with no parameters, it uses
6140 * Changed magic_log so that if called with no parameters, it uses
6138 'rotate' mode. That way auto-generated logs aren't automatically
6141 'rotate' mode. That way auto-generated logs aren't automatically
6139 over-written. For normal logs, now a backup is made if it exists
6142 over-written. For normal logs, now a backup is made if it exists
6140 (only 1 level of backups). A new 'backup' mode was added to the
6143 (only 1 level of backups). A new 'backup' mode was added to the
6141 Logger class to support this. This was a request by Janko.
6144 Logger class to support this. This was a request by Janko.
6142
6145
6143 * Added @logoff/@logon to stop/restart an active log.
6146 * Added @logoff/@logon to stop/restart an active log.
6144
6147
6145 * Fixed a lot of bugs in log saving/replay. It was pretty
6148 * Fixed a lot of bugs in log saving/replay. It was pretty
6146 broken. Now special lines (!@,/) appear properly in the command
6149 broken. Now special lines (!@,/) appear properly in the command
6147 history after a log replay.
6150 history after a log replay.
6148
6151
6149 * Tried and failed to implement full session saving via pickle. My
6152 * Tried and failed to implement full session saving via pickle. My
6150 idea was to pickle __main__.__dict__, but modules can't be
6153 idea was to pickle __main__.__dict__, but modules can't be
6151 pickled. This would be a better alternative to replaying logs, but
6154 pickled. This would be a better alternative to replaying logs, but
6152 seems quite tricky to get to work. Changed -session to be called
6155 seems quite tricky to get to work. Changed -session to be called
6153 -logplay, which more accurately reflects what it does. And if we
6156 -logplay, which more accurately reflects what it does. And if we
6154 ever get real session saving working, -session is now available.
6157 ever get real session saving working, -session is now available.
6155
6158
6156 * Implemented color schemes for prompts also. As for tracebacks,
6159 * Implemented color schemes for prompts also. As for tracebacks,
6157 currently only NoColor and Linux are supported. But now the
6160 currently only NoColor and Linux are supported. But now the
6158 infrastructure is in place, based on a generic ColorScheme
6161 infrastructure is in place, based on a generic ColorScheme
6159 class. So writing and activating new schemes both for the prompts
6162 class. So writing and activating new schemes both for the prompts
6160 and the tracebacks should be straightforward.
6163 and the tracebacks should be straightforward.
6161
6164
6162 * Version 0.1.13 released, 0.1.14 opened.
6165 * Version 0.1.13 released, 0.1.14 opened.
6163
6166
6164 * Changed handling of options for output cache. Now counter is
6167 * Changed handling of options for output cache. Now counter is
6165 hardwired starting at 1 and one specifies the maximum number of
6168 hardwired starting at 1 and one specifies the maximum number of
6166 entries *in the outcache* (not the max prompt counter). This is
6169 entries *in the outcache* (not the max prompt counter). This is
6167 much better, since many statements won't increase the cache
6170 much better, since many statements won't increase the cache
6168 count. It also eliminated some confusing options, now there's only
6171 count. It also eliminated some confusing options, now there's only
6169 one: cache_size.
6172 one: cache_size.
6170
6173
6171 * Added 'alias' magic function and magic_alias option in the
6174 * Added 'alias' magic function and magic_alias option in the
6172 ipythonrc file. Now the user can easily define whatever names he
6175 ipythonrc file. Now the user can easily define whatever names he
6173 wants for the magic functions without having to play weird
6176 wants for the magic functions without having to play weird
6174 namespace games. This gives IPython a real shell-like feel.
6177 namespace games. This gives IPython a real shell-like feel.
6175
6178
6176 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6179 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6177 @ or not).
6180 @ or not).
6178
6181
6179 This was one of the last remaining 'visible' bugs (that I know
6182 This was one of the last remaining 'visible' bugs (that I know
6180 of). I think if I can clean up the session loading so it works
6183 of). I think if I can clean up the session loading so it works
6181 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6184 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6182 about licensing).
6185 about licensing).
6183
6186
6184 2001-11-25 Fernando Perez <fperez@colorado.edu>
6187 2001-11-25 Fernando Perez <fperez@colorado.edu>
6185
6188
6186 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6189 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6187 there's a cleaner distinction between what ? and ?? show.
6190 there's a cleaner distinction between what ? and ?? show.
6188
6191
6189 * Added screen_length option. Now the user can define his own
6192 * Added screen_length option. Now the user can define his own
6190 screen size for page() operations.
6193 screen size for page() operations.
6191
6194
6192 * Implemented magic shell-like functions with automatic code
6195 * Implemented magic shell-like functions with automatic code
6193 generation. Now adding another function is just a matter of adding
6196 generation. Now adding another function is just a matter of adding
6194 an entry to a dict, and the function is dynamically generated at
6197 an entry to a dict, and the function is dynamically generated at
6195 run-time. Python has some really cool features!
6198 run-time. Python has some really cool features!
6196
6199
6197 * Renamed many options to cleanup conventions a little. Now all
6200 * Renamed many options to cleanup conventions a little. Now all
6198 are lowercase, and only underscores where needed. Also in the code
6201 are lowercase, and only underscores where needed. Also in the code
6199 option name tables are clearer.
6202 option name tables are clearer.
6200
6203
6201 * Changed prompts a little. Now input is 'In [n]:' instead of
6204 * Changed prompts a little. Now input is 'In [n]:' instead of
6202 'In[n]:='. This allows it the numbers to be aligned with the
6205 'In[n]:='. This allows it the numbers to be aligned with the
6203 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6206 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6204 Python (it was a Mathematica thing). The '...' continuation prompt
6207 Python (it was a Mathematica thing). The '...' continuation prompt
6205 was also changed a little to align better.
6208 was also changed a little to align better.
6206
6209
6207 * Fixed bug when flushing output cache. Not all _p<n> variables
6210 * Fixed bug when flushing output cache. Not all _p<n> variables
6208 exist, so their deletion needs to be wrapped in a try:
6211 exist, so their deletion needs to be wrapped in a try:
6209
6212
6210 * Figured out how to properly use inspect.formatargspec() (it
6213 * Figured out how to properly use inspect.formatargspec() (it
6211 requires the args preceded by *). So I removed all the code from
6214 requires the args preceded by *). So I removed all the code from
6212 _get_pdef in Magic, which was just replicating that.
6215 _get_pdef in Magic, which was just replicating that.
6213
6216
6214 * Added test to prefilter to allow redefining magic function names
6217 * Added test to prefilter to allow redefining magic function names
6215 as variables. This is ok, since the @ form is always available,
6218 as variables. This is ok, since the @ form is always available,
6216 but whe should allow the user to define a variable called 'ls' if
6219 but whe should allow the user to define a variable called 'ls' if
6217 he needs it.
6220 he needs it.
6218
6221
6219 * Moved the ToDo information from README into a separate ToDo.
6222 * Moved the ToDo information from README into a separate ToDo.
6220
6223
6221 * General code cleanup and small bugfixes. I think it's close to a
6224 * General code cleanup and small bugfixes. I think it's close to a
6222 state where it can be released, obviously with a big 'beta'
6225 state where it can be released, obviously with a big 'beta'
6223 warning on it.
6226 warning on it.
6224
6227
6225 * Got the magic function split to work. Now all magics are defined
6228 * Got the magic function split to work. Now all magics are defined
6226 in a separate class. It just organizes things a bit, and now
6229 in a separate class. It just organizes things a bit, and now
6227 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6230 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6228 was too long).
6231 was too long).
6229
6232
6230 * Changed @clear to @reset to avoid potential confusions with
6233 * Changed @clear to @reset to avoid potential confusions with
6231 the shell command clear. Also renamed @cl to @clear, which does
6234 the shell command clear. Also renamed @cl to @clear, which does
6232 exactly what people expect it to from their shell experience.
6235 exactly what people expect it to from their shell experience.
6233
6236
6234 Added a check to the @reset command (since it's so
6237 Added a check to the @reset command (since it's so
6235 destructive, it's probably a good idea to ask for confirmation).
6238 destructive, it's probably a good idea to ask for confirmation).
6236 But now reset only works for full namespace resetting. Since the
6239 But now reset only works for full namespace resetting. Since the
6237 del keyword is already there for deleting a few specific
6240 del keyword is already there for deleting a few specific
6238 variables, I don't see the point of having a redundant magic
6241 variables, I don't see the point of having a redundant magic
6239 function for the same task.
6242 function for the same task.
6240
6243
6241 2001-11-24 Fernando Perez <fperez@colorado.edu>
6244 2001-11-24 Fernando Perez <fperez@colorado.edu>
6242
6245
6243 * Updated the builtin docs (esp. the ? ones).
6246 * Updated the builtin docs (esp. the ? ones).
6244
6247
6245 * Ran all the code through pychecker. Not terribly impressed with
6248 * Ran all the code through pychecker. Not terribly impressed with
6246 it: lots of spurious warnings and didn't really find anything of
6249 it: lots of spurious warnings and didn't really find anything of
6247 substance (just a few modules being imported and not used).
6250 substance (just a few modules being imported and not used).
6248
6251
6249 * Implemented the new ultraTB functionality into IPython. New
6252 * Implemented the new ultraTB functionality into IPython. New
6250 option: xcolors. This chooses color scheme. xmode now only selects
6253 option: xcolors. This chooses color scheme. xmode now only selects
6251 between Plain and Verbose. Better orthogonality.
6254 between Plain and Verbose. Better orthogonality.
6252
6255
6253 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6256 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6254 mode and color scheme for the exception handlers. Now it's
6257 mode and color scheme for the exception handlers. Now it's
6255 possible to have the verbose traceback with no coloring.
6258 possible to have the verbose traceback with no coloring.
6256
6259
6257 2001-11-23 Fernando Perez <fperez@colorado.edu>
6260 2001-11-23 Fernando Perez <fperez@colorado.edu>
6258
6261
6259 * Version 0.1.12 released, 0.1.13 opened.
6262 * Version 0.1.12 released, 0.1.13 opened.
6260
6263
6261 * Removed option to set auto-quote and auto-paren escapes by
6264 * Removed option to set auto-quote and auto-paren escapes by
6262 user. The chances of breaking valid syntax are just too high. If
6265 user. The chances of breaking valid syntax are just too high. If
6263 someone *really* wants, they can always dig into the code.
6266 someone *really* wants, they can always dig into the code.
6264
6267
6265 * Made prompt separators configurable.
6268 * Made prompt separators configurable.
6266
6269
6267 2001-11-22 Fernando Perez <fperez@colorado.edu>
6270 2001-11-22 Fernando Perez <fperez@colorado.edu>
6268
6271
6269 * Small bugfixes in many places.
6272 * Small bugfixes in many places.
6270
6273
6271 * Removed the MyCompleter class from ipplib. It seemed redundant
6274 * Removed the MyCompleter class from ipplib. It seemed redundant
6272 with the C-p,C-n history search functionality. Less code to
6275 with the C-p,C-n history search functionality. Less code to
6273 maintain.
6276 maintain.
6274
6277
6275 * Moved all the original ipython.py code into ipythonlib.py. Right
6278 * Moved all the original ipython.py code into ipythonlib.py. Right
6276 now it's just one big dump into a function called make_IPython, so
6279 now it's just one big dump into a function called make_IPython, so
6277 no real modularity has been gained. But at least it makes the
6280 no real modularity has been gained. But at least it makes the
6278 wrapper script tiny, and since ipythonlib is a module, it gets
6281 wrapper script tiny, and since ipythonlib is a module, it gets
6279 compiled and startup is much faster.
6282 compiled and startup is much faster.
6280
6283
6281 This is a reasobably 'deep' change, so we should test it for a
6284 This is a reasobably 'deep' change, so we should test it for a
6282 while without messing too much more with the code.
6285 while without messing too much more with the code.
6283
6286
6284 2001-11-21 Fernando Perez <fperez@colorado.edu>
6287 2001-11-21 Fernando Perez <fperez@colorado.edu>
6285
6288
6286 * Version 0.1.11 released, 0.1.12 opened for further work.
6289 * Version 0.1.11 released, 0.1.12 opened for further work.
6287
6290
6288 * Removed dependency on Itpl. It was only needed in one place. It
6291 * Removed dependency on Itpl. It was only needed in one place. It
6289 would be nice if this became part of python, though. It makes life
6292 would be nice if this became part of python, though. It makes life
6290 *a lot* easier in some cases.
6293 *a lot* easier in some cases.
6291
6294
6292 * Simplified the prefilter code a bit. Now all handlers are
6295 * Simplified the prefilter code a bit. Now all handlers are
6293 expected to explicitly return a value (at least a blank string).
6296 expected to explicitly return a value (at least a blank string).
6294
6297
6295 * Heavy edits in ipplib. Removed the help system altogether. Now
6298 * Heavy edits in ipplib. Removed the help system altogether. Now
6296 obj?/?? is used for inspecting objects, a magic @doc prints
6299 obj?/?? is used for inspecting objects, a magic @doc prints
6297 docstrings, and full-blown Python help is accessed via the 'help'
6300 docstrings, and full-blown Python help is accessed via the 'help'
6298 keyword. This cleans up a lot of code (less to maintain) and does
6301 keyword. This cleans up a lot of code (less to maintain) and does
6299 the job. Since 'help' is now a standard Python component, might as
6302 the job. Since 'help' is now a standard Python component, might as
6300 well use it and remove duplicate functionality.
6303 well use it and remove duplicate functionality.
6301
6304
6302 Also removed the option to use ipplib as a standalone program. By
6305 Also removed the option to use ipplib as a standalone program. By
6303 now it's too dependent on other parts of IPython to function alone.
6306 now it's too dependent on other parts of IPython to function alone.
6304
6307
6305 * Fixed bug in genutils.pager. It would crash if the pager was
6308 * Fixed bug in genutils.pager. It would crash if the pager was
6306 exited immediately after opening (broken pipe).
6309 exited immediately after opening (broken pipe).
6307
6310
6308 * Trimmed down the VerboseTB reporting a little. The header is
6311 * Trimmed down the VerboseTB reporting a little. The header is
6309 much shorter now and the repeated exception arguments at the end
6312 much shorter now and the repeated exception arguments at the end
6310 have been removed. For interactive use the old header seemed a bit
6313 have been removed. For interactive use the old header seemed a bit
6311 excessive.
6314 excessive.
6312
6315
6313 * Fixed small bug in output of @whos for variables with multi-word
6316 * Fixed small bug in output of @whos for variables with multi-word
6314 types (only first word was displayed).
6317 types (only first word was displayed).
6315
6318
6316 2001-11-17 Fernando Perez <fperez@colorado.edu>
6319 2001-11-17 Fernando Perez <fperez@colorado.edu>
6317
6320
6318 * Version 0.1.10 released, 0.1.11 opened for further work.
6321 * Version 0.1.10 released, 0.1.11 opened for further work.
6319
6322
6320 * Modified dirs and friends. dirs now *returns* the stack (not
6323 * Modified dirs and friends. dirs now *returns* the stack (not
6321 prints), so one can manipulate it as a variable. Convenient to
6324 prints), so one can manipulate it as a variable. Convenient to
6322 travel along many directories.
6325 travel along many directories.
6323
6326
6324 * Fixed bug in magic_pdef: would only work with functions with
6327 * Fixed bug in magic_pdef: would only work with functions with
6325 arguments with default values.
6328 arguments with default values.
6326
6329
6327 2001-11-14 Fernando Perez <fperez@colorado.edu>
6330 2001-11-14 Fernando Perez <fperez@colorado.edu>
6328
6331
6329 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6332 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6330 example with IPython. Various other minor fixes and cleanups.
6333 example with IPython. Various other minor fixes and cleanups.
6331
6334
6332 * Version 0.1.9 released, 0.1.10 opened for further work.
6335 * Version 0.1.9 released, 0.1.10 opened for further work.
6333
6336
6334 * Added sys.path to the list of directories searched in the
6337 * Added sys.path to the list of directories searched in the
6335 execfile= option. It used to be the current directory and the
6338 execfile= option. It used to be the current directory and the
6336 user's IPYTHONDIR only.
6339 user's IPYTHONDIR only.
6337
6340
6338 2001-11-13 Fernando Perez <fperez@colorado.edu>
6341 2001-11-13 Fernando Perez <fperez@colorado.edu>
6339
6342
6340 * Reinstated the raw_input/prefilter separation that Janko had
6343 * Reinstated the raw_input/prefilter separation that Janko had
6341 initially. This gives a more convenient setup for extending the
6344 initially. This gives a more convenient setup for extending the
6342 pre-processor from the outside: raw_input always gets a string,
6345 pre-processor from the outside: raw_input always gets a string,
6343 and prefilter has to process it. We can then redefine prefilter
6346 and prefilter has to process it. We can then redefine prefilter
6344 from the outside and implement extensions for special
6347 from the outside and implement extensions for special
6345 purposes.
6348 purposes.
6346
6349
6347 Today I got one for inputting PhysicalQuantity objects
6350 Today I got one for inputting PhysicalQuantity objects
6348 (from Scientific) without needing any function calls at
6351 (from Scientific) without needing any function calls at
6349 all. Extremely convenient, and it's all done as a user-level
6352 all. Extremely convenient, and it's all done as a user-level
6350 extension (no IPython code was touched). Now instead of:
6353 extension (no IPython code was touched). Now instead of:
6351 a = PhysicalQuantity(4.2,'m/s**2')
6354 a = PhysicalQuantity(4.2,'m/s**2')
6352 one can simply say
6355 one can simply say
6353 a = 4.2 m/s**2
6356 a = 4.2 m/s**2
6354 or even
6357 or even
6355 a = 4.2 m/s^2
6358 a = 4.2 m/s^2
6356
6359
6357 I use this, but it's also a proof of concept: IPython really is
6360 I use this, but it's also a proof of concept: IPython really is
6358 fully user-extensible, even at the level of the parsing of the
6361 fully user-extensible, even at the level of the parsing of the
6359 command line. It's not trivial, but it's perfectly doable.
6362 command line. It's not trivial, but it's perfectly doable.
6360
6363
6361 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6364 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6362 the problem of modules being loaded in the inverse order in which
6365 the problem of modules being loaded in the inverse order in which
6363 they were defined in
6366 they were defined in
6364
6367
6365 * Version 0.1.8 released, 0.1.9 opened for further work.
6368 * Version 0.1.8 released, 0.1.9 opened for further work.
6366
6369
6367 * Added magics pdef, source and file. They respectively show the
6370 * Added magics pdef, source and file. They respectively show the
6368 definition line ('prototype' in C), source code and full python
6371 definition line ('prototype' in C), source code and full python
6369 file for any callable object. The object inspector oinfo uses
6372 file for any callable object. The object inspector oinfo uses
6370 these to show the same information.
6373 these to show the same information.
6371
6374
6372 * Version 0.1.7 released, 0.1.8 opened for further work.
6375 * Version 0.1.7 released, 0.1.8 opened for further work.
6373
6376
6374 * Separated all the magic functions into a class called Magic. The
6377 * Separated all the magic functions into a class called Magic. The
6375 InteractiveShell class was becoming too big for Xemacs to handle
6378 InteractiveShell class was becoming too big for Xemacs to handle
6376 (de-indenting a line would lock it up for 10 seconds while it
6379 (de-indenting a line would lock it up for 10 seconds while it
6377 backtracked on the whole class!)
6380 backtracked on the whole class!)
6378
6381
6379 FIXME: didn't work. It can be done, but right now namespaces are
6382 FIXME: didn't work. It can be done, but right now namespaces are
6380 all messed up. Do it later (reverted it for now, so at least
6383 all messed up. Do it later (reverted it for now, so at least
6381 everything works as before).
6384 everything works as before).
6382
6385
6383 * Got the object introspection system (magic_oinfo) working! I
6386 * Got the object introspection system (magic_oinfo) working! I
6384 think this is pretty much ready for release to Janko, so he can
6387 think this is pretty much ready for release to Janko, so he can
6385 test it for a while and then announce it. Pretty much 100% of what
6388 test it for a while and then announce it. Pretty much 100% of what
6386 I wanted for the 'phase 1' release is ready. Happy, tired.
6389 I wanted for the 'phase 1' release is ready. Happy, tired.
6387
6390
6388 2001-11-12 Fernando Perez <fperez@colorado.edu>
6391 2001-11-12 Fernando Perez <fperez@colorado.edu>
6389
6392
6390 * Version 0.1.6 released, 0.1.7 opened for further work.
6393 * Version 0.1.6 released, 0.1.7 opened for further work.
6391
6394
6392 * Fixed bug in printing: it used to test for truth before
6395 * Fixed bug in printing: it used to test for truth before
6393 printing, so 0 wouldn't print. Now checks for None.
6396 printing, so 0 wouldn't print. Now checks for None.
6394
6397
6395 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6398 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6396 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6399 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6397 reaches by hand into the outputcache. Think of a better way to do
6400 reaches by hand into the outputcache. Think of a better way to do
6398 this later.
6401 this later.
6399
6402
6400 * Various small fixes thanks to Nathan's comments.
6403 * Various small fixes thanks to Nathan's comments.
6401
6404
6402 * Changed magic_pprint to magic_Pprint. This way it doesn't
6405 * Changed magic_pprint to magic_Pprint. This way it doesn't
6403 collide with pprint() and the name is consistent with the command
6406 collide with pprint() and the name is consistent with the command
6404 line option.
6407 line option.
6405
6408
6406 * Changed prompt counter behavior to be fully like
6409 * Changed prompt counter behavior to be fully like
6407 Mathematica's. That is, even input that doesn't return a result
6410 Mathematica's. That is, even input that doesn't return a result
6408 raises the prompt counter. The old behavior was kind of confusing
6411 raises the prompt counter. The old behavior was kind of confusing
6409 (getting the same prompt number several times if the operation
6412 (getting the same prompt number several times if the operation
6410 didn't return a result).
6413 didn't return a result).
6411
6414
6412 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6415 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6413
6416
6414 * Fixed -Classic mode (wasn't working anymore).
6417 * Fixed -Classic mode (wasn't working anymore).
6415
6418
6416 * Added colored prompts using Nathan's new code. Colors are
6419 * Added colored prompts using Nathan's new code. Colors are
6417 currently hardwired, they can be user-configurable. For
6420 currently hardwired, they can be user-configurable. For
6418 developers, they can be chosen in file ipythonlib.py, at the
6421 developers, they can be chosen in file ipythonlib.py, at the
6419 beginning of the CachedOutput class def.
6422 beginning of the CachedOutput class def.
6420
6423
6421 2001-11-11 Fernando Perez <fperez@colorado.edu>
6424 2001-11-11 Fernando Perez <fperez@colorado.edu>
6422
6425
6423 * Version 0.1.5 released, 0.1.6 opened for further work.
6426 * Version 0.1.5 released, 0.1.6 opened for further work.
6424
6427
6425 * Changed magic_env to *return* the environment as a dict (not to
6428 * Changed magic_env to *return* the environment as a dict (not to
6426 print it). This way it prints, but it can also be processed.
6429 print it). This way it prints, but it can also be processed.
6427
6430
6428 * Added Verbose exception reporting to interactive
6431 * Added Verbose exception reporting to interactive
6429 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6432 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6430 traceback. Had to make some changes to the ultraTB file. This is
6433 traceback. Had to make some changes to the ultraTB file. This is
6431 probably the last 'big' thing in my mental todo list. This ties
6434 probably the last 'big' thing in my mental todo list. This ties
6432 in with the next entry:
6435 in with the next entry:
6433
6436
6434 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6437 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6435 has to specify is Plain, Color or Verbose for all exception
6438 has to specify is Plain, Color or Verbose for all exception
6436 handling.
6439 handling.
6437
6440
6438 * Removed ShellServices option. All this can really be done via
6441 * Removed ShellServices option. All this can really be done via
6439 the magic system. It's easier to extend, cleaner and has automatic
6442 the magic system. It's easier to extend, cleaner and has automatic
6440 namespace protection and documentation.
6443 namespace protection and documentation.
6441
6444
6442 2001-11-09 Fernando Perez <fperez@colorado.edu>
6445 2001-11-09 Fernando Perez <fperez@colorado.edu>
6443
6446
6444 * Fixed bug in output cache flushing (missing parameter to
6447 * Fixed bug in output cache flushing (missing parameter to
6445 __init__). Other small bugs fixed (found using pychecker).
6448 __init__). Other small bugs fixed (found using pychecker).
6446
6449
6447 * Version 0.1.4 opened for bugfixing.
6450 * Version 0.1.4 opened for bugfixing.
6448
6451
6449 2001-11-07 Fernando Perez <fperez@colorado.edu>
6452 2001-11-07 Fernando Perez <fperez@colorado.edu>
6450
6453
6451 * Version 0.1.3 released, mainly because of the raw_input bug.
6454 * Version 0.1.3 released, mainly because of the raw_input bug.
6452
6455
6453 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6456 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6454 and when testing for whether things were callable, a call could
6457 and when testing for whether things were callable, a call could
6455 actually be made to certain functions. They would get called again
6458 actually be made to certain functions. They would get called again
6456 once 'really' executed, with a resulting double call. A disaster
6459 once 'really' executed, with a resulting double call. A disaster
6457 in many cases (list.reverse() would never work!).
6460 in many cases (list.reverse() would never work!).
6458
6461
6459 * Removed prefilter() function, moved its code to raw_input (which
6462 * Removed prefilter() function, moved its code to raw_input (which
6460 after all was just a near-empty caller for prefilter). This saves
6463 after all was just a near-empty caller for prefilter). This saves
6461 a function call on every prompt, and simplifies the class a tiny bit.
6464 a function call on every prompt, and simplifies the class a tiny bit.
6462
6465
6463 * Fix _ip to __ip name in magic example file.
6466 * Fix _ip to __ip name in magic example file.
6464
6467
6465 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6468 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6466 work with non-gnu versions of tar.
6469 work with non-gnu versions of tar.
6467
6470
6468 2001-11-06 Fernando Perez <fperez@colorado.edu>
6471 2001-11-06 Fernando Perez <fperez@colorado.edu>
6469
6472
6470 * Version 0.1.2. Just to keep track of the recent changes.
6473 * Version 0.1.2. Just to keep track of the recent changes.
6471
6474
6472 * Fixed nasty bug in output prompt routine. It used to check 'if
6475 * Fixed nasty bug in output prompt routine. It used to check 'if
6473 arg != None...'. Problem is, this fails if arg implements a
6476 arg != None...'. Problem is, this fails if arg implements a
6474 special comparison (__cmp__) which disallows comparing to
6477 special comparison (__cmp__) which disallows comparing to
6475 None. Found it when trying to use the PhysicalQuantity module from
6478 None. Found it when trying to use the PhysicalQuantity module from
6476 ScientificPython.
6479 ScientificPython.
6477
6480
6478 2001-11-05 Fernando Perez <fperez@colorado.edu>
6481 2001-11-05 Fernando Perez <fperez@colorado.edu>
6479
6482
6480 * Also added dirs. Now the pushd/popd/dirs family functions
6483 * Also added dirs. Now the pushd/popd/dirs family functions
6481 basically like the shell, with the added convenience of going home
6484 basically like the shell, with the added convenience of going home
6482 when called with no args.
6485 when called with no args.
6483
6486
6484 * pushd/popd slightly modified to mimic shell behavior more
6487 * pushd/popd slightly modified to mimic shell behavior more
6485 closely.
6488 closely.
6486
6489
6487 * Added env,pushd,popd from ShellServices as magic functions. I
6490 * Added env,pushd,popd from ShellServices as magic functions. I
6488 think the cleanest will be to port all desired functions from
6491 think the cleanest will be to port all desired functions from
6489 ShellServices as magics and remove ShellServices altogether. This
6492 ShellServices as magics and remove ShellServices altogether. This
6490 will provide a single, clean way of adding functionality
6493 will provide a single, clean way of adding functionality
6491 (shell-type or otherwise) to IP.
6494 (shell-type or otherwise) to IP.
6492
6495
6493 2001-11-04 Fernando Perez <fperez@colorado.edu>
6496 2001-11-04 Fernando Perez <fperez@colorado.edu>
6494
6497
6495 * Added .ipython/ directory to sys.path. This way users can keep
6498 * Added .ipython/ directory to sys.path. This way users can keep
6496 customizations there and access them via import.
6499 customizations there and access them via import.
6497
6500
6498 2001-11-03 Fernando Perez <fperez@colorado.edu>
6501 2001-11-03 Fernando Perez <fperez@colorado.edu>
6499
6502
6500 * Opened version 0.1.1 for new changes.
6503 * Opened version 0.1.1 for new changes.
6501
6504
6502 * Changed version number to 0.1.0: first 'public' release, sent to
6505 * Changed version number to 0.1.0: first 'public' release, sent to
6503 Nathan and Janko.
6506 Nathan and Janko.
6504
6507
6505 * Lots of small fixes and tweaks.
6508 * Lots of small fixes and tweaks.
6506
6509
6507 * Minor changes to whos format. Now strings are shown, snipped if
6510 * Minor changes to whos format. Now strings are shown, snipped if
6508 too long.
6511 too long.
6509
6512
6510 * Changed ShellServices to work on __main__ so they show up in @who
6513 * Changed ShellServices to work on __main__ so they show up in @who
6511
6514
6512 * Help also works with ? at the end of a line:
6515 * Help also works with ? at the end of a line:
6513 ?sin and sin?
6516 ?sin and sin?
6514 both produce the same effect. This is nice, as often I use the
6517 both produce the same effect. This is nice, as often I use the
6515 tab-complete to find the name of a method, but I used to then have
6518 tab-complete to find the name of a method, but I used to then have
6516 to go to the beginning of the line to put a ? if I wanted more
6519 to go to the beginning of the line to put a ? if I wanted more
6517 info. Now I can just add the ? and hit return. Convenient.
6520 info. Now I can just add the ? and hit return. Convenient.
6518
6521
6519 2001-11-02 Fernando Perez <fperez@colorado.edu>
6522 2001-11-02 Fernando Perez <fperez@colorado.edu>
6520
6523
6521 * Python version check (>=2.1) added.
6524 * Python version check (>=2.1) added.
6522
6525
6523 * Added LazyPython documentation. At this point the docs are quite
6526 * Added LazyPython documentation. At this point the docs are quite
6524 a mess. A cleanup is in order.
6527 a mess. A cleanup is in order.
6525
6528
6526 * Auto-installer created. For some bizarre reason, the zipfiles
6529 * Auto-installer created. For some bizarre reason, the zipfiles
6527 module isn't working on my system. So I made a tar version
6530 module isn't working on my system. So I made a tar version
6528 (hopefully the command line options in various systems won't kill
6531 (hopefully the command line options in various systems won't kill
6529 me).
6532 me).
6530
6533
6531 * Fixes to Struct in genutils. Now all dictionary-like methods are
6534 * Fixes to Struct in genutils. Now all dictionary-like methods are
6532 protected (reasonably).
6535 protected (reasonably).
6533
6536
6534 * Added pager function to genutils and changed ? to print usage
6537 * Added pager function to genutils and changed ? to print usage
6535 note through it (it was too long).
6538 note through it (it was too long).
6536
6539
6537 * Added the LazyPython functionality. Works great! I changed the
6540 * Added the LazyPython functionality. Works great! I changed the
6538 auto-quote escape to ';', it's on home row and next to '. But
6541 auto-quote escape to ';', it's on home row and next to '. But
6539 both auto-quote and auto-paren (still /) escapes are command-line
6542 both auto-quote and auto-paren (still /) escapes are command-line
6540 parameters.
6543 parameters.
6541
6544
6542
6545
6543 2001-11-01 Fernando Perez <fperez@colorado.edu>
6546 2001-11-01 Fernando Perez <fperez@colorado.edu>
6544
6547
6545 * Version changed to 0.0.7. Fairly large change: configuration now
6548 * Version changed to 0.0.7. Fairly large change: configuration now
6546 is all stored in a directory, by default .ipython. There, all
6549 is all stored in a directory, by default .ipython. There, all
6547 config files have normal looking names (not .names)
6550 config files have normal looking names (not .names)
6548
6551
6549 * Version 0.0.6 Released first to Lucas and Archie as a test
6552 * Version 0.0.6 Released first to Lucas and Archie as a test
6550 run. Since it's the first 'semi-public' release, change version to
6553 run. Since it's the first 'semi-public' release, change version to
6551 > 0.0.6 for any changes now.
6554 > 0.0.6 for any changes now.
6552
6555
6553 * Stuff I had put in the ipplib.py changelog:
6556 * Stuff I had put in the ipplib.py changelog:
6554
6557
6555 Changes to InteractiveShell:
6558 Changes to InteractiveShell:
6556
6559
6557 - Made the usage message a parameter.
6560 - Made the usage message a parameter.
6558
6561
6559 - Require the name of the shell variable to be given. It's a bit
6562 - Require the name of the shell variable to be given. It's a bit
6560 of a hack, but allows the name 'shell' not to be hardwired in the
6563 of a hack, but allows the name 'shell' not to be hardwired in the
6561 magic (@) handler, which is problematic b/c it requires
6564 magic (@) handler, which is problematic b/c it requires
6562 polluting the global namespace with 'shell'. This in turn is
6565 polluting the global namespace with 'shell'. This in turn is
6563 fragile: if a user redefines a variable called shell, things
6566 fragile: if a user redefines a variable called shell, things
6564 break.
6567 break.
6565
6568
6566 - magic @: all functions available through @ need to be defined
6569 - magic @: all functions available through @ need to be defined
6567 as magic_<name>, even though they can be called simply as
6570 as magic_<name>, even though they can be called simply as
6568 @<name>. This allows the special command @magic to gather
6571 @<name>. This allows the special command @magic to gather
6569 information automatically about all existing magic functions,
6572 information automatically about all existing magic functions,
6570 even if they are run-time user extensions, by parsing the shell
6573 even if they are run-time user extensions, by parsing the shell
6571 instance __dict__ looking for special magic_ names.
6574 instance __dict__ looking for special magic_ names.
6572
6575
6573 - mainloop: added *two* local namespace parameters. This allows
6576 - mainloop: added *two* local namespace parameters. This allows
6574 the class to differentiate between parameters which were there
6577 the class to differentiate between parameters which were there
6575 before and after command line initialization was processed. This
6578 before and after command line initialization was processed. This
6576 way, later @who can show things loaded at startup by the
6579 way, later @who can show things loaded at startup by the
6577 user. This trick was necessary to make session saving/reloading
6580 user. This trick was necessary to make session saving/reloading
6578 really work: ideally after saving/exiting/reloading a session,
6581 really work: ideally after saving/exiting/reloading a session,
6579 *everything* should look the same, including the output of @who. I
6582 *everything* should look the same, including the output of @who. I
6580 was only able to make this work with this double namespace
6583 was only able to make this work with this double namespace
6581 trick.
6584 trick.
6582
6585
6583 - added a header to the logfile which allows (almost) full
6586 - added a header to the logfile which allows (almost) full
6584 session restoring.
6587 session restoring.
6585
6588
6586 - prepend lines beginning with @ or !, with a and log
6589 - prepend lines beginning with @ or !, with a and log
6587 them. Why? !lines: may be useful to know what you did @lines:
6590 them. Why? !lines: may be useful to know what you did @lines:
6588 they may affect session state. So when restoring a session, at
6591 they may affect session state. So when restoring a session, at
6589 least inform the user of their presence. I couldn't quite get
6592 least inform the user of their presence. I couldn't quite get
6590 them to properly re-execute, but at least the user is warned.
6593 them to properly re-execute, but at least the user is warned.
6591
6594
6592 * Started ChangeLog.
6595 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now