##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,105 +1,96 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """ IPython extension: add %rehashdir magic
2 """ IPython extension: add %rehashdir magic
3
3
4 Usage:
4 Usage:
5
5
6 %rehashdir c:/bin c:/tools
6 %rehashdir c:/bin c:/tools
7 - Add all executables under c:/bin and c:/tools to alias table, in
7 - Add all executables under c:/bin and c:/tools to alias table, in
8 order to make them directly executable from any directory.
8 order to make them directly executable from any directory.
9
9
10 This also serves as an example on how to extend ipython
10 This also serves as an example on how to extend ipython
11 with new magic functions.
11 with new magic functions.
12
12
13 Unlike rest of ipython, this requires Python 2.4 (optional
13 Unlike rest of ipython, this requires Python 2.4 (optional
14 extensions are allowed to do that).
14 extensions are allowed to do that).
15
15
16 To install, add
17
18 "import_mod ext_rehashdir"
19
20 To your ipythonrc or just execute "import rehash_dir" in ipython
21 prompt.
22
23
24 $Id: InterpreterExec.py 994 2006-01-08 08:29:44Z fperez $
25 """
16 """
26
17
27 import IPython.ipapi
18 import IPython.ipapi
28 ip = IPython.ipapi.get()
19 ip = IPython.ipapi.get()
29
20
30
21
31 import os,re,fnmatch
22 import os,re,fnmatch
32
23
33 def rehashdir_f(self,arg):
24 def rehashdir_f(self,arg):
34 """ Add executables in all specified dirs to alias table
25 """ Add executables in all specified dirs to alias table
35
26
36 Usage:
27 Usage:
37
28
38 %rehashdir c:/bin;c:/tools
29 %rehashdir c:/bin;c:/tools
39 - Add all executables under c:/bin and c:/tools to alias table, in
30 - Add all executables under c:/bin and c:/tools to alias table, in
40 order to make them directly executable from any directory.
31 order to make them directly executable from any directory.
41
32
42 Without arguments, add all executables in current directory.
33 Without arguments, add all executables in current directory.
43
34
44 """
35 """
45
36
46 # most of the code copied from Magic.magic_rehashx
37 # most of the code copied from Magic.magic_rehashx
47
38
48 def isjunk(fname):
39 def isjunk(fname):
49 junk = ['*~']
40 junk = ['*~']
50 for j in junk:
41 for j in junk:
51 if fnmatch.fnmatch(fname, j):
42 if fnmatch.fnmatch(fname, j):
52 return True
43 return True
53 return False
44 return False
54
45
55 if not arg:
46 if not arg:
56 arg = '.'
47 arg = '.'
57 path = map(os.path.abspath,arg.split(';'))
48 path = map(os.path.abspath,arg.split(';'))
58 alias_table = self.shell.alias_table
49 alias_table = self.shell.alias_table
59
50
60 if os.name == 'posix':
51 if os.name == 'posix':
61 isexec = lambda fname:os.path.isfile(fname) and \
52 isexec = lambda fname:os.path.isfile(fname) and \
62 os.access(fname,os.X_OK)
53 os.access(fname,os.X_OK)
63 else:
54 else:
64
55
65 try:
56 try:
66 winext = os.environ['pathext'].replace(';','|').replace('.','')
57 winext = os.environ['pathext'].replace(';','|').replace('.','')
67 except KeyError:
58 except KeyError:
68 winext = 'exe|com|bat|py'
59 winext = 'exe|com|bat|py'
69 if 'py' not in winext:
60 if 'py' not in winext:
70 winext += '|py'
61 winext += '|py'
71
62
72 execre = re.compile(r'(.*)\.(%s)$' % winext,re.IGNORECASE)
63 execre = re.compile(r'(.*)\.(%s)$' % winext,re.IGNORECASE)
73 isexec = lambda fname:os.path.isfile(fname) and execre.match(fname)
64 isexec = lambda fname:os.path.isfile(fname) and execre.match(fname)
74 savedir = os.getcwd()
65 savedir = os.getcwd()
75 try:
66 try:
76 # write the whole loop for posix/Windows so we don't have an if in
67 # write the whole loop for posix/Windows so we don't have an if in
77 # the innermost part
68 # the innermost part
78 if os.name == 'posix':
69 if os.name == 'posix':
79 for pdir in path:
70 for pdir in path:
80 os.chdir(pdir)
71 os.chdir(pdir)
81 for ff in os.listdir(pdir):
72 for ff in os.listdir(pdir):
82 if isexec(ff) and not isjunk(ff):
73 if isexec(ff) and not isjunk(ff):
83 # each entry in the alias table must be (N,name),
74 # each entry in the alias table must be (N,name),
84 # where N is the number of positional arguments of the
75 # where N is the number of positional arguments of the
85 # alias.
76 # alias.
86 src,tgt = os.path.splitext(ff)[0], os.path.abspath(ff)
77 src,tgt = os.path.splitext(ff)[0], os.path.abspath(ff)
87 print "Aliasing:",src,"->",tgt
78 print "Aliasing:",src,"->",tgt
88 alias_table[src] = (0,tgt)
79 alias_table[src] = (0,tgt)
89 else:
80 else:
90 for pdir in path:
81 for pdir in path:
91 os.chdir(pdir)
82 os.chdir(pdir)
92 for ff in os.listdir(pdir):
83 for ff in os.listdir(pdir):
93 if isexec(ff) and not isjunk(ff):
84 if isexec(ff) and not isjunk(ff):
94 src, tgt = execre.sub(r'\1',ff), os.path.abspath(ff)
85 src, tgt = execre.sub(r'\1',ff), os.path.abspath(ff)
95 src = src.lower()
86 src = src.lower()
96 print "Aliasing:",src,"->",tgt
87 print "Aliasing:",src,"->",tgt
97 alias_table[src] = (0,tgt)
88 alias_table[src] = (0,tgt)
98 # Make sure the alias table doesn't contain keywords or builtins
89 # Make sure the alias table doesn't contain keywords or builtins
99 self.shell.alias_table_validate()
90 self.shell.alias_table_validate()
100 # Call again init_auto_alias() so we get 'rm -i' and other
91 # Call again init_auto_alias() so we get 'rm -i' and other
101 # modified aliases since %rehashx will probably clobber them
92 # modified aliases since %rehashx will probably clobber them
102 # self.shell.init_auto_alias()
93 # self.shell.init_auto_alias()
103 finally:
94 finally:
104 os.chdir(savedir)
95 os.chdir(savedir)
105 ip.expose_magic("rehashdir",rehashdir_f)
96 ip.expose_magic("rehashdir",rehashdir_f)
@@ -1,6666 +1,6669 b''
1 2007-05-15 Ville Vainio <vivainio@gmail.com>
1 2007-05-15 Ville Vainio <vivainio@gmail.com>
2
2
3 * pycolorize.py, pycolor.1: Paul Mueller's patches that
3 * pycolorize.py, pycolor.1: Paul Mueller's patches that
4 make pycolorize read input from stdin when run without arguments.
4 make pycolorize read input from stdin when run without arguments.
5
5
6 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
6 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
7
8 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
9 it in sh profile (instead of ipy_system_conf.py).
7
10
8 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
11 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
9
12
10 * IPython/rlineimpl.py: check for clear_history in readline and
13 * IPython/rlineimpl.py: check for clear_history in readline and
11 make it a dummy no-op if not available. This function isn't
14 make it a dummy no-op if not available. This function isn't
12 guaranteed to be in the API and appeared in Python 2.4, so we need
15 guaranteed to be in the API and appeared in Python 2.4, so we need
13 to check it ourselves. Also, clean up this file quite a bit.
16 to check it ourselves. Also, clean up this file quite a bit.
14
17
15 * ipython.1: update man page and full manual with information
18 * ipython.1: update man page and full manual with information
16 about threads (remove outdated warning). Closes #151.
19 about threads (remove outdated warning). Closes #151.
17
20
18 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
21 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
19
22
20 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
23 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
21 in trunk (note that this made it into the 0.8.1 release already,
24 in trunk (note that this made it into the 0.8.1 release already,
22 but the changelogs didn't get coordinated). Many thanks to Gael
25 but the changelogs didn't get coordinated). Many thanks to Gael
23 Varoquaux <gael.varoquaux-AT-normalesup.org>
26 Varoquaux <gael.varoquaux-AT-normalesup.org>
24
27
25 2007-05-09 *** Released version 0.8.1
28 2007-05-09 *** Released version 0.8.1
26
29
27 2007-05-10 Walter Doerwald <walter@livinglogic.de>
30 2007-05-10 Walter Doerwald <walter@livinglogic.de>
28
31
29 * IPython/Extensions/igrid.py: Incorporate html help into
32 * IPython/Extensions/igrid.py: Incorporate html help into
30 the module, so we don't have to search for the file.
33 the module, so we don't have to search for the file.
31
34
32 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
35 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
33
36
34 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
37 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
35
38
36 2007-04-30 Ville Vainio <vivainio@gmail.com>
39 2007-04-30 Ville Vainio <vivainio@gmail.com>
37
40
38 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
41 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
39 user has illegal (non-ascii) home directory name
42 user has illegal (non-ascii) home directory name
40
43
41 2007-04-27 Ville Vainio <vivainio@gmail.com>
44 2007-04-27 Ville Vainio <vivainio@gmail.com>
42
45
43 * platutils_win32.py: implement set_term_title for windows
46 * platutils_win32.py: implement set_term_title for windows
44
47
45 * Update version number
48 * Update version number
46
49
47 * ipy_profile_sh.py: more informative prompt (2 dir levels)
50 * ipy_profile_sh.py: more informative prompt (2 dir levels)
48
51
49 2007-04-26 Walter Doerwald <walter@livinglogic.de>
52 2007-04-26 Walter Doerwald <walter@livinglogic.de>
50
53
51 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
54 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
52 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
55 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
53 bug discovered by Ville).
56 bug discovered by Ville).
54
57
55 2007-04-26 Ville Vainio <vivainio@gmail.com>
58 2007-04-26 Ville Vainio <vivainio@gmail.com>
56
59
57 * Extensions/ipy_completers.py: Olivier's module completer now
60 * Extensions/ipy_completers.py: Olivier's module completer now
58 saves the list of root modules if it takes > 4 secs on the first run.
61 saves the list of root modules if it takes > 4 secs on the first run.
59
62
60 * Magic.py (%rehashx): %rehashx now clears the completer cache
63 * Magic.py (%rehashx): %rehashx now clears the completer cache
61
64
62
65
63 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
66 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
64
67
65 * ipython.el: fix incorrect color scheme, reported by Stefan.
68 * ipython.el: fix incorrect color scheme, reported by Stefan.
66 Closes #149.
69 Closes #149.
67
70
68 * IPython/PyColorize.py (Parser.format2): fix state-handling
71 * IPython/PyColorize.py (Parser.format2): fix state-handling
69 logic. I still don't like how that code handles state, but at
72 logic. I still don't like how that code handles state, but at
70 least now it should be correct, if inelegant. Closes #146.
73 least now it should be correct, if inelegant. Closes #146.
71
74
72 2007-04-25 Ville Vainio <vivainio@gmail.com>
75 2007-04-25 Ville Vainio <vivainio@gmail.com>
73
76
74 * Extensions/ipy_which.py: added extension for %which magic, works
77 * Extensions/ipy_which.py: added extension for %which magic, works
75 a lot like unix 'which' but also finds and expands aliases, and
78 a lot like unix 'which' but also finds and expands aliases, and
76 allows wildcards.
79 allows wildcards.
77
80
78 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
81 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
79 as opposed to returning nothing.
82 as opposed to returning nothing.
80
83
81 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
84 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
82 ipy_stock_completers on default profile, do import on sh profile.
85 ipy_stock_completers on default profile, do import on sh profile.
83
86
84 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
87 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
85
88
86 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
89 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
87 like ipython.py foo.py which raised a IndexError.
90 like ipython.py foo.py which raised a IndexError.
88
91
89 2007-04-21 Ville Vainio <vivainio@gmail.com>
92 2007-04-21 Ville Vainio <vivainio@gmail.com>
90
93
91 * Extensions/ipy_extutil.py: added extension to manage other ipython
94 * Extensions/ipy_extutil.py: added extension to manage other ipython
92 extensions. Now only supports 'ls' == list extensions.
95 extensions. Now only supports 'ls' == list extensions.
93
96
94 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
97 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
95
98
96 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
99 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
97 would prevent use of the exception system outside of a running
100 would prevent use of the exception system outside of a running
98 IPython instance.
101 IPython instance.
99
102
100 2007-04-20 Ville Vainio <vivainio@gmail.com>
103 2007-04-20 Ville Vainio <vivainio@gmail.com>
101
104
102 * Extensions/ipy_render.py: added extension for easy
105 * Extensions/ipy_render.py: added extension for easy
103 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
106 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
104 'Iptl' template notation,
107 'Iptl' template notation,
105
108
106 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
109 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
107 safer & faster 'import' completer.
110 safer & faster 'import' completer.
108
111
109 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
112 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
110 and _ip.defalias(name, command).
113 and _ip.defalias(name, command).
111
114
112 * Extensions/ipy_exportdb.py: New extension for exporting all the
115 * Extensions/ipy_exportdb.py: New extension for exporting all the
113 %store'd data in a portable format (normal ipapi calls like
116 %store'd data in a portable format (normal ipapi calls like
114 defmacro() etc.)
117 defmacro() etc.)
115
118
116 2007-04-19 Ville Vainio <vivainio@gmail.com>
119 2007-04-19 Ville Vainio <vivainio@gmail.com>
117
120
118 * upgrade_dir.py: skip junk files like *.pyc
121 * upgrade_dir.py: skip junk files like *.pyc
119
122
120 * Release.py: version number to 0.8.1
123 * Release.py: version number to 0.8.1
121
124
122 2007-04-18 Ville Vainio <vivainio@gmail.com>
125 2007-04-18 Ville Vainio <vivainio@gmail.com>
123
126
124 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
127 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
125 and later on win32.
128 and later on win32.
126
129
127 2007-04-16 Ville Vainio <vivainio@gmail.com>
130 2007-04-16 Ville Vainio <vivainio@gmail.com>
128
131
129 * iplib.py (showtraceback): Do not crash when running w/o readline.
132 * iplib.py (showtraceback): Do not crash when running w/o readline.
130
133
131 2007-04-12 Walter Doerwald <walter@livinglogic.de>
134 2007-04-12 Walter Doerwald <walter@livinglogic.de>
132
135
133 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
136 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
134 sorted (case sensitive with files and dirs mixed).
137 sorted (case sensitive with files and dirs mixed).
135
138
136 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
139 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
137
140
138 * IPython/Release.py (version): Open trunk for 0.8.1 development.
141 * IPython/Release.py (version): Open trunk for 0.8.1 development.
139
142
140 2007-04-10 *** Released version 0.8.0
143 2007-04-10 *** Released version 0.8.0
141
144
142 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
145 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
143
146
144 * Tag 0.8.0 for release.
147 * Tag 0.8.0 for release.
145
148
146 * IPython/iplib.py (reloadhist): add API function to cleanly
149 * IPython/iplib.py (reloadhist): add API function to cleanly
147 reload the readline history, which was growing inappropriately on
150 reload the readline history, which was growing inappropriately on
148 every %run call.
151 every %run call.
149
152
150 * win32_manual_post_install.py (run): apply last part of Nicolas
153 * win32_manual_post_install.py (run): apply last part of Nicolas
151 Pernetty's patch (I'd accidentally applied it in a different
154 Pernetty's patch (I'd accidentally applied it in a different
152 directory and this particular file didn't get patched).
155 directory and this particular file didn't get patched).
153
156
154 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
157 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
155
158
156 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
159 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
157 find the main thread id and use the proper API call. Thanks to
160 find the main thread id and use the proper API call. Thanks to
158 Stefan for the fix.
161 Stefan for the fix.
159
162
160 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
163 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
161 unit tests to reflect fixed ticket #52, and add more tests sent by
164 unit tests to reflect fixed ticket #52, and add more tests sent by
162 him.
165 him.
163
166
164 * IPython/iplib.py (raw_input): restore the readline completer
167 * IPython/iplib.py (raw_input): restore the readline completer
165 state on every input, in case third-party code messed it up.
168 state on every input, in case third-party code messed it up.
166 (_prefilter): revert recent addition of early-escape checks which
169 (_prefilter): revert recent addition of early-escape checks which
167 prevent many valid alias calls from working.
170 prevent many valid alias calls from working.
168
171
169 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
172 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
170 flag for sigint handler so we don't run a full signal() call on
173 flag for sigint handler so we don't run a full signal() call on
171 each runcode access.
174 each runcode access.
172
175
173 * IPython/Magic.py (magic_whos): small improvement to diagnostic
176 * IPython/Magic.py (magic_whos): small improvement to diagnostic
174 message.
177 message.
175
178
176 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
179 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
177
180
178 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
181 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
179 asynchronous exceptions working, i.e., Ctrl-C can actually
182 asynchronous exceptions working, i.e., Ctrl-C can actually
180 interrupt long-running code in the multithreaded shells.
183 interrupt long-running code in the multithreaded shells.
181
184
182 This is using Tomer Filiba's great ctypes-based trick:
185 This is using Tomer Filiba's great ctypes-based trick:
183 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
186 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
184 this in the past, but hadn't been able to make it work before. So
187 this in the past, but hadn't been able to make it work before. So
185 far it looks like it's actually running, but this needs more
188 far it looks like it's actually running, but this needs more
186 testing. If it really works, I'll be *very* happy, and we'll owe
189 testing. If it really works, I'll be *very* happy, and we'll owe
187 a huge thank you to Tomer. My current implementation is ugly,
190 a huge thank you to Tomer. My current implementation is ugly,
188 hackish and uses nasty globals, but I don't want to try and clean
191 hackish and uses nasty globals, but I don't want to try and clean
189 anything up until we know if it actually works.
192 anything up until we know if it actually works.
190
193
191 NOTE: this feature needs ctypes to work. ctypes is included in
194 NOTE: this feature needs ctypes to work. ctypes is included in
192 Python2.5, but 2.4 users will need to manually install it. This
195 Python2.5, but 2.4 users will need to manually install it. This
193 feature makes multi-threaded shells so much more usable that it's
196 feature makes multi-threaded shells so much more usable that it's
194 a minor price to pay (ctypes is very easy to install, already a
197 a minor price to pay (ctypes is very easy to install, already a
195 requirement for win32 and available in major linux distros).
198 requirement for win32 and available in major linux distros).
196
199
197 2007-04-04 Ville Vainio <vivainio@gmail.com>
200 2007-04-04 Ville Vainio <vivainio@gmail.com>
198
201
199 * Extensions/ipy_completers.py, ipy_stock_completers.py:
202 * Extensions/ipy_completers.py, ipy_stock_completers.py:
200 Moved implementations of 'bundled' completers to ipy_completers.py,
203 Moved implementations of 'bundled' completers to ipy_completers.py,
201 they are only enabled in ipy_stock_completers.py.
204 they are only enabled in ipy_stock_completers.py.
202
205
203 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
206 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
204
207
205 * IPython/PyColorize.py (Parser.format2): Fix identation of
208 * IPython/PyColorize.py (Parser.format2): Fix identation of
206 colorzied output and return early if color scheme is NoColor, to
209 colorzied output and return early if color scheme is NoColor, to
207 avoid unnecessary and expensive tokenization. Closes #131.
210 avoid unnecessary and expensive tokenization. Closes #131.
208
211
209 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
212 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
210
213
211 * IPython/Debugger.py: disable the use of pydb version 1.17. It
214 * IPython/Debugger.py: disable the use of pydb version 1.17. It
212 has a critical bug (a missing import that makes post-mortem not
215 has a critical bug (a missing import that makes post-mortem not
213 work at all). Unfortunately as of this time, this is the version
216 work at all). Unfortunately as of this time, this is the version
214 shipped with Ubuntu Edgy, so quite a few people have this one. I
217 shipped with Ubuntu Edgy, so quite a few people have this one. I
215 hope Edgy will update to a more recent package.
218 hope Edgy will update to a more recent package.
216
219
217 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
220 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
218
221
219 * IPython/iplib.py (_prefilter): close #52, second part of a patch
222 * IPython/iplib.py (_prefilter): close #52, second part of a patch
220 set by Stefan (only the first part had been applied before).
223 set by Stefan (only the first part had been applied before).
221
224
222 * IPython/Extensions/ipy_stock_completers.py (module_completer):
225 * IPython/Extensions/ipy_stock_completers.py (module_completer):
223 remove usage of the dangerous pkgutil.walk_packages(). See
226 remove usage of the dangerous pkgutil.walk_packages(). See
224 details in comments left in the code.
227 details in comments left in the code.
225
228
226 * IPython/Magic.py (magic_whos): add support for numpy arrays
229 * IPython/Magic.py (magic_whos): add support for numpy arrays
227 similar to what we had for Numeric.
230 similar to what we had for Numeric.
228
231
229 * IPython/completer.py (IPCompleter.complete): extend the
232 * IPython/completer.py (IPCompleter.complete): extend the
230 complete() call API to support completions by other mechanisms
233 complete() call API to support completions by other mechanisms
231 than readline. Closes #109.
234 than readline. Closes #109.
232
235
233 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
236 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
234 protect against a bug in Python's execfile(). Closes #123.
237 protect against a bug in Python's execfile(). Closes #123.
235
238
236 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
239 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
237
240
238 * IPython/iplib.py (split_user_input): ensure that when splitting
241 * IPython/iplib.py (split_user_input): ensure that when splitting
239 user input, the part that can be treated as a python name is pure
242 user input, the part that can be treated as a python name is pure
240 ascii (Python identifiers MUST be pure ascii). Part of the
243 ascii (Python identifiers MUST be pure ascii). Part of the
241 ongoing Unicode support work.
244 ongoing Unicode support work.
242
245
243 * IPython/Prompts.py (prompt_specials_color): Add \N for the
246 * IPython/Prompts.py (prompt_specials_color): Add \N for the
244 actual prompt number, without any coloring. This allows users to
247 actual prompt number, without any coloring. This allows users to
245 produce numbered prompts with their own colors. Added after a
248 produce numbered prompts with their own colors. Added after a
246 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
249 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
247
250
248 2007-03-31 Walter Doerwald <walter@livinglogic.de>
251 2007-03-31 Walter Doerwald <walter@livinglogic.de>
249
252
250 * IPython/Extensions/igrid.py: Map the return key
253 * IPython/Extensions/igrid.py: Map the return key
251 to enter() and shift-return to enterattr().
254 to enter() and shift-return to enterattr().
252
255
253 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
256 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
254
257
255 * IPython/Magic.py (magic_psearch): add unicode support by
258 * IPython/Magic.py (magic_psearch): add unicode support by
256 encoding to ascii the input, since this routine also only deals
259 encoding to ascii the input, since this routine also only deals
257 with valid Python names. Fixes a bug reported by Stefan.
260 with valid Python names. Fixes a bug reported by Stefan.
258
261
259 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
262 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
260
263
261 * IPython/Magic.py (_inspect): convert unicode input into ascii
264 * IPython/Magic.py (_inspect): convert unicode input into ascii
262 before trying to evaluate it as a Python identifier. This fixes a
265 before trying to evaluate it as a Python identifier. This fixes a
263 problem that the new unicode support had introduced when analyzing
266 problem that the new unicode support had introduced when analyzing
264 long definition lines for functions.
267 long definition lines for functions.
265
268
266 2007-03-24 Walter Doerwald <walter@livinglogic.de>
269 2007-03-24 Walter Doerwald <walter@livinglogic.de>
267
270
268 * IPython/Extensions/igrid.py: Fix picking. Using
271 * IPython/Extensions/igrid.py: Fix picking. Using
269 igrid with wxPython 2.6 and -wthread should work now.
272 igrid with wxPython 2.6 and -wthread should work now.
270 igrid.display() simply tries to create a frame without
273 igrid.display() simply tries to create a frame without
271 an application. Only if this fails an application is created.
274 an application. Only if this fails an application is created.
272
275
273 2007-03-23 Walter Doerwald <walter@livinglogic.de>
276 2007-03-23 Walter Doerwald <walter@livinglogic.de>
274
277
275 * IPython/Extensions/path.py: Updated to version 2.2.
278 * IPython/Extensions/path.py: Updated to version 2.2.
276
279
277 2007-03-23 Ville Vainio <vivainio@gmail.com>
280 2007-03-23 Ville Vainio <vivainio@gmail.com>
278
281
279 * iplib.py: recursive alias expansion now works better, so that
282 * iplib.py: recursive alias expansion now works better, so that
280 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
283 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
281 doesn't trip up the process, if 'd' has been aliased to 'ls'.
284 doesn't trip up the process, if 'd' has been aliased to 'ls'.
282
285
283 * Extensions/ipy_gnuglobal.py added, provides %global magic
286 * Extensions/ipy_gnuglobal.py added, provides %global magic
284 for users of http://www.gnu.org/software/global
287 for users of http://www.gnu.org/software/global
285
288
286 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
289 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
287 Closes #52. Patch by Stefan van der Walt.
290 Closes #52. Patch by Stefan van der Walt.
288
291
289 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
292 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
290
293
291 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
294 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
292 respect the __file__ attribute when using %run. Thanks to a bug
295 respect the __file__ attribute when using %run. Thanks to a bug
293 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
296 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
294
297
295 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
298 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
296
299
297 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
300 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
298 input. Patch sent by Stefan.
301 input. Patch sent by Stefan.
299
302
300 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
303 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
301 * IPython/Extensions/ipy_stock_completer.py
304 * IPython/Extensions/ipy_stock_completer.py
302 shlex_split, fix bug in shlex_split. len function
305 shlex_split, fix bug in shlex_split. len function
303 call was missing an if statement. Caused shlex_split to
306 call was missing an if statement. Caused shlex_split to
304 sometimes return "" as last element.
307 sometimes return "" as last element.
305
308
306 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
309 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
307
310
308 * IPython/completer.py
311 * IPython/completer.py
309 (IPCompleter.file_matches.single_dir_expand): fix a problem
312 (IPCompleter.file_matches.single_dir_expand): fix a problem
310 reported by Stefan, where directories containign a single subdir
313 reported by Stefan, where directories containign a single subdir
311 would be completed too early.
314 would be completed too early.
312
315
313 * IPython/Shell.py (_load_pylab): Make the execution of 'from
316 * IPython/Shell.py (_load_pylab): Make the execution of 'from
314 pylab import *' when -pylab is given be optional. A new flag,
317 pylab import *' when -pylab is given be optional. A new flag,
315 pylab_import_all controls this behavior, the default is True for
318 pylab_import_all controls this behavior, the default is True for
316 backwards compatibility.
319 backwards compatibility.
317
320
318 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
321 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
319 modified) R. Bernstein's patch for fully syntax highlighted
322 modified) R. Bernstein's patch for fully syntax highlighted
320 tracebacks. The functionality is also available under ultraTB for
323 tracebacks. The functionality is also available under ultraTB for
321 non-ipython users (someone using ultraTB but outside an ipython
324 non-ipython users (someone using ultraTB but outside an ipython
322 session). They can select the color scheme by setting the
325 session). They can select the color scheme by setting the
323 module-level global DEFAULT_SCHEME. The highlight functionality
326 module-level global DEFAULT_SCHEME. The highlight functionality
324 also works when debugging.
327 also works when debugging.
325
328
326 * IPython/genutils.py (IOStream.close): small patch by
329 * IPython/genutils.py (IOStream.close): small patch by
327 R. Bernstein for improved pydb support.
330 R. Bernstein for improved pydb support.
328
331
329 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
332 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
330 DaveS <davls@telus.net> to improve support of debugging under
333 DaveS <davls@telus.net> to improve support of debugging under
331 NTEmacs, including improved pydb behavior.
334 NTEmacs, including improved pydb behavior.
332
335
333 * IPython/Magic.py (magic_prun): Fix saving of profile info for
336 * IPython/Magic.py (magic_prun): Fix saving of profile info for
334 Python 2.5, where the stats object API changed a little. Thanks
337 Python 2.5, where the stats object API changed a little. Thanks
335 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
338 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
336
339
337 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
340 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
338 Pernetty's patch to improve support for (X)Emacs under Win32.
341 Pernetty's patch to improve support for (X)Emacs under Win32.
339
342
340 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
343 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
341
344
342 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
345 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
343 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
346 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
344 a report by Nik Tautenhahn.
347 a report by Nik Tautenhahn.
345
348
346 2007-03-16 Walter Doerwald <walter@livinglogic.de>
349 2007-03-16 Walter Doerwald <walter@livinglogic.de>
347
350
348 * setup.py: Add the igrid help files to the list of data files
351 * setup.py: Add the igrid help files to the list of data files
349 to be installed alongside igrid.
352 to be installed alongside igrid.
350 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
353 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
351 Show the input object of the igrid browser as the window tile.
354 Show the input object of the igrid browser as the window tile.
352 Show the object the cursor is on in the statusbar.
355 Show the object the cursor is on in the statusbar.
353
356
354 2007-03-15 Ville Vainio <vivainio@gmail.com>
357 2007-03-15 Ville Vainio <vivainio@gmail.com>
355
358
356 * Extensions/ipy_stock_completers.py: Fixed exception
359 * Extensions/ipy_stock_completers.py: Fixed exception
357 on mismatching quotes in %run completer. Patch by
360 on mismatching quotes in %run completer. Patch by
358 JοΏ½rgen Stenarson. Closes #127.
361 JοΏ½rgen Stenarson. Closes #127.
359
362
360 2007-03-14 Ville Vainio <vivainio@gmail.com>
363 2007-03-14 Ville Vainio <vivainio@gmail.com>
361
364
362 * Extensions/ext_rehashdir.py: Do not do auto_alias
365 * Extensions/ext_rehashdir.py: Do not do auto_alias
363 in %rehashdir, it clobbers %store'd aliases.
366 in %rehashdir, it clobbers %store'd aliases.
364
367
365 * UserConfig/ipy_profile_sh.py: envpersist.py extension
368 * UserConfig/ipy_profile_sh.py: envpersist.py extension
366 (beefed up %env) imported for sh profile.
369 (beefed up %env) imported for sh profile.
367
370
368 2007-03-10 Walter Doerwald <walter@livinglogic.de>
371 2007-03-10 Walter Doerwald <walter@livinglogic.de>
369
372
370 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
373 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
371 as the default browser.
374 as the default browser.
372 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
375 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
373 As igrid displays all attributes it ever encounters, fetch() (which has
376 As igrid displays all attributes it ever encounters, fetch() (which has
374 been renamed to _fetch()) doesn't have to recalculate the display attributes
377 been renamed to _fetch()) doesn't have to recalculate the display attributes
375 every time a new item is fetched. This should speed up scrolling.
378 every time a new item is fetched. This should speed up scrolling.
376
379
377 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
380 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
378
381
379 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
382 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
380 Schmolck's recently reported tab-completion bug (my previous one
383 Schmolck's recently reported tab-completion bug (my previous one
381 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
384 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
382
385
383 2007-03-09 Walter Doerwald <walter@livinglogic.de>
386 2007-03-09 Walter Doerwald <walter@livinglogic.de>
384
387
385 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
388 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
386 Close help window if exiting igrid.
389 Close help window if exiting igrid.
387
390
388 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
391 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
389
392
390 * IPython/Extensions/ipy_defaults.py: Check if readline is available
393 * IPython/Extensions/ipy_defaults.py: Check if readline is available
391 before calling functions from readline.
394 before calling functions from readline.
392
395
393 2007-03-02 Walter Doerwald <walter@livinglogic.de>
396 2007-03-02 Walter Doerwald <walter@livinglogic.de>
394
397
395 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
398 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
396 igrid is a wxPython-based display object for ipipe. If your system has
399 igrid is a wxPython-based display object for ipipe. If your system has
397 wx installed igrid will be the default display. Without wx ipipe falls
400 wx installed igrid will be the default display. Without wx ipipe falls
398 back to ibrowse (which needs curses). If no curses is installed ipipe
401 back to ibrowse (which needs curses). If no curses is installed ipipe
399 falls back to idump.
402 falls back to idump.
400
403
401 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
404 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
402
405
403 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
406 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
404 my changes from yesterday, they introduced bugs. Will reactivate
407 my changes from yesterday, they introduced bugs. Will reactivate
405 once I get a correct solution, which will be much easier thanks to
408 once I get a correct solution, which will be much easier thanks to
406 Dan Milstein's new prefilter test suite.
409 Dan Milstein's new prefilter test suite.
407
410
408 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
411 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
409
412
410 * IPython/iplib.py (split_user_input): fix input splitting so we
413 * IPython/iplib.py (split_user_input): fix input splitting so we
411 don't attempt attribute accesses on things that can't possibly be
414 don't attempt attribute accesses on things that can't possibly be
412 valid Python attributes. After a bug report by Alex Schmolck.
415 valid Python attributes. After a bug report by Alex Schmolck.
413 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
416 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
414 %magic with explicit % prefix.
417 %magic with explicit % prefix.
415
418
416 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
419 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
417
420
418 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
421 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
419 avoid a DeprecationWarning from GTK.
422 avoid a DeprecationWarning from GTK.
420
423
421 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
424 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
422
425
423 * IPython/genutils.py (clock): I modified clock() to return total
426 * IPython/genutils.py (clock): I modified clock() to return total
424 time, user+system. This is a more commonly needed metric. I also
427 time, user+system. This is a more commonly needed metric. I also
425 introduced the new clocku/clocks to get only user/system time if
428 introduced the new clocku/clocks to get only user/system time if
426 one wants those instead.
429 one wants those instead.
427
430
428 ***WARNING: API CHANGE*** clock() used to return only user time,
431 ***WARNING: API CHANGE*** clock() used to return only user time,
429 so if you want exactly the same results as before, use clocku
432 so if you want exactly the same results as before, use clocku
430 instead.
433 instead.
431
434
432 2007-02-22 Ville Vainio <vivainio@gmail.com>
435 2007-02-22 Ville Vainio <vivainio@gmail.com>
433
436
434 * IPython/Extensions/ipy_p4.py: Extension for improved
437 * IPython/Extensions/ipy_p4.py: Extension for improved
435 p4 (perforce version control system) experience.
438 p4 (perforce version control system) experience.
436 Adds %p4 magic with p4 command completion and
439 Adds %p4 magic with p4 command completion and
437 automatic -G argument (marshall output as python dict)
440 automatic -G argument (marshall output as python dict)
438
441
439 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
442 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
440
443
441 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
444 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
442 stop marks.
445 stop marks.
443 (ClearingMixin): a simple mixin to easily make a Demo class clear
446 (ClearingMixin): a simple mixin to easily make a Demo class clear
444 the screen in between blocks and have empty marquees. The
447 the screen in between blocks and have empty marquees. The
445 ClearDemo and ClearIPDemo classes that use it are included.
448 ClearDemo and ClearIPDemo classes that use it are included.
446
449
447 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
450 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
448
451
449 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
452 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
450 protect against exceptions at Python shutdown time. Patch
453 protect against exceptions at Python shutdown time. Patch
451 sumbmitted to upstream.
454 sumbmitted to upstream.
452
455
453 2007-02-14 Walter Doerwald <walter@livinglogic.de>
456 2007-02-14 Walter Doerwald <walter@livinglogic.de>
454
457
455 * IPython/Extensions/ibrowse.py: If entering the first object level
458 * IPython/Extensions/ibrowse.py: If entering the first object level
456 (i.e. the object for which the browser has been started) fails,
459 (i.e. the object for which the browser has been started) fails,
457 now the error is raised directly (aborting the browser) instead of
460 now the error is raised directly (aborting the browser) instead of
458 running into an empty levels list later.
461 running into an empty levels list later.
459
462
460 2007-02-03 Walter Doerwald <walter@livinglogic.de>
463 2007-02-03 Walter Doerwald <walter@livinglogic.de>
461
464
462 * IPython/Extensions/ipipe.py: Add an xrepr implementation
465 * IPython/Extensions/ipipe.py: Add an xrepr implementation
463 for the noitem object.
466 for the noitem object.
464
467
465 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
468 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
466
469
467 * IPython/completer.py (Completer.attr_matches): Fix small
470 * IPython/completer.py (Completer.attr_matches): Fix small
468 tab-completion bug with Enthought Traits objects with units.
471 tab-completion bug with Enthought Traits objects with units.
469 Thanks to a bug report by Tom Denniston
472 Thanks to a bug report by Tom Denniston
470 <tom.denniston-AT-alum.dartmouth.org>.
473 <tom.denniston-AT-alum.dartmouth.org>.
471
474
472 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
475 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
473
476
474 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
477 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
475 bug where only .ipy or .py would be completed. Once the first
478 bug where only .ipy or .py would be completed. Once the first
476 argument to %run has been given, all completions are valid because
479 argument to %run has been given, all completions are valid because
477 they are the arguments to the script, which may well be non-python
480 they are the arguments to the script, which may well be non-python
478 filenames.
481 filenames.
479
482
480 * IPython/irunner.py (InteractiveRunner.run_source): major updates
483 * IPython/irunner.py (InteractiveRunner.run_source): major updates
481 to irunner to allow it to correctly support real doctesting of
484 to irunner to allow it to correctly support real doctesting of
482 out-of-process ipython code.
485 out-of-process ipython code.
483
486
484 * IPython/Magic.py (magic_cd): Make the setting of the terminal
487 * IPython/Magic.py (magic_cd): Make the setting of the terminal
485 title an option (-noterm_title) because it completely breaks
488 title an option (-noterm_title) because it completely breaks
486 doctesting.
489 doctesting.
487
490
488 * IPython/demo.py: fix IPythonDemo class that was not actually working.
491 * IPython/demo.py: fix IPythonDemo class that was not actually working.
489
492
490 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
493 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
491
494
492 * IPython/irunner.py (main): fix small bug where extensions were
495 * IPython/irunner.py (main): fix small bug where extensions were
493 not being correctly recognized.
496 not being correctly recognized.
494
497
495 2007-01-23 Walter Doerwald <walter@livinglogic.de>
498 2007-01-23 Walter Doerwald <walter@livinglogic.de>
496
499
497 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
500 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
498 a string containing a single line yields the string itself as the
501 a string containing a single line yields the string itself as the
499 only item.
502 only item.
500
503
501 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
504 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
502 object if it's the same as the one on the last level (This avoids
505 object if it's the same as the one on the last level (This avoids
503 infinite recursion for one line strings).
506 infinite recursion for one line strings).
504
507
505 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
508 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
506
509
507 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
510 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
508 all output streams before printing tracebacks. This ensures that
511 all output streams before printing tracebacks. This ensures that
509 user output doesn't end up interleaved with traceback output.
512 user output doesn't end up interleaved with traceback output.
510
513
511 2007-01-10 Ville Vainio <vivainio@gmail.com>
514 2007-01-10 Ville Vainio <vivainio@gmail.com>
512
515
513 * Extensions/envpersist.py: Turbocharged %env that remembers
516 * Extensions/envpersist.py: Turbocharged %env that remembers
514 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
517 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
515 "%env VISUAL=jed".
518 "%env VISUAL=jed".
516
519
517 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
520 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
518
521
519 * IPython/iplib.py (showtraceback): ensure that we correctly call
522 * IPython/iplib.py (showtraceback): ensure that we correctly call
520 custom handlers in all cases (some with pdb were slipping through,
523 custom handlers in all cases (some with pdb were slipping through,
521 but I'm not exactly sure why).
524 but I'm not exactly sure why).
522
525
523 * IPython/Debugger.py (Tracer.__init__): added new class to
526 * IPython/Debugger.py (Tracer.__init__): added new class to
524 support set_trace-like usage of IPython's enhanced debugger.
527 support set_trace-like usage of IPython's enhanced debugger.
525
528
526 2006-12-24 Ville Vainio <vivainio@gmail.com>
529 2006-12-24 Ville Vainio <vivainio@gmail.com>
527
530
528 * ipmaker.py: more informative message when ipy_user_conf
531 * ipmaker.py: more informative message when ipy_user_conf
529 import fails (suggest running %upgrade).
532 import fails (suggest running %upgrade).
530
533
531 * tools/run_ipy_in_profiler.py: Utility to see where
534 * tools/run_ipy_in_profiler.py: Utility to see where
532 the time during IPython startup is spent.
535 the time during IPython startup is spent.
533
536
534 2006-12-20 Ville Vainio <vivainio@gmail.com>
537 2006-12-20 Ville Vainio <vivainio@gmail.com>
535
538
536 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
539 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
537
540
538 * ipapi.py: Add new ipapi method, expand_alias.
541 * ipapi.py: Add new ipapi method, expand_alias.
539
542
540 * Release.py: Bump up version to 0.7.4.svn
543 * Release.py: Bump up version to 0.7.4.svn
541
544
542 2006-12-17 Ville Vainio <vivainio@gmail.com>
545 2006-12-17 Ville Vainio <vivainio@gmail.com>
543
546
544 * Extensions/jobctrl.py: Fixed &cmd arg arg...
547 * Extensions/jobctrl.py: Fixed &cmd arg arg...
545 to work properly on posix too
548 to work properly on posix too
546
549
547 * Release.py: Update revnum (version is still just 0.7.3).
550 * Release.py: Update revnum (version is still just 0.7.3).
548
551
549 2006-12-15 Ville Vainio <vivainio@gmail.com>
552 2006-12-15 Ville Vainio <vivainio@gmail.com>
550
553
551 * scripts/ipython_win_post_install: create ipython.py in
554 * scripts/ipython_win_post_install: create ipython.py in
552 prefix + "/scripts".
555 prefix + "/scripts".
553
556
554 * Release.py: Update version to 0.7.3.
557 * Release.py: Update version to 0.7.3.
555
558
556 2006-12-14 Ville Vainio <vivainio@gmail.com>
559 2006-12-14 Ville Vainio <vivainio@gmail.com>
557
560
558 * scripts/ipython_win_post_install: Overwrite old shortcuts
561 * scripts/ipython_win_post_install: Overwrite old shortcuts
559 if they already exist
562 if they already exist
560
563
561 * Release.py: release 0.7.3rc2
564 * Release.py: release 0.7.3rc2
562
565
563 2006-12-13 Ville Vainio <vivainio@gmail.com>
566 2006-12-13 Ville Vainio <vivainio@gmail.com>
564
567
565 * Branch and update Release.py for 0.7.3rc1
568 * Branch and update Release.py for 0.7.3rc1
566
569
567 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
570 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
568
571
569 * IPython/Shell.py (IPShellWX): update for current WX naming
572 * IPython/Shell.py (IPShellWX): update for current WX naming
570 conventions, to avoid a deprecation warning with current WX
573 conventions, to avoid a deprecation warning with current WX
571 versions. Thanks to a report by Danny Shevitz.
574 versions. Thanks to a report by Danny Shevitz.
572
575
573 2006-12-12 Ville Vainio <vivainio@gmail.com>
576 2006-12-12 Ville Vainio <vivainio@gmail.com>
574
577
575 * ipmaker.py: apply david cournapeau's patch to make
578 * ipmaker.py: apply david cournapeau's patch to make
576 import_some work properly even when ipythonrc does
579 import_some work properly even when ipythonrc does
577 import_some on empty list (it was an old bug!).
580 import_some on empty list (it was an old bug!).
578
581
579 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
582 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
580 Add deprecation note to ipythonrc and a url to wiki
583 Add deprecation note to ipythonrc and a url to wiki
581 in ipy_user_conf.py
584 in ipy_user_conf.py
582
585
583
586
584 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
587 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
585 as if it was typed on IPython command prompt, i.e.
588 as if it was typed on IPython command prompt, i.e.
586 as IPython script.
589 as IPython script.
587
590
588 * example-magic.py, magic_grepl.py: remove outdated examples
591 * example-magic.py, magic_grepl.py: remove outdated examples
589
592
590 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
593 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
591
594
592 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
595 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
593 is called before any exception has occurred.
596 is called before any exception has occurred.
594
597
595 2006-12-08 Ville Vainio <vivainio@gmail.com>
598 2006-12-08 Ville Vainio <vivainio@gmail.com>
596
599
597 * Extensions/ipy_stock_completers.py: fix cd completer
600 * Extensions/ipy_stock_completers.py: fix cd completer
598 to translate /'s to \'s again.
601 to translate /'s to \'s again.
599
602
600 * completer.py: prevent traceback on file completions w/
603 * completer.py: prevent traceback on file completions w/
601 backslash.
604 backslash.
602
605
603 * Release.py: Update release number to 0.7.3b3 for release
606 * Release.py: Update release number to 0.7.3b3 for release
604
607
605 2006-12-07 Ville Vainio <vivainio@gmail.com>
608 2006-12-07 Ville Vainio <vivainio@gmail.com>
606
609
607 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
610 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
608 while executing external code. Provides more shell-like behaviour
611 while executing external code. Provides more shell-like behaviour
609 and overall better response to ctrl + C / ctrl + break.
612 and overall better response to ctrl + C / ctrl + break.
610
613
611 * tools/make_tarball.py: new script to create tarball straight from svn
614 * tools/make_tarball.py: new script to create tarball straight from svn
612 (setup.py sdist doesn't work on win32).
615 (setup.py sdist doesn't work on win32).
613
616
614 * Extensions/ipy_stock_completers.py: fix cd completer to give up
617 * Extensions/ipy_stock_completers.py: fix cd completer to give up
615 on dirnames with spaces and use the default completer instead.
618 on dirnames with spaces and use the default completer instead.
616
619
617 * Revision.py: Change version to 0.7.3b2 for release.
620 * Revision.py: Change version to 0.7.3b2 for release.
618
621
619 2006-12-05 Ville Vainio <vivainio@gmail.com>
622 2006-12-05 Ville Vainio <vivainio@gmail.com>
620
623
621 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
624 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
622 pydb patch 4 (rm debug printing, py 2.5 checking)
625 pydb patch 4 (rm debug printing, py 2.5 checking)
623
626
624 2006-11-30 Walter Doerwald <walter@livinglogic.de>
627 2006-11-30 Walter Doerwald <walter@livinglogic.de>
625 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
628 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
626 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
629 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
627 "refreshfind" (mapped to "R") does the same but tries to go back to the same
630 "refreshfind" (mapped to "R") does the same but tries to go back to the same
628 object the cursor was on before the refresh. The command "markrange" is
631 object the cursor was on before the refresh. The command "markrange" is
629 mapped to "%" now.
632 mapped to "%" now.
630 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
633 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
631
634
632 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
635 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
633
636
634 * IPython/Magic.py (magic_debug): new %debug magic to activate the
637 * IPython/Magic.py (magic_debug): new %debug magic to activate the
635 interactive debugger on the last traceback, without having to call
638 interactive debugger on the last traceback, without having to call
636 %pdb and rerun your code. Made minor changes in various modules,
639 %pdb and rerun your code. Made minor changes in various modules,
637 should automatically recognize pydb if available.
640 should automatically recognize pydb if available.
638
641
639 2006-11-28 Ville Vainio <vivainio@gmail.com>
642 2006-11-28 Ville Vainio <vivainio@gmail.com>
640
643
641 * completer.py: If the text start with !, show file completions
644 * completer.py: If the text start with !, show file completions
642 properly. This helps when trying to complete command name
645 properly. This helps when trying to complete command name
643 for shell escapes.
646 for shell escapes.
644
647
645 2006-11-27 Ville Vainio <vivainio@gmail.com>
648 2006-11-27 Ville Vainio <vivainio@gmail.com>
646
649
647 * ipy_stock_completers.py: bzr completer submitted by Stefan van
650 * ipy_stock_completers.py: bzr completer submitted by Stefan van
648 der Walt. Clean up svn and hg completers by using a common
651 der Walt. Clean up svn and hg completers by using a common
649 vcs_completer.
652 vcs_completer.
650
653
651 2006-11-26 Ville Vainio <vivainio@gmail.com>
654 2006-11-26 Ville Vainio <vivainio@gmail.com>
652
655
653 * Remove ipconfig and %config; you should use _ip.options structure
656 * Remove ipconfig and %config; you should use _ip.options structure
654 directly instead!
657 directly instead!
655
658
656 * genutils.py: add wrap_deprecated function for deprecating callables
659 * genutils.py: add wrap_deprecated function for deprecating callables
657
660
658 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
661 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
659 _ip.system instead. ipalias is redundant.
662 _ip.system instead. ipalias is redundant.
660
663
661 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
664 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
662 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
665 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
663 explicit.
666 explicit.
664
667
665 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
668 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
666 completer. Try it by entering 'hg ' and pressing tab.
669 completer. Try it by entering 'hg ' and pressing tab.
667
670
668 * macro.py: Give Macro a useful __repr__ method
671 * macro.py: Give Macro a useful __repr__ method
669
672
670 * Magic.py: %whos abbreviates the typename of Macro for brevity.
673 * Magic.py: %whos abbreviates the typename of Macro for brevity.
671
674
672 2006-11-24 Walter Doerwald <walter@livinglogic.de>
675 2006-11-24 Walter Doerwald <walter@livinglogic.de>
673 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
676 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
674 we don't get a duplicate ipipe module, where registration of the xrepr
677 we don't get a duplicate ipipe module, where registration of the xrepr
675 implementation for Text is useless.
678 implementation for Text is useless.
676
679
677 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
680 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
678
681
679 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
682 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
680
683
681 2006-11-24 Ville Vainio <vivainio@gmail.com>
684 2006-11-24 Ville Vainio <vivainio@gmail.com>
682
685
683 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
686 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
684 try to use "cProfile" instead of the slower pure python
687 try to use "cProfile" instead of the slower pure python
685 "profile"
688 "profile"
686
689
687 2006-11-23 Ville Vainio <vivainio@gmail.com>
690 2006-11-23 Ville Vainio <vivainio@gmail.com>
688
691
689 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
692 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
690 Qt+IPython+Designer link in documentation.
693 Qt+IPython+Designer link in documentation.
691
694
692 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
695 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
693 correct Pdb object to %pydb.
696 correct Pdb object to %pydb.
694
697
695
698
696 2006-11-22 Walter Doerwald <walter@livinglogic.de>
699 2006-11-22 Walter Doerwald <walter@livinglogic.de>
697 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
700 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
698 generic xrepr(), otherwise the list implementation would kick in.
701 generic xrepr(), otherwise the list implementation would kick in.
699
702
700 2006-11-21 Ville Vainio <vivainio@gmail.com>
703 2006-11-21 Ville Vainio <vivainio@gmail.com>
701
704
702 * upgrade_dir.py: Now actually overwrites a nonmodified user file
705 * upgrade_dir.py: Now actually overwrites a nonmodified user file
703 with one from UserConfig.
706 with one from UserConfig.
704
707
705 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
708 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
706 it was missing which broke the sh profile.
709 it was missing which broke the sh profile.
707
710
708 * completer.py: file completer now uses explicit '/' instead
711 * completer.py: file completer now uses explicit '/' instead
709 of os.path.join, expansion of 'foo' was broken on win32
712 of os.path.join, expansion of 'foo' was broken on win32
710 if there was one directory with name 'foobar'.
713 if there was one directory with name 'foobar'.
711
714
712 * A bunch of patches from Kirill Smelkov:
715 * A bunch of patches from Kirill Smelkov:
713
716
714 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
717 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
715
718
716 * [patch 7/9] Implement %page -r (page in raw mode) -
719 * [patch 7/9] Implement %page -r (page in raw mode) -
717
720
718 * [patch 5/9] ScientificPython webpage has moved
721 * [patch 5/9] ScientificPython webpage has moved
719
722
720 * [patch 4/9] The manual mentions %ds, should be %dhist
723 * [patch 4/9] The manual mentions %ds, should be %dhist
721
724
722 * [patch 3/9] Kill old bits from %prun doc.
725 * [patch 3/9] Kill old bits from %prun doc.
723
726
724 * [patch 1/9] Fix typos here and there.
727 * [patch 1/9] Fix typos here and there.
725
728
726 2006-11-08 Ville Vainio <vivainio@gmail.com>
729 2006-11-08 Ville Vainio <vivainio@gmail.com>
727
730
728 * completer.py (attr_matches): catch all exceptions raised
731 * completer.py (attr_matches): catch all exceptions raised
729 by eval of expr with dots.
732 by eval of expr with dots.
730
733
731 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
734 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
732
735
733 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
736 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
734 input if it starts with whitespace. This allows you to paste
737 input if it starts with whitespace. This allows you to paste
735 indented input from any editor without manually having to type in
738 indented input from any editor without manually having to type in
736 the 'if 1:', which is convenient when working interactively.
739 the 'if 1:', which is convenient when working interactively.
737 Slightly modifed version of a patch by Bo Peng
740 Slightly modifed version of a patch by Bo Peng
738 <bpeng-AT-rice.edu>.
741 <bpeng-AT-rice.edu>.
739
742
740 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
743 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
741
744
742 * IPython/irunner.py (main): modified irunner so it automatically
745 * IPython/irunner.py (main): modified irunner so it automatically
743 recognizes the right runner to use based on the extension (.py for
746 recognizes the right runner to use based on the extension (.py for
744 python, .ipy for ipython and .sage for sage).
747 python, .ipy for ipython and .sage for sage).
745
748
746 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
749 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
747 visible in ipapi as ip.config(), to programatically control the
750 visible in ipapi as ip.config(), to programatically control the
748 internal rc object. There's an accompanying %config magic for
751 internal rc object. There's an accompanying %config magic for
749 interactive use, which has been enhanced to match the
752 interactive use, which has been enhanced to match the
750 funtionality in ipconfig.
753 funtionality in ipconfig.
751
754
752 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
755 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
753 so it's not just a toggle, it now takes an argument. Add support
756 so it's not just a toggle, it now takes an argument. Add support
754 for a customizable header when making system calls, as the new
757 for a customizable header when making system calls, as the new
755 system_header variable in the ipythonrc file.
758 system_header variable in the ipythonrc file.
756
759
757 2006-11-03 Walter Doerwald <walter@livinglogic.de>
760 2006-11-03 Walter Doerwald <walter@livinglogic.de>
758
761
759 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
762 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
760 generic functions (using Philip J. Eby's simplegeneric package).
763 generic functions (using Philip J. Eby's simplegeneric package).
761 This makes it possible to customize the display of third-party classes
764 This makes it possible to customize the display of third-party classes
762 without having to monkeypatch them. xiter() no longer supports a mode
765 without having to monkeypatch them. xiter() no longer supports a mode
763 argument and the XMode class has been removed. The same functionality can
766 argument and the XMode class has been removed. The same functionality can
764 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
767 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
765 One consequence of the switch to generic functions is that xrepr() and
768 One consequence of the switch to generic functions is that xrepr() and
766 xattrs() implementation must define the default value for the mode
769 xattrs() implementation must define the default value for the mode
767 argument themselves and xattrs() implementations must return real
770 argument themselves and xattrs() implementations must return real
768 descriptors.
771 descriptors.
769
772
770 * IPython/external: This new subpackage will contain all third-party
773 * IPython/external: This new subpackage will contain all third-party
771 packages that are bundled with IPython. (The first one is simplegeneric).
774 packages that are bundled with IPython. (The first one is simplegeneric).
772
775
773 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
776 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
774 directory which as been dropped in r1703.
777 directory which as been dropped in r1703.
775
778
776 * IPython/Extensions/ipipe.py (iless): Fixed.
779 * IPython/Extensions/ipipe.py (iless): Fixed.
777
780
778 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
781 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
779
782
780 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
783 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
781
784
782 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
785 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
783 handling in variable expansion so that shells and magics recognize
786 handling in variable expansion so that shells and magics recognize
784 function local scopes correctly. Bug reported by Brian.
787 function local scopes correctly. Bug reported by Brian.
785
788
786 * scripts/ipython: remove the very first entry in sys.path which
789 * scripts/ipython: remove the very first entry in sys.path which
787 Python auto-inserts for scripts, so that sys.path under IPython is
790 Python auto-inserts for scripts, so that sys.path under IPython is
788 as similar as possible to that under plain Python.
791 as similar as possible to that under plain Python.
789
792
790 * IPython/completer.py (IPCompleter.file_matches): Fix
793 * IPython/completer.py (IPCompleter.file_matches): Fix
791 tab-completion so that quotes are not closed unless the completion
794 tab-completion so that quotes are not closed unless the completion
792 is unambiguous. After a request by Stefan. Minor cleanups in
795 is unambiguous. After a request by Stefan. Minor cleanups in
793 ipy_stock_completers.
796 ipy_stock_completers.
794
797
795 2006-11-02 Ville Vainio <vivainio@gmail.com>
798 2006-11-02 Ville Vainio <vivainio@gmail.com>
796
799
797 * ipy_stock_completers.py: Add %run and %cd completers.
800 * ipy_stock_completers.py: Add %run and %cd completers.
798
801
799 * completer.py: Try running custom completer for both
802 * completer.py: Try running custom completer for both
800 "foo" and "%foo" if the command is just "foo". Ignore case
803 "foo" and "%foo" if the command is just "foo". Ignore case
801 when filtering possible completions.
804 when filtering possible completions.
802
805
803 * UserConfig/ipy_user_conf.py: install stock completers as default
806 * UserConfig/ipy_user_conf.py: install stock completers as default
804
807
805 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
808 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
806 simplified readline history save / restore through a wrapper
809 simplified readline history save / restore through a wrapper
807 function
810 function
808
811
809
812
810 2006-10-31 Ville Vainio <vivainio@gmail.com>
813 2006-10-31 Ville Vainio <vivainio@gmail.com>
811
814
812 * strdispatch.py, completer.py, ipy_stock_completers.py:
815 * strdispatch.py, completer.py, ipy_stock_completers.py:
813 Allow str_key ("command") in completer hooks. Implement
816 Allow str_key ("command") in completer hooks. Implement
814 trivial completer for 'import' (stdlib modules only). Rename
817 trivial completer for 'import' (stdlib modules only). Rename
815 ipy_linux_package_managers.py to ipy_stock_completers.py.
818 ipy_linux_package_managers.py to ipy_stock_completers.py.
816 SVN completer.
819 SVN completer.
817
820
818 * Extensions/ledit.py: %magic line editor for easily and
821 * Extensions/ledit.py: %magic line editor for easily and
819 incrementally manipulating lists of strings. The magic command
822 incrementally manipulating lists of strings. The magic command
820 name is %led.
823 name is %led.
821
824
822 2006-10-30 Ville Vainio <vivainio@gmail.com>
825 2006-10-30 Ville Vainio <vivainio@gmail.com>
823
826
824 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
827 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
825 Bernsteins's patches for pydb integration.
828 Bernsteins's patches for pydb integration.
826 http://bashdb.sourceforge.net/pydb/
829 http://bashdb.sourceforge.net/pydb/
827
830
828 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
831 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
829 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
832 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
830 custom completer hook to allow the users to implement their own
833 custom completer hook to allow the users to implement their own
831 completers. See ipy_linux_package_managers.py for example. The
834 completers. See ipy_linux_package_managers.py for example. The
832 hook name is 'complete_command'.
835 hook name is 'complete_command'.
833
836
834 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
837 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
835
838
836 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
839 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
837 Numeric leftovers.
840 Numeric leftovers.
838
841
839 * ipython.el (py-execute-region): apply Stefan's patch to fix
842 * ipython.el (py-execute-region): apply Stefan's patch to fix
840 garbled results if the python shell hasn't been previously started.
843 garbled results if the python shell hasn't been previously started.
841
844
842 * IPython/genutils.py (arg_split): moved to genutils, since it's a
845 * IPython/genutils.py (arg_split): moved to genutils, since it's a
843 pretty generic function and useful for other things.
846 pretty generic function and useful for other things.
844
847
845 * IPython/OInspect.py (getsource): Add customizable source
848 * IPython/OInspect.py (getsource): Add customizable source
846 extractor. After a request/patch form W. Stein (SAGE).
849 extractor. After a request/patch form W. Stein (SAGE).
847
850
848 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
851 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
849 window size to a more reasonable value from what pexpect does,
852 window size to a more reasonable value from what pexpect does,
850 since their choice causes wrapping bugs with long input lines.
853 since their choice causes wrapping bugs with long input lines.
851
854
852 2006-10-28 Ville Vainio <vivainio@gmail.com>
855 2006-10-28 Ville Vainio <vivainio@gmail.com>
853
856
854 * Magic.py (%run): Save and restore the readline history from
857 * Magic.py (%run): Save and restore the readline history from
855 file around %run commands to prevent side effects from
858 file around %run commands to prevent side effects from
856 %runned programs that might use readline (e.g. pydb).
859 %runned programs that might use readline (e.g. pydb).
857
860
858 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
861 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
859 invoking the pydb enhanced debugger.
862 invoking the pydb enhanced debugger.
860
863
861 2006-10-23 Walter Doerwald <walter@livinglogic.de>
864 2006-10-23 Walter Doerwald <walter@livinglogic.de>
862
865
863 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
866 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
864 call the base class method and propagate the return value to
867 call the base class method and propagate the return value to
865 ifile. This is now done by path itself.
868 ifile. This is now done by path itself.
866
869
867 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
870 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
868
871
869 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
872 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
870 api: set_crash_handler(), to expose the ability to change the
873 api: set_crash_handler(), to expose the ability to change the
871 internal crash handler.
874 internal crash handler.
872
875
873 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
876 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
874 the various parameters of the crash handler so that apps using
877 the various parameters of the crash handler so that apps using
875 IPython as their engine can customize crash handling. Ipmlemented
878 IPython as their engine can customize crash handling. Ipmlemented
876 at the request of SAGE.
879 at the request of SAGE.
877
880
878 2006-10-14 Ville Vainio <vivainio@gmail.com>
881 2006-10-14 Ville Vainio <vivainio@gmail.com>
879
882
880 * Magic.py, ipython.el: applied first "safe" part of Rocky
883 * Magic.py, ipython.el: applied first "safe" part of Rocky
881 Bernstein's patch set for pydb integration.
884 Bernstein's patch set for pydb integration.
882
885
883 * Magic.py (%unalias, %alias): %store'd aliases can now be
886 * Magic.py (%unalias, %alias): %store'd aliases can now be
884 removed with '%unalias'. %alias w/o args now shows most
887 removed with '%unalias'. %alias w/o args now shows most
885 interesting (stored / manually defined) aliases last
888 interesting (stored / manually defined) aliases last
886 where they catch the eye w/o scrolling.
889 where they catch the eye w/o scrolling.
887
890
888 * Magic.py (%rehashx), ext_rehashdir.py: files with
891 * Magic.py (%rehashx), ext_rehashdir.py: files with
889 'py' extension are always considered executable, even
892 'py' extension are always considered executable, even
890 when not in PATHEXT environment variable.
893 when not in PATHEXT environment variable.
891
894
892 2006-10-12 Ville Vainio <vivainio@gmail.com>
895 2006-10-12 Ville Vainio <vivainio@gmail.com>
893
896
894 * jobctrl.py: Add new "jobctrl" extension for spawning background
897 * jobctrl.py: Add new "jobctrl" extension for spawning background
895 processes with "&find /". 'import jobctrl' to try it out. Requires
898 processes with "&find /". 'import jobctrl' to try it out. Requires
896 'subprocess' module, standard in python 2.4+.
899 'subprocess' module, standard in python 2.4+.
897
900
898 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
901 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
899 so if foo -> bar and bar -> baz, then foo -> baz.
902 so if foo -> bar and bar -> baz, then foo -> baz.
900
903
901 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
904 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
902
905
903 * IPython/Magic.py (Magic.parse_options): add a new posix option
906 * IPython/Magic.py (Magic.parse_options): add a new posix option
904 to allow parsing of input args in magics that doesn't strip quotes
907 to allow parsing of input args in magics that doesn't strip quotes
905 (if posix=False). This also closes %timeit bug reported by
908 (if posix=False). This also closes %timeit bug reported by
906 Stefan.
909 Stefan.
907
910
908 2006-10-03 Ville Vainio <vivainio@gmail.com>
911 2006-10-03 Ville Vainio <vivainio@gmail.com>
909
912
910 * iplib.py (raw_input, interact): Return ValueError catching for
913 * iplib.py (raw_input, interact): Return ValueError catching for
911 raw_input. Fixes infinite loop for sys.stdin.close() or
914 raw_input. Fixes infinite loop for sys.stdin.close() or
912 sys.stdout.close().
915 sys.stdout.close().
913
916
914 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
917 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
915
918
916 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
919 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
917 to help in handling doctests. irunner is now pretty useful for
920 to help in handling doctests. irunner is now pretty useful for
918 running standalone scripts and simulate a full interactive session
921 running standalone scripts and simulate a full interactive session
919 in a format that can be then pasted as a doctest.
922 in a format that can be then pasted as a doctest.
920
923
921 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
924 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
922 on top of the default (useless) ones. This also fixes the nasty
925 on top of the default (useless) ones. This also fixes the nasty
923 way in which 2.5's Quitter() exits (reverted [1785]).
926 way in which 2.5's Quitter() exits (reverted [1785]).
924
927
925 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
928 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
926 2.5.
929 2.5.
927
930
928 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
931 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
929 color scheme is updated as well when color scheme is changed
932 color scheme is updated as well when color scheme is changed
930 interactively.
933 interactively.
931
934
932 2006-09-27 Ville Vainio <vivainio@gmail.com>
935 2006-09-27 Ville Vainio <vivainio@gmail.com>
933
936
934 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
937 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
935 infinite loop and just exit. It's a hack, but will do for a while.
938 infinite loop and just exit. It's a hack, but will do for a while.
936
939
937 2006-08-25 Walter Doerwald <walter@livinglogic.de>
940 2006-08-25 Walter Doerwald <walter@livinglogic.de>
938
941
939 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
942 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
940 the constructor, this makes it possible to get a list of only directories
943 the constructor, this makes it possible to get a list of only directories
941 or only files.
944 or only files.
942
945
943 2006-08-12 Ville Vainio <vivainio@gmail.com>
946 2006-08-12 Ville Vainio <vivainio@gmail.com>
944
947
945 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
948 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
946 they broke unittest
949 they broke unittest
947
950
948 2006-08-11 Ville Vainio <vivainio@gmail.com>
951 2006-08-11 Ville Vainio <vivainio@gmail.com>
949
952
950 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
953 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
951 by resolving issue properly, i.e. by inheriting FakeModule
954 by resolving issue properly, i.e. by inheriting FakeModule
952 from types.ModuleType. Pickling ipython interactive data
955 from types.ModuleType. Pickling ipython interactive data
953 should still work as usual (testing appreciated).
956 should still work as usual (testing appreciated).
954
957
955 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
958 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
956
959
957 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
960 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
958 running under python 2.3 with code from 2.4 to fix a bug with
961 running under python 2.3 with code from 2.4 to fix a bug with
959 help(). Reported by the Debian maintainers, Norbert Tretkowski
962 help(). Reported by the Debian maintainers, Norbert Tretkowski
960 <norbert-AT-tretkowski.de> and Alexandre Fayolle
963 <norbert-AT-tretkowski.de> and Alexandre Fayolle
961 <afayolle-AT-debian.org>.
964 <afayolle-AT-debian.org>.
962
965
963 2006-08-04 Walter Doerwald <walter@livinglogic.de>
966 2006-08-04 Walter Doerwald <walter@livinglogic.de>
964
967
965 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
968 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
966 (which was displaying "quit" twice).
969 (which was displaying "quit" twice).
967
970
968 2006-07-28 Walter Doerwald <walter@livinglogic.de>
971 2006-07-28 Walter Doerwald <walter@livinglogic.de>
969
972
970 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
973 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
971 the mode argument).
974 the mode argument).
972
975
973 2006-07-27 Walter Doerwald <walter@livinglogic.de>
976 2006-07-27 Walter Doerwald <walter@livinglogic.de>
974
977
975 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
978 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
976 not running under IPython.
979 not running under IPython.
977
980
978 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
981 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
979 and make it iterable (iterating over the attribute itself). Add two new
982 and make it iterable (iterating over the attribute itself). Add two new
980 magic strings for __xattrs__(): If the string starts with "-", the attribute
983 magic strings for __xattrs__(): If the string starts with "-", the attribute
981 will not be displayed in ibrowse's detail view (but it can still be
984 will not be displayed in ibrowse's detail view (but it can still be
982 iterated over). This makes it possible to add attributes that are large
985 iterated over). This makes it possible to add attributes that are large
983 lists or generator methods to the detail view. Replace magic attribute names
986 lists or generator methods to the detail view. Replace magic attribute names
984 and _attrname() and _getattr() with "descriptors": For each type of magic
987 and _attrname() and _getattr() with "descriptors": For each type of magic
985 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
988 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
986 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
989 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
987 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
990 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
988 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
991 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
989 are still supported.
992 are still supported.
990
993
991 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
994 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
992 fails in ibrowse.fetch(), the exception object is added as the last item
995 fails in ibrowse.fetch(), the exception object is added as the last item
993 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
996 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
994 a generator throws an exception midway through execution.
997 a generator throws an exception midway through execution.
995
998
996 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
999 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
997 encoding into methods.
1000 encoding into methods.
998
1001
999 2006-07-26 Ville Vainio <vivainio@gmail.com>
1002 2006-07-26 Ville Vainio <vivainio@gmail.com>
1000
1003
1001 * iplib.py: history now stores multiline input as single
1004 * iplib.py: history now stores multiline input as single
1002 history entries. Patch by Jorgen Cederlof.
1005 history entries. Patch by Jorgen Cederlof.
1003
1006
1004 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1007 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1005
1008
1006 * IPython/Extensions/ibrowse.py: Make cursor visible over
1009 * IPython/Extensions/ibrowse.py: Make cursor visible over
1007 non existing attributes.
1010 non existing attributes.
1008
1011
1009 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1012 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1010
1013
1011 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1014 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1012 error output of the running command doesn't mess up the screen.
1015 error output of the running command doesn't mess up the screen.
1013
1016
1014 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1017 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1015
1018
1016 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1019 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1017 argument. This sorts the items themselves.
1020 argument. This sorts the items themselves.
1018
1021
1019 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1022 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1020
1023
1021 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1024 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1022 Compile expression strings into code objects. This should speed
1025 Compile expression strings into code objects. This should speed
1023 up ifilter and friends somewhat.
1026 up ifilter and friends somewhat.
1024
1027
1025 2006-07-08 Ville Vainio <vivainio@gmail.com>
1028 2006-07-08 Ville Vainio <vivainio@gmail.com>
1026
1029
1027 * Magic.py: %cpaste now strips > from the beginning of lines
1030 * Magic.py: %cpaste now strips > from the beginning of lines
1028 to ease pasting quoted code from emails. Contributed by
1031 to ease pasting quoted code from emails. Contributed by
1029 Stefan van der Walt.
1032 Stefan van der Walt.
1030
1033
1031 2006-06-29 Ville Vainio <vivainio@gmail.com>
1034 2006-06-29 Ville Vainio <vivainio@gmail.com>
1032
1035
1033 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1036 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1034 mode, patch contributed by Darren Dale. NEEDS TESTING!
1037 mode, patch contributed by Darren Dale. NEEDS TESTING!
1035
1038
1036 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1039 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1037
1040
1038 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1041 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1039 a blue background. Fix fetching new display rows when the browser
1042 a blue background. Fix fetching new display rows when the browser
1040 scrolls more than a screenful (e.g. by using the goto command).
1043 scrolls more than a screenful (e.g. by using the goto command).
1041
1044
1042 2006-06-27 Ville Vainio <vivainio@gmail.com>
1045 2006-06-27 Ville Vainio <vivainio@gmail.com>
1043
1046
1044 * Magic.py (_inspect, _ofind) Apply David Huard's
1047 * Magic.py (_inspect, _ofind) Apply David Huard's
1045 patch for displaying the correct docstring for 'property'
1048 patch for displaying the correct docstring for 'property'
1046 attributes.
1049 attributes.
1047
1050
1048 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1051 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1049
1052
1050 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1053 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1051 commands into the methods implementing them.
1054 commands into the methods implementing them.
1052
1055
1053 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1056 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1054
1057
1055 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1058 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1056 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1059 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1057 autoindent support was authored by Jin Liu.
1060 autoindent support was authored by Jin Liu.
1058
1061
1059 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1062 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1060
1063
1061 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1064 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1062 for keymaps with a custom class that simplifies handling.
1065 for keymaps with a custom class that simplifies handling.
1063
1066
1064 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1067 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1065
1068
1066 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1069 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1067 resizing. This requires Python 2.5 to work.
1070 resizing. This requires Python 2.5 to work.
1068
1071
1069 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1072 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1070
1073
1071 * IPython/Extensions/ibrowse.py: Add two new commands to
1074 * IPython/Extensions/ibrowse.py: Add two new commands to
1072 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1075 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1073 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1076 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1074 attributes again. Remapped the help command to "?". Display
1077 attributes again. Remapped the help command to "?". Display
1075 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1078 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1076 as keys for the "home" and "end" commands. Add three new commands
1079 as keys for the "home" and "end" commands. Add three new commands
1077 to the input mode for "find" and friends: "delend" (CTRL-K)
1080 to the input mode for "find" and friends: "delend" (CTRL-K)
1078 deletes to the end of line. "incsearchup" searches upwards in the
1081 deletes to the end of line. "incsearchup" searches upwards in the
1079 command history for an input that starts with the text before the cursor.
1082 command history for an input that starts with the text before the cursor.
1080 "incsearchdown" does the same downwards. Removed a bogus mapping of
1083 "incsearchdown" does the same downwards. Removed a bogus mapping of
1081 the x key to "delete".
1084 the x key to "delete".
1082
1085
1083 2006-06-15 Ville Vainio <vivainio@gmail.com>
1086 2006-06-15 Ville Vainio <vivainio@gmail.com>
1084
1087
1085 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1088 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1086 used to create prompts dynamically, instead of the "old" way of
1089 used to create prompts dynamically, instead of the "old" way of
1087 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1090 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1088 way still works (it's invoked by the default hook), of course.
1091 way still works (it's invoked by the default hook), of course.
1089
1092
1090 * Prompts.py: added generate_output_prompt hook for altering output
1093 * Prompts.py: added generate_output_prompt hook for altering output
1091 prompt
1094 prompt
1092
1095
1093 * Release.py: Changed version string to 0.7.3.svn.
1096 * Release.py: Changed version string to 0.7.3.svn.
1094
1097
1095 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1098 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1096
1099
1097 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1100 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1098 the call to fetch() always tries to fetch enough data for at least one
1101 the call to fetch() always tries to fetch enough data for at least one
1099 full screen. This makes it possible to simply call moveto(0,0,True) in
1102 full screen. This makes it possible to simply call moveto(0,0,True) in
1100 the constructor. Fix typos and removed the obsolete goto attribute.
1103 the constructor. Fix typos and removed the obsolete goto attribute.
1101
1104
1102 2006-06-12 Ville Vainio <vivainio@gmail.com>
1105 2006-06-12 Ville Vainio <vivainio@gmail.com>
1103
1106
1104 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1107 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1105 allowing $variable interpolation within multiline statements,
1108 allowing $variable interpolation within multiline statements,
1106 though so far only with "sh" profile for a testing period.
1109 though so far only with "sh" profile for a testing period.
1107 The patch also enables splitting long commands with \ but it
1110 The patch also enables splitting long commands with \ but it
1108 doesn't work properly yet.
1111 doesn't work properly yet.
1109
1112
1110 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1113 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1111
1114
1112 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1115 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1113 input history and the position of the cursor in the input history for
1116 input history and the position of the cursor in the input history for
1114 the find, findbackwards and goto command.
1117 the find, findbackwards and goto command.
1115
1118
1116 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1119 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1117
1120
1118 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1121 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1119 implements the basic functionality of browser commands that require
1122 implements the basic functionality of browser commands that require
1120 input. Reimplement the goto, find and findbackwards commands as
1123 input. Reimplement the goto, find and findbackwards commands as
1121 subclasses of _CommandInput. Add an input history and keymaps to those
1124 subclasses of _CommandInput. Add an input history and keymaps to those
1122 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1125 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1123 execute commands.
1126 execute commands.
1124
1127
1125 2006-06-07 Ville Vainio <vivainio@gmail.com>
1128 2006-06-07 Ville Vainio <vivainio@gmail.com>
1126
1129
1127 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1130 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1128 running the batch files instead of leaving the session open.
1131 running the batch files instead of leaving the session open.
1129
1132
1130 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1133 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1134
1132 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1135 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1133 the original fix was incomplete. Patch submitted by W. Maier.
1136 the original fix was incomplete. Patch submitted by W. Maier.
1134
1137
1135 2006-06-07 Ville Vainio <vivainio@gmail.com>
1138 2006-06-07 Ville Vainio <vivainio@gmail.com>
1136
1139
1137 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1140 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1138 Confirmation prompts can be supressed by 'quiet' option.
1141 Confirmation prompts can be supressed by 'quiet' option.
1139 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1142 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1140
1143
1141 2006-06-06 *** Released version 0.7.2
1144 2006-06-06 *** Released version 0.7.2
1142
1145
1143 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1146 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1147
1145 * IPython/Release.py (version): Made 0.7.2 final for release.
1148 * IPython/Release.py (version): Made 0.7.2 final for release.
1146 Repo tagged and release cut.
1149 Repo tagged and release cut.
1147
1150
1148 2006-06-05 Ville Vainio <vivainio@gmail.com>
1151 2006-06-05 Ville Vainio <vivainio@gmail.com>
1149
1152
1150 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1153 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1151 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1154 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1152
1155
1153 * upgrade_dir.py: try import 'path' module a bit harder
1156 * upgrade_dir.py: try import 'path' module a bit harder
1154 (for %upgrade)
1157 (for %upgrade)
1155
1158
1156 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1157
1160
1158 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1161 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1159 instead of looping 20 times.
1162 instead of looping 20 times.
1160
1163
1161 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1164 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1162 correctly at initialization time. Bug reported by Krishna Mohan
1165 correctly at initialization time. Bug reported by Krishna Mohan
1163 Gundu <gkmohan-AT-gmail.com> on the user list.
1166 Gundu <gkmohan-AT-gmail.com> on the user list.
1164
1167
1165 * IPython/Release.py (version): Mark 0.7.2 version to start
1168 * IPython/Release.py (version): Mark 0.7.2 version to start
1166 testing for release on 06/06.
1169 testing for release on 06/06.
1167
1170
1168 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1171 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1169
1172
1170 * scripts/irunner: thin script interface so users don't have to
1173 * scripts/irunner: thin script interface so users don't have to
1171 find the module and call it as an executable, since modules rarely
1174 find the module and call it as an executable, since modules rarely
1172 live in people's PATH.
1175 live in people's PATH.
1173
1176
1174 * IPython/irunner.py (InteractiveRunner.__init__): added
1177 * IPython/irunner.py (InteractiveRunner.__init__): added
1175 delaybeforesend attribute to control delays with newer versions of
1178 delaybeforesend attribute to control delays with newer versions of
1176 pexpect. Thanks to detailed help from pexpect's author, Noah
1179 pexpect. Thanks to detailed help from pexpect's author, Noah
1177 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1180 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1178 correctly (it works in NoColor mode).
1181 correctly (it works in NoColor mode).
1179
1182
1180 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1183 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1181 SAGE list, from improper log() calls.
1184 SAGE list, from improper log() calls.
1182
1185
1183 2006-05-31 Ville Vainio <vivainio@gmail.com>
1186 2006-05-31 Ville Vainio <vivainio@gmail.com>
1184
1187
1185 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1188 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1186 with args in parens to work correctly with dirs that have spaces.
1189 with args in parens to work correctly with dirs that have spaces.
1187
1190
1188 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1191 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1189
1192
1190 * IPython/Logger.py (Logger.logstart): add option to log raw input
1193 * IPython/Logger.py (Logger.logstart): add option to log raw input
1191 instead of the processed one. A -r flag was added to the
1194 instead of the processed one. A -r flag was added to the
1192 %logstart magic used for controlling logging.
1195 %logstart magic used for controlling logging.
1193
1196
1194 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1195
1198
1196 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1199 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1197 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1200 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1198 recognize the option. After a bug report by Will Maier. This
1201 recognize the option. After a bug report by Will Maier. This
1199 closes #64 (will do it after confirmation from W. Maier).
1202 closes #64 (will do it after confirmation from W. Maier).
1200
1203
1201 * IPython/irunner.py: New module to run scripts as if manually
1204 * IPython/irunner.py: New module to run scripts as if manually
1202 typed into an interactive environment, based on pexpect. After a
1205 typed into an interactive environment, based on pexpect. After a
1203 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1206 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1204 ipython-user list. Simple unittests in the tests/ directory.
1207 ipython-user list. Simple unittests in the tests/ directory.
1205
1208
1206 * tools/release: add Will Maier, OpenBSD port maintainer, to
1209 * tools/release: add Will Maier, OpenBSD port maintainer, to
1207 recepients list. We are now officially part of the OpenBSD ports:
1210 recepients list. We are now officially part of the OpenBSD ports:
1208 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1211 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1209 work.
1212 work.
1210
1213
1211 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1214 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1212
1215
1213 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1216 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1214 so that it doesn't break tkinter apps.
1217 so that it doesn't break tkinter apps.
1215
1218
1216 * IPython/iplib.py (_prefilter): fix bug where aliases would
1219 * IPython/iplib.py (_prefilter): fix bug where aliases would
1217 shadow variables when autocall was fully off. Reported by SAGE
1220 shadow variables when autocall was fully off. Reported by SAGE
1218 author William Stein.
1221 author William Stein.
1219
1222
1220 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1223 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1221 at what detail level strings are computed when foo? is requested.
1224 at what detail level strings are computed when foo? is requested.
1222 This allows users to ask for example that the string form of an
1225 This allows users to ask for example that the string form of an
1223 object is only computed when foo?? is called, or even never, by
1226 object is only computed when foo?? is called, or even never, by
1224 setting the object_info_string_level >= 2 in the configuration
1227 setting the object_info_string_level >= 2 in the configuration
1225 file. This new option has been added and documented. After a
1228 file. This new option has been added and documented. After a
1226 request by SAGE to be able to control the printing of very large
1229 request by SAGE to be able to control the printing of very large
1227 objects more easily.
1230 objects more easily.
1228
1231
1229 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1232 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1230
1233
1231 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1234 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1232 from sys.argv, to be 100% consistent with how Python itself works
1235 from sys.argv, to be 100% consistent with how Python itself works
1233 (as seen for example with python -i file.py). After a bug report
1236 (as seen for example with python -i file.py). After a bug report
1234 by Jeffrey Collins.
1237 by Jeffrey Collins.
1235
1238
1236 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1239 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1237 nasty bug which was preventing custom namespaces with -pylab,
1240 nasty bug which was preventing custom namespaces with -pylab,
1238 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1241 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1239 compatibility (long gone from mpl).
1242 compatibility (long gone from mpl).
1240
1243
1241 * IPython/ipapi.py (make_session): name change: create->make. We
1244 * IPython/ipapi.py (make_session): name change: create->make. We
1242 use make in other places (ipmaker,...), it's shorter and easier to
1245 use make in other places (ipmaker,...), it's shorter and easier to
1243 type and say, etc. I'm trying to clean things before 0.7.2 so
1246 type and say, etc. I'm trying to clean things before 0.7.2 so
1244 that I can keep things stable wrt to ipapi in the chainsaw branch.
1247 that I can keep things stable wrt to ipapi in the chainsaw branch.
1245
1248
1246 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1249 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1247 python-mode recognizes our debugger mode. Add support for
1250 python-mode recognizes our debugger mode. Add support for
1248 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1251 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1249 <m.liu.jin-AT-gmail.com> originally written by
1252 <m.liu.jin-AT-gmail.com> originally written by
1250 doxgen-AT-newsmth.net (with minor modifications for xemacs
1253 doxgen-AT-newsmth.net (with minor modifications for xemacs
1251 compatibility)
1254 compatibility)
1252
1255
1253 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1256 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1254 tracebacks when walking the stack so that the stack tracking system
1257 tracebacks when walking the stack so that the stack tracking system
1255 in emacs' python-mode can identify the frames correctly.
1258 in emacs' python-mode can identify the frames correctly.
1256
1259
1257 * IPython/ipmaker.py (make_IPython): make the internal (and
1260 * IPython/ipmaker.py (make_IPython): make the internal (and
1258 default config) autoedit_syntax value false by default. Too many
1261 default config) autoedit_syntax value false by default. Too many
1259 users have complained to me (both on and off-list) about problems
1262 users have complained to me (both on and off-list) about problems
1260 with this option being on by default, so I'm making it default to
1263 with this option being on by default, so I'm making it default to
1261 off. It can still be enabled by anyone via the usual mechanisms.
1264 off. It can still be enabled by anyone via the usual mechanisms.
1262
1265
1263 * IPython/completer.py (Completer.attr_matches): add support for
1266 * IPython/completer.py (Completer.attr_matches): add support for
1264 PyCrust-style _getAttributeNames magic method. Patch contributed
1267 PyCrust-style _getAttributeNames magic method. Patch contributed
1265 by <mscott-AT-goldenspud.com>. Closes #50.
1268 by <mscott-AT-goldenspud.com>. Closes #50.
1266
1269
1267 * IPython/iplib.py (InteractiveShell.__init__): remove the
1270 * IPython/iplib.py (InteractiveShell.__init__): remove the
1268 deletion of exit/quit from __builtin__, which can break
1271 deletion of exit/quit from __builtin__, which can break
1269 third-party tools like the Zope debugging console. The
1272 third-party tools like the Zope debugging console. The
1270 %exit/%quit magics remain. In general, it's probably a good idea
1273 %exit/%quit magics remain. In general, it's probably a good idea
1271 not to delete anything from __builtin__, since we never know what
1274 not to delete anything from __builtin__, since we never know what
1272 that will break. In any case, python now (for 2.5) will support
1275 that will break. In any case, python now (for 2.5) will support
1273 'real' exit/quit, so this issue is moot. Closes #55.
1276 'real' exit/quit, so this issue is moot. Closes #55.
1274
1277
1275 * IPython/genutils.py (with_obj): rename the 'with' function to
1278 * IPython/genutils.py (with_obj): rename the 'with' function to
1276 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1279 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1277 becomes a language keyword. Closes #53.
1280 becomes a language keyword. Closes #53.
1278
1281
1279 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1282 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1280 __file__ attribute to this so it fools more things into thinking
1283 __file__ attribute to this so it fools more things into thinking
1281 it is a real module. Closes #59.
1284 it is a real module. Closes #59.
1282
1285
1283 * IPython/Magic.py (magic_edit): add -n option to open the editor
1286 * IPython/Magic.py (magic_edit): add -n option to open the editor
1284 at a specific line number. After a patch by Stefan van der Walt.
1287 at a specific line number. After a patch by Stefan van der Walt.
1285
1288
1286 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1289 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1287
1290
1288 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1291 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1289 reason the file could not be opened. After automatic crash
1292 reason the file could not be opened. After automatic crash
1290 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1293 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1291 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1294 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1292 (_should_recompile): Don't fire editor if using %bg, since there
1295 (_should_recompile): Don't fire editor if using %bg, since there
1293 is no file in the first place. From the same report as above.
1296 is no file in the first place. From the same report as above.
1294 (raw_input): protect against faulty third-party prefilters. After
1297 (raw_input): protect against faulty third-party prefilters. After
1295 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1298 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1296 while running under SAGE.
1299 while running under SAGE.
1297
1300
1298 2006-05-23 Ville Vainio <vivainio@gmail.com>
1301 2006-05-23 Ville Vainio <vivainio@gmail.com>
1299
1302
1300 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1303 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1301 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1304 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1302 now returns None (again), unless dummy is specifically allowed by
1305 now returns None (again), unless dummy is specifically allowed by
1303 ipapi.get(allow_dummy=True).
1306 ipapi.get(allow_dummy=True).
1304
1307
1305 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1306
1309
1307 * IPython: remove all 2.2-compatibility objects and hacks from
1310 * IPython: remove all 2.2-compatibility objects and hacks from
1308 everywhere, since we only support 2.3 at this point. Docs
1311 everywhere, since we only support 2.3 at this point. Docs
1309 updated.
1312 updated.
1310
1313
1311 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1314 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1312 Anything requiring extra validation can be turned into a Python
1315 Anything requiring extra validation can be turned into a Python
1313 property in the future. I used a property for the db one b/c
1316 property in the future. I used a property for the db one b/c
1314 there was a nasty circularity problem with the initialization
1317 there was a nasty circularity problem with the initialization
1315 order, which right now I don't have time to clean up.
1318 order, which right now I don't have time to clean up.
1316
1319
1317 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1320 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1318 another locking bug reported by Jorgen. I'm not 100% sure though,
1321 another locking bug reported by Jorgen. I'm not 100% sure though,
1319 so more testing is needed...
1322 so more testing is needed...
1320
1323
1321 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1324 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1322
1325
1323 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1326 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1324 local variables from any routine in user code (typically executed
1327 local variables from any routine in user code (typically executed
1325 with %run) directly into the interactive namespace. Very useful
1328 with %run) directly into the interactive namespace. Very useful
1326 when doing complex debugging.
1329 when doing complex debugging.
1327 (IPythonNotRunning): Changed the default None object to a dummy
1330 (IPythonNotRunning): Changed the default None object to a dummy
1328 whose attributes can be queried as well as called without
1331 whose attributes can be queried as well as called without
1329 exploding, to ease writing code which works transparently both in
1332 exploding, to ease writing code which works transparently both in
1330 and out of ipython and uses some of this API.
1333 and out of ipython and uses some of this API.
1331
1334
1332 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1335 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1333
1336
1334 * IPython/hooks.py (result_display): Fix the fact that our display
1337 * IPython/hooks.py (result_display): Fix the fact that our display
1335 hook was using str() instead of repr(), as the default python
1338 hook was using str() instead of repr(), as the default python
1336 console does. This had gone unnoticed b/c it only happened if
1339 console does. This had gone unnoticed b/c it only happened if
1337 %Pprint was off, but the inconsistency was there.
1340 %Pprint was off, but the inconsistency was there.
1338
1341
1339 2006-05-15 Ville Vainio <vivainio@gmail.com>
1342 2006-05-15 Ville Vainio <vivainio@gmail.com>
1340
1343
1341 * Oinspect.py: Only show docstring for nonexisting/binary files
1344 * Oinspect.py: Only show docstring for nonexisting/binary files
1342 when doing object??, closing ticket #62
1345 when doing object??, closing ticket #62
1343
1346
1344 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1347 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1345
1348
1346 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1349 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1347 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1350 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1348 was being released in a routine which hadn't checked if it had
1351 was being released in a routine which hadn't checked if it had
1349 been the one to acquire it.
1352 been the one to acquire it.
1350
1353
1351 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1354 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1352
1355
1353 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1356 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1354
1357
1355 2006-04-11 Ville Vainio <vivainio@gmail.com>
1358 2006-04-11 Ville Vainio <vivainio@gmail.com>
1356
1359
1357 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1360 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1358 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1361 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1359 prefilters, allowing stuff like magics and aliases in the file.
1362 prefilters, allowing stuff like magics and aliases in the file.
1360
1363
1361 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1364 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1362 added. Supported now are "%clear in" and "%clear out" (clear input and
1365 added. Supported now are "%clear in" and "%clear out" (clear input and
1363 output history, respectively). Also fixed CachedOutput.flush to
1366 output history, respectively). Also fixed CachedOutput.flush to
1364 properly flush the output cache.
1367 properly flush the output cache.
1365
1368
1366 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1369 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1367 half-success (and fail explicitly).
1370 half-success (and fail explicitly).
1368
1371
1369 2006-03-28 Ville Vainio <vivainio@gmail.com>
1372 2006-03-28 Ville Vainio <vivainio@gmail.com>
1370
1373
1371 * iplib.py: Fix quoting of aliases so that only argless ones
1374 * iplib.py: Fix quoting of aliases so that only argless ones
1372 are quoted
1375 are quoted
1373
1376
1374 2006-03-28 Ville Vainio <vivainio@gmail.com>
1377 2006-03-28 Ville Vainio <vivainio@gmail.com>
1375
1378
1376 * iplib.py: Quote aliases with spaces in the name.
1379 * iplib.py: Quote aliases with spaces in the name.
1377 "c:\program files\blah\bin" is now legal alias target.
1380 "c:\program files\blah\bin" is now legal alias target.
1378
1381
1379 * ext_rehashdir.py: Space no longer allowed as arg
1382 * ext_rehashdir.py: Space no longer allowed as arg
1380 separator, since space is legal in path names.
1383 separator, since space is legal in path names.
1381
1384
1382 2006-03-16 Ville Vainio <vivainio@gmail.com>
1385 2006-03-16 Ville Vainio <vivainio@gmail.com>
1383
1386
1384 * upgrade_dir.py: Take path.py from Extensions, correcting
1387 * upgrade_dir.py: Take path.py from Extensions, correcting
1385 %upgrade magic
1388 %upgrade magic
1386
1389
1387 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1390 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1388
1391
1389 * hooks.py: Only enclose editor binary in quotes if legal and
1392 * hooks.py: Only enclose editor binary in quotes if legal and
1390 necessary (space in the name, and is an existing file). Fixes a bug
1393 necessary (space in the name, and is an existing file). Fixes a bug
1391 reported by Zachary Pincus.
1394 reported by Zachary Pincus.
1392
1395
1393 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1396 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1394
1397
1395 * Manual: thanks to a tip on proper color handling for Emacs, by
1398 * Manual: thanks to a tip on proper color handling for Emacs, by
1396 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1399 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1397
1400
1398 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1401 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1399 by applying the provided patch. Thanks to Liu Jin
1402 by applying the provided patch. Thanks to Liu Jin
1400 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1403 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1401 XEmacs/Linux, I'm trusting the submitter that it actually helps
1404 XEmacs/Linux, I'm trusting the submitter that it actually helps
1402 under win32/GNU Emacs. Will revisit if any problems are reported.
1405 under win32/GNU Emacs. Will revisit if any problems are reported.
1403
1406
1404 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1407 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1405
1408
1406 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1409 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1407 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1410 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1408
1411
1409 2006-03-12 Ville Vainio <vivainio@gmail.com>
1412 2006-03-12 Ville Vainio <vivainio@gmail.com>
1410
1413
1411 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1414 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1412 Torsten Marek.
1415 Torsten Marek.
1413
1416
1414 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1417 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1418
1416 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1419 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1417 line ranges works again.
1420 line ranges works again.
1418
1421
1419 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1422 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1420
1423
1421 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1424 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1422 and friends, after a discussion with Zach Pincus on ipython-user.
1425 and friends, after a discussion with Zach Pincus on ipython-user.
1423 I'm not 100% sure, but after thinking about it quite a bit, it may
1426 I'm not 100% sure, but after thinking about it quite a bit, it may
1424 be OK. Testing with the multithreaded shells didn't reveal any
1427 be OK. Testing with the multithreaded shells didn't reveal any
1425 problems, but let's keep an eye out.
1428 problems, but let's keep an eye out.
1426
1429
1427 In the process, I fixed a few things which were calling
1430 In the process, I fixed a few things which were calling
1428 self.InteractiveTB() directly (like safe_execfile), which is a
1431 self.InteractiveTB() directly (like safe_execfile), which is a
1429 mistake: ALL exception reporting should be done by calling
1432 mistake: ALL exception reporting should be done by calling
1430 self.showtraceback(), which handles state and tab-completion and
1433 self.showtraceback(), which handles state and tab-completion and
1431 more.
1434 more.
1432
1435
1433 2006-03-01 Ville Vainio <vivainio@gmail.com>
1436 2006-03-01 Ville Vainio <vivainio@gmail.com>
1434
1437
1435 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1438 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1436 To use, do "from ipipe import *".
1439 To use, do "from ipipe import *".
1437
1440
1438 2006-02-24 Ville Vainio <vivainio@gmail.com>
1441 2006-02-24 Ville Vainio <vivainio@gmail.com>
1439
1442
1440 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1443 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1441 "cleanly" and safely than the older upgrade mechanism.
1444 "cleanly" and safely than the older upgrade mechanism.
1442
1445
1443 2006-02-21 Ville Vainio <vivainio@gmail.com>
1446 2006-02-21 Ville Vainio <vivainio@gmail.com>
1444
1447
1445 * Magic.py: %save works again.
1448 * Magic.py: %save works again.
1446
1449
1447 2006-02-15 Ville Vainio <vivainio@gmail.com>
1450 2006-02-15 Ville Vainio <vivainio@gmail.com>
1448
1451
1449 * Magic.py: %Pprint works again
1452 * Magic.py: %Pprint works again
1450
1453
1451 * Extensions/ipy_sane_defaults.py: Provide everything provided
1454 * Extensions/ipy_sane_defaults.py: Provide everything provided
1452 in default ipythonrc, to make it possible to have a completely empty
1455 in default ipythonrc, to make it possible to have a completely empty
1453 ipythonrc (and thus completely rc-file free configuration)
1456 ipythonrc (and thus completely rc-file free configuration)
1454
1457
1455 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1458 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1456
1459
1457 * IPython/hooks.py (editor): quote the call to the editor command,
1460 * IPython/hooks.py (editor): quote the call to the editor command,
1458 to allow commands with spaces in them. Problem noted by watching
1461 to allow commands with spaces in them. Problem noted by watching
1459 Ian Oswald's video about textpad under win32 at
1462 Ian Oswald's video about textpad under win32 at
1460 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1463 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1461
1464
1462 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1465 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1463 describing magics (we haven't used @ for a loong time).
1466 describing magics (we haven't used @ for a loong time).
1464
1467
1465 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1468 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1466 contributed by marienz to close
1469 contributed by marienz to close
1467 http://www.scipy.net/roundup/ipython/issue53.
1470 http://www.scipy.net/roundup/ipython/issue53.
1468
1471
1469 2006-02-10 Ville Vainio <vivainio@gmail.com>
1472 2006-02-10 Ville Vainio <vivainio@gmail.com>
1470
1473
1471 * genutils.py: getoutput now works in win32 too
1474 * genutils.py: getoutput now works in win32 too
1472
1475
1473 * completer.py: alias and magic completion only invoked
1476 * completer.py: alias and magic completion only invoked
1474 at the first "item" in the line, to avoid "cd %store"
1477 at the first "item" in the line, to avoid "cd %store"
1475 nonsense.
1478 nonsense.
1476
1479
1477 2006-02-09 Ville Vainio <vivainio@gmail.com>
1480 2006-02-09 Ville Vainio <vivainio@gmail.com>
1478
1481
1479 * test/*: Added a unit testing framework (finally).
1482 * test/*: Added a unit testing framework (finally).
1480 '%run runtests.py' to run test_*.
1483 '%run runtests.py' to run test_*.
1481
1484
1482 * ipapi.py: Exposed runlines and set_custom_exc
1485 * ipapi.py: Exposed runlines and set_custom_exc
1483
1486
1484 2006-02-07 Ville Vainio <vivainio@gmail.com>
1487 2006-02-07 Ville Vainio <vivainio@gmail.com>
1485
1488
1486 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1489 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1487 instead use "f(1 2)" as before.
1490 instead use "f(1 2)" as before.
1488
1491
1489 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1492 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1490
1493
1491 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1494 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1492 facilities, for demos processed by the IPython input filter
1495 facilities, for demos processed by the IPython input filter
1493 (IPythonDemo), and for running a script one-line-at-a-time as a
1496 (IPythonDemo), and for running a script one-line-at-a-time as a
1494 demo, both for pure Python (LineDemo) and for IPython-processed
1497 demo, both for pure Python (LineDemo) and for IPython-processed
1495 input (IPythonLineDemo). After a request by Dave Kohel, from the
1498 input (IPythonLineDemo). After a request by Dave Kohel, from the
1496 SAGE team.
1499 SAGE team.
1497 (Demo.edit): added an edit() method to the demo objects, to edit
1500 (Demo.edit): added an edit() method to the demo objects, to edit
1498 the in-memory copy of the last executed block.
1501 the in-memory copy of the last executed block.
1499
1502
1500 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1503 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1501 processing to %edit, %macro and %save. These commands can now be
1504 processing to %edit, %macro and %save. These commands can now be
1502 invoked on the unprocessed input as it was typed by the user
1505 invoked on the unprocessed input as it was typed by the user
1503 (without any prefilters applied). After requests by the SAGE team
1506 (without any prefilters applied). After requests by the SAGE team
1504 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1507 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1505
1508
1506 2006-02-01 Ville Vainio <vivainio@gmail.com>
1509 2006-02-01 Ville Vainio <vivainio@gmail.com>
1507
1510
1508 * setup.py, eggsetup.py: easy_install ipython==dev works
1511 * setup.py, eggsetup.py: easy_install ipython==dev works
1509 correctly now (on Linux)
1512 correctly now (on Linux)
1510
1513
1511 * ipy_user_conf,ipmaker: user config changes, removed spurious
1514 * ipy_user_conf,ipmaker: user config changes, removed spurious
1512 warnings
1515 warnings
1513
1516
1514 * iplib: if rc.banner is string, use it as is.
1517 * iplib: if rc.banner is string, use it as is.
1515
1518
1516 * Magic: %pycat accepts a string argument and pages it's contents.
1519 * Magic: %pycat accepts a string argument and pages it's contents.
1517
1520
1518
1521
1519 2006-01-30 Ville Vainio <vivainio@gmail.com>
1522 2006-01-30 Ville Vainio <vivainio@gmail.com>
1520
1523
1521 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1524 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1522 Now %store and bookmarks work through PickleShare, meaning that
1525 Now %store and bookmarks work through PickleShare, meaning that
1523 concurrent access is possible and all ipython sessions see the
1526 concurrent access is possible and all ipython sessions see the
1524 same database situation all the time, instead of snapshot of
1527 same database situation all the time, instead of snapshot of
1525 the situation when the session was started. Hence, %bookmark
1528 the situation when the session was started. Hence, %bookmark
1526 results are immediately accessible from othes sessions. The database
1529 results are immediately accessible from othes sessions. The database
1527 is also available for use by user extensions. See:
1530 is also available for use by user extensions. See:
1528 http://www.python.org/pypi/pickleshare
1531 http://www.python.org/pypi/pickleshare
1529
1532
1530 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1533 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1531
1534
1532 * aliases can now be %store'd
1535 * aliases can now be %store'd
1533
1536
1534 * path.py moved to Extensions so that pickleshare does not need
1537 * path.py moved to Extensions so that pickleshare does not need
1535 IPython-specific import. Extensions added to pythonpath right
1538 IPython-specific import. Extensions added to pythonpath right
1536 at __init__.
1539 at __init__.
1537
1540
1538 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1541 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1539 called with _ip.system and the pre-transformed command string.
1542 called with _ip.system and the pre-transformed command string.
1540
1543
1541 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1544 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1542
1545
1543 * IPython/iplib.py (interact): Fix that we were not catching
1546 * IPython/iplib.py (interact): Fix that we were not catching
1544 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1547 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1545 logic here had to change, but it's fixed now.
1548 logic here had to change, but it's fixed now.
1546
1549
1547 2006-01-29 Ville Vainio <vivainio@gmail.com>
1550 2006-01-29 Ville Vainio <vivainio@gmail.com>
1548
1551
1549 * iplib.py: Try to import pyreadline on Windows.
1552 * iplib.py: Try to import pyreadline on Windows.
1550
1553
1551 2006-01-27 Ville Vainio <vivainio@gmail.com>
1554 2006-01-27 Ville Vainio <vivainio@gmail.com>
1552
1555
1553 * iplib.py: Expose ipapi as _ip in builtin namespace.
1556 * iplib.py: Expose ipapi as _ip in builtin namespace.
1554 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1557 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1555 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1558 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1556 syntax now produce _ip.* variant of the commands.
1559 syntax now produce _ip.* variant of the commands.
1557
1560
1558 * "_ip.options().autoedit_syntax = 2" automatically throws
1561 * "_ip.options().autoedit_syntax = 2" automatically throws
1559 user to editor for syntax error correction without prompting.
1562 user to editor for syntax error correction without prompting.
1560
1563
1561 2006-01-27 Ville Vainio <vivainio@gmail.com>
1564 2006-01-27 Ville Vainio <vivainio@gmail.com>
1562
1565
1563 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1566 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1564 'ipython' at argv[0]) executed through command line.
1567 'ipython' at argv[0]) executed through command line.
1565 NOTE: this DEPRECATES calling ipython with multiple scripts
1568 NOTE: this DEPRECATES calling ipython with multiple scripts
1566 ("ipython a.py b.py c.py")
1569 ("ipython a.py b.py c.py")
1567
1570
1568 * iplib.py, hooks.py: Added configurable input prefilter,
1571 * iplib.py, hooks.py: Added configurable input prefilter,
1569 named 'input_prefilter'. See ext_rescapture.py for example
1572 named 'input_prefilter'. See ext_rescapture.py for example
1570 usage.
1573 usage.
1571
1574
1572 * ext_rescapture.py, Magic.py: Better system command output capture
1575 * ext_rescapture.py, Magic.py: Better system command output capture
1573 through 'var = !ls' (deprecates user-visible %sc). Same notation
1576 through 'var = !ls' (deprecates user-visible %sc). Same notation
1574 applies for magics, 'var = %alias' assigns alias list to var.
1577 applies for magics, 'var = %alias' assigns alias list to var.
1575
1578
1576 * ipapi.py: added meta() for accessing extension-usable data store.
1579 * ipapi.py: added meta() for accessing extension-usable data store.
1577
1580
1578 * iplib.py: added InteractiveShell.getapi(). New magics should be
1581 * iplib.py: added InteractiveShell.getapi(). New magics should be
1579 written doing self.getapi() instead of using the shell directly.
1582 written doing self.getapi() instead of using the shell directly.
1580
1583
1581 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1584 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1582 %store foo >> ~/myfoo.txt to store variables to files (in clean
1585 %store foo >> ~/myfoo.txt to store variables to files (in clean
1583 textual form, not a restorable pickle).
1586 textual form, not a restorable pickle).
1584
1587
1585 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1588 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1586
1589
1587 * usage.py, Magic.py: added %quickref
1590 * usage.py, Magic.py: added %quickref
1588
1591
1589 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1592 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1590
1593
1591 * GetoptErrors when invoking magics etc. with wrong args
1594 * GetoptErrors when invoking magics etc. with wrong args
1592 are now more helpful:
1595 are now more helpful:
1593 GetoptError: option -l not recognized (allowed: "qb" )
1596 GetoptError: option -l not recognized (allowed: "qb" )
1594
1597
1595 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1598 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1596
1599
1597 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1600 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1598 computationally intensive blocks don't appear to stall the demo.
1601 computationally intensive blocks don't appear to stall the demo.
1599
1602
1600 2006-01-24 Ville Vainio <vivainio@gmail.com>
1603 2006-01-24 Ville Vainio <vivainio@gmail.com>
1601
1604
1602 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1605 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1603 value to manipulate resulting history entry.
1606 value to manipulate resulting history entry.
1604
1607
1605 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1608 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1606 to instance methods of IPApi class, to make extending an embedded
1609 to instance methods of IPApi class, to make extending an embedded
1607 IPython feasible. See ext_rehashdir.py for example usage.
1610 IPython feasible. See ext_rehashdir.py for example usage.
1608
1611
1609 * Merged 1071-1076 from branches/0.7.1
1612 * Merged 1071-1076 from branches/0.7.1
1610
1613
1611
1614
1612 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1615 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1613
1616
1614 * tools/release (daystamp): Fix build tools to use the new
1617 * tools/release (daystamp): Fix build tools to use the new
1615 eggsetup.py script to build lightweight eggs.
1618 eggsetup.py script to build lightweight eggs.
1616
1619
1617 * Applied changesets 1062 and 1064 before 0.7.1 release.
1620 * Applied changesets 1062 and 1064 before 0.7.1 release.
1618
1621
1619 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1622 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1620 see the raw input history (without conversions like %ls ->
1623 see the raw input history (without conversions like %ls ->
1621 ipmagic("ls")). After a request from W. Stein, SAGE
1624 ipmagic("ls")). After a request from W. Stein, SAGE
1622 (http://modular.ucsd.edu/sage) developer. This information is
1625 (http://modular.ucsd.edu/sage) developer. This information is
1623 stored in the input_hist_raw attribute of the IPython instance, so
1626 stored in the input_hist_raw attribute of the IPython instance, so
1624 developers can access it if needed (it's an InputList instance).
1627 developers can access it if needed (it's an InputList instance).
1625
1628
1626 * Versionstring = 0.7.2.svn
1629 * Versionstring = 0.7.2.svn
1627
1630
1628 * eggsetup.py: A separate script for constructing eggs, creates
1631 * eggsetup.py: A separate script for constructing eggs, creates
1629 proper launch scripts even on Windows (an .exe file in
1632 proper launch scripts even on Windows (an .exe file in
1630 \python24\scripts).
1633 \python24\scripts).
1631
1634
1632 * ipapi.py: launch_new_instance, launch entry point needed for the
1635 * ipapi.py: launch_new_instance, launch entry point needed for the
1633 egg.
1636 egg.
1634
1637
1635 2006-01-23 Ville Vainio <vivainio@gmail.com>
1638 2006-01-23 Ville Vainio <vivainio@gmail.com>
1636
1639
1637 * Added %cpaste magic for pasting python code
1640 * Added %cpaste magic for pasting python code
1638
1641
1639 2006-01-22 Ville Vainio <vivainio@gmail.com>
1642 2006-01-22 Ville Vainio <vivainio@gmail.com>
1640
1643
1641 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1644 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1642
1645
1643 * Versionstring = 0.7.2.svn
1646 * Versionstring = 0.7.2.svn
1644
1647
1645 * eggsetup.py: A separate script for constructing eggs, creates
1648 * eggsetup.py: A separate script for constructing eggs, creates
1646 proper launch scripts even on Windows (an .exe file in
1649 proper launch scripts even on Windows (an .exe file in
1647 \python24\scripts).
1650 \python24\scripts).
1648
1651
1649 * ipapi.py: launch_new_instance, launch entry point needed for the
1652 * ipapi.py: launch_new_instance, launch entry point needed for the
1650 egg.
1653 egg.
1651
1654
1652 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1655 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1653
1656
1654 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1657 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1655 %pfile foo would print the file for foo even if it was a binary.
1658 %pfile foo would print the file for foo even if it was a binary.
1656 Now, extensions '.so' and '.dll' are skipped.
1659 Now, extensions '.so' and '.dll' are skipped.
1657
1660
1658 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1661 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1659 bug, where macros would fail in all threaded modes. I'm not 100%
1662 bug, where macros would fail in all threaded modes. I'm not 100%
1660 sure, so I'm going to put out an rc instead of making a release
1663 sure, so I'm going to put out an rc instead of making a release
1661 today, and wait for feedback for at least a few days.
1664 today, and wait for feedback for at least a few days.
1662
1665
1663 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1666 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1664 it...) the handling of pasting external code with autoindent on.
1667 it...) the handling of pasting external code with autoindent on.
1665 To get out of a multiline input, the rule will appear for most
1668 To get out of a multiline input, the rule will appear for most
1666 users unchanged: two blank lines or change the indent level
1669 users unchanged: two blank lines or change the indent level
1667 proposed by IPython. But there is a twist now: you can
1670 proposed by IPython. But there is a twist now: you can
1668 add/subtract only *one or two spaces*. If you add/subtract three
1671 add/subtract only *one or two spaces*. If you add/subtract three
1669 or more (unless you completely delete the line), IPython will
1672 or more (unless you completely delete the line), IPython will
1670 accept that line, and you'll need to enter a second one of pure
1673 accept that line, and you'll need to enter a second one of pure
1671 whitespace. I know it sounds complicated, but I can't find a
1674 whitespace. I know it sounds complicated, but I can't find a
1672 different solution that covers all the cases, with the right
1675 different solution that covers all the cases, with the right
1673 heuristics. Hopefully in actual use, nobody will really notice
1676 heuristics. Hopefully in actual use, nobody will really notice
1674 all these strange rules and things will 'just work'.
1677 all these strange rules and things will 'just work'.
1675
1678
1676 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1679 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1677
1680
1678 * IPython/iplib.py (interact): catch exceptions which can be
1681 * IPython/iplib.py (interact): catch exceptions which can be
1679 triggered asynchronously by signal handlers. Thanks to an
1682 triggered asynchronously by signal handlers. Thanks to an
1680 automatic crash report, submitted by Colin Kingsley
1683 automatic crash report, submitted by Colin Kingsley
1681 <tercel-AT-gentoo.org>.
1684 <tercel-AT-gentoo.org>.
1682
1685
1683 2006-01-20 Ville Vainio <vivainio@gmail.com>
1686 2006-01-20 Ville Vainio <vivainio@gmail.com>
1684
1687
1685 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1688 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1686 (%rehashdir, very useful, try it out) of how to extend ipython
1689 (%rehashdir, very useful, try it out) of how to extend ipython
1687 with new magics. Also added Extensions dir to pythonpath to make
1690 with new magics. Also added Extensions dir to pythonpath to make
1688 importing extensions easy.
1691 importing extensions easy.
1689
1692
1690 * %store now complains when trying to store interactively declared
1693 * %store now complains when trying to store interactively declared
1691 classes / instances of those classes.
1694 classes / instances of those classes.
1692
1695
1693 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1696 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1694 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1697 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1695 if they exist, and ipy_user_conf.py with some defaults is created for
1698 if they exist, and ipy_user_conf.py with some defaults is created for
1696 the user.
1699 the user.
1697
1700
1698 * Startup rehashing done by the config file, not InterpreterExec.
1701 * Startup rehashing done by the config file, not InterpreterExec.
1699 This means system commands are available even without selecting the
1702 This means system commands are available even without selecting the
1700 pysh profile. It's the sensible default after all.
1703 pysh profile. It's the sensible default after all.
1701
1704
1702 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1705 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1703
1706
1704 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1707 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1705 multiline code with autoindent on working. But I am really not
1708 multiline code with autoindent on working. But I am really not
1706 sure, so this needs more testing. Will commit a debug-enabled
1709 sure, so this needs more testing. Will commit a debug-enabled
1707 version for now, while I test it some more, so that Ville and
1710 version for now, while I test it some more, so that Ville and
1708 others may also catch any problems. Also made
1711 others may also catch any problems. Also made
1709 self.indent_current_str() a method, to ensure that there's no
1712 self.indent_current_str() a method, to ensure that there's no
1710 chance of the indent space count and the corresponding string
1713 chance of the indent space count and the corresponding string
1711 falling out of sync. All code needing the string should just call
1714 falling out of sync. All code needing the string should just call
1712 the method.
1715 the method.
1713
1716
1714 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1717 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1715
1718
1716 * IPython/Magic.py (magic_edit): fix check for when users don't
1719 * IPython/Magic.py (magic_edit): fix check for when users don't
1717 save their output files, the try/except was in the wrong section.
1720 save their output files, the try/except was in the wrong section.
1718
1721
1719 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1722 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1720
1723
1721 * IPython/Magic.py (magic_run): fix __file__ global missing from
1724 * IPython/Magic.py (magic_run): fix __file__ global missing from
1722 script's namespace when executed via %run. After a report by
1725 script's namespace when executed via %run. After a report by
1723 Vivian.
1726 Vivian.
1724
1727
1725 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1728 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1726 when using python 2.4. The parent constructor changed in 2.4, and
1729 when using python 2.4. The parent constructor changed in 2.4, and
1727 we need to track it directly (we can't call it, as it messes up
1730 we need to track it directly (we can't call it, as it messes up
1728 readline and tab-completion inside our pdb would stop working).
1731 readline and tab-completion inside our pdb would stop working).
1729 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1732 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1730
1733
1731 2006-01-16 Ville Vainio <vivainio@gmail.com>
1734 2006-01-16 Ville Vainio <vivainio@gmail.com>
1732
1735
1733 * Ipython/magic.py: Reverted back to old %edit functionality
1736 * Ipython/magic.py: Reverted back to old %edit functionality
1734 that returns file contents on exit.
1737 that returns file contents on exit.
1735
1738
1736 * IPython/path.py: Added Jason Orendorff's "path" module to
1739 * IPython/path.py: Added Jason Orendorff's "path" module to
1737 IPython tree, http://www.jorendorff.com/articles/python/path/.
1740 IPython tree, http://www.jorendorff.com/articles/python/path/.
1738 You can get path objects conveniently through %sc, and !!, e.g.:
1741 You can get path objects conveniently through %sc, and !!, e.g.:
1739 sc files=ls
1742 sc files=ls
1740 for p in files.paths: # or files.p
1743 for p in files.paths: # or files.p
1741 print p,p.mtime
1744 print p,p.mtime
1742
1745
1743 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1746 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1744 now work again without considering the exclusion regexp -
1747 now work again without considering the exclusion regexp -
1745 hence, things like ',foo my/path' turn to 'foo("my/path")'
1748 hence, things like ',foo my/path' turn to 'foo("my/path")'
1746 instead of syntax error.
1749 instead of syntax error.
1747
1750
1748
1751
1749 2006-01-14 Ville Vainio <vivainio@gmail.com>
1752 2006-01-14 Ville Vainio <vivainio@gmail.com>
1750
1753
1751 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1754 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1752 ipapi decorators for python 2.4 users, options() provides access to rc
1755 ipapi decorators for python 2.4 users, options() provides access to rc
1753 data.
1756 data.
1754
1757
1755 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1758 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1756 as path separators (even on Linux ;-). Space character after
1759 as path separators (even on Linux ;-). Space character after
1757 backslash (as yielded by tab completer) is still space;
1760 backslash (as yielded by tab completer) is still space;
1758 "%cd long\ name" works as expected.
1761 "%cd long\ name" works as expected.
1759
1762
1760 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1763 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1761 as "chain of command", with priority. API stays the same,
1764 as "chain of command", with priority. API stays the same,
1762 TryNext exception raised by a hook function signals that
1765 TryNext exception raised by a hook function signals that
1763 current hook failed and next hook should try handling it, as
1766 current hook failed and next hook should try handling it, as
1764 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1767 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1765 requested configurable display hook, which is now implemented.
1768 requested configurable display hook, which is now implemented.
1766
1769
1767 2006-01-13 Ville Vainio <vivainio@gmail.com>
1770 2006-01-13 Ville Vainio <vivainio@gmail.com>
1768
1771
1769 * IPython/platutils*.py: platform specific utility functions,
1772 * IPython/platutils*.py: platform specific utility functions,
1770 so far only set_term_title is implemented (change terminal
1773 so far only set_term_title is implemented (change terminal
1771 label in windowing systems). %cd now changes the title to
1774 label in windowing systems). %cd now changes the title to
1772 current dir.
1775 current dir.
1773
1776
1774 * IPython/Release.py: Added myself to "authors" list,
1777 * IPython/Release.py: Added myself to "authors" list,
1775 had to create new files.
1778 had to create new files.
1776
1779
1777 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1780 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1778 shell escape; not a known bug but had potential to be one in the
1781 shell escape; not a known bug but had potential to be one in the
1779 future.
1782 future.
1780
1783
1781 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1784 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1782 extension API for IPython! See the module for usage example. Fix
1785 extension API for IPython! See the module for usage example. Fix
1783 OInspect for docstring-less magic functions.
1786 OInspect for docstring-less magic functions.
1784
1787
1785
1788
1786 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1789 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1787
1790
1788 * IPython/iplib.py (raw_input): temporarily deactivate all
1791 * IPython/iplib.py (raw_input): temporarily deactivate all
1789 attempts at allowing pasting of code with autoindent on. It
1792 attempts at allowing pasting of code with autoindent on. It
1790 introduced bugs (reported by Prabhu) and I can't seem to find a
1793 introduced bugs (reported by Prabhu) and I can't seem to find a
1791 robust combination which works in all cases. Will have to revisit
1794 robust combination which works in all cases. Will have to revisit
1792 later.
1795 later.
1793
1796
1794 * IPython/genutils.py: remove isspace() function. We've dropped
1797 * IPython/genutils.py: remove isspace() function. We've dropped
1795 2.2 compatibility, so it's OK to use the string method.
1798 2.2 compatibility, so it's OK to use the string method.
1796
1799
1797 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1800 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1798
1801
1799 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1802 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1800 matching what NOT to autocall on, to include all python binary
1803 matching what NOT to autocall on, to include all python binary
1801 operators (including things like 'and', 'or', 'is' and 'in').
1804 operators (including things like 'and', 'or', 'is' and 'in').
1802 Prompted by a bug report on 'foo & bar', but I realized we had
1805 Prompted by a bug report on 'foo & bar', but I realized we had
1803 many more potential bug cases with other operators. The regexp is
1806 many more potential bug cases with other operators. The regexp is
1804 self.re_exclude_auto, it's fairly commented.
1807 self.re_exclude_auto, it's fairly commented.
1805
1808
1806 2006-01-12 Ville Vainio <vivainio@gmail.com>
1809 2006-01-12 Ville Vainio <vivainio@gmail.com>
1807
1810
1808 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1811 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1809 Prettified and hardened string/backslash quoting with ipsystem(),
1812 Prettified and hardened string/backslash quoting with ipsystem(),
1810 ipalias() and ipmagic(). Now even \ characters are passed to
1813 ipalias() and ipmagic(). Now even \ characters are passed to
1811 %magics, !shell escapes and aliases exactly as they are in the
1814 %magics, !shell escapes and aliases exactly as they are in the
1812 ipython command line. Should improve backslash experience,
1815 ipython command line. Should improve backslash experience,
1813 particularly in Windows (path delimiter for some commands that
1816 particularly in Windows (path delimiter for some commands that
1814 won't understand '/'), but Unix benefits as well (regexps). %cd
1817 won't understand '/'), but Unix benefits as well (regexps). %cd
1815 magic still doesn't support backslash path delimiters, though. Also
1818 magic still doesn't support backslash path delimiters, though. Also
1816 deleted all pretense of supporting multiline command strings in
1819 deleted all pretense of supporting multiline command strings in
1817 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1820 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1818
1821
1819 * doc/build_doc_instructions.txt added. Documentation on how to
1822 * doc/build_doc_instructions.txt added. Documentation on how to
1820 use doc/update_manual.py, added yesterday. Both files contributed
1823 use doc/update_manual.py, added yesterday. Both files contributed
1821 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1824 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1822 doc/*.sh for deprecation at a later date.
1825 doc/*.sh for deprecation at a later date.
1823
1826
1824 * /ipython.py Added ipython.py to root directory for
1827 * /ipython.py Added ipython.py to root directory for
1825 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1828 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1826 ipython.py) and development convenience (no need to keep doing
1829 ipython.py) and development convenience (no need to keep doing
1827 "setup.py install" between changes).
1830 "setup.py install" between changes).
1828
1831
1829 * Made ! and !! shell escapes work (again) in multiline expressions:
1832 * Made ! and !! shell escapes work (again) in multiline expressions:
1830 if 1:
1833 if 1:
1831 !ls
1834 !ls
1832 !!ls
1835 !!ls
1833
1836
1834 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1837 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1835
1838
1836 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1839 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1837 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1840 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1838 module in case-insensitive installation. Was causing crashes
1841 module in case-insensitive installation. Was causing crashes
1839 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1842 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1840
1843
1841 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1844 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1842 <marienz-AT-gentoo.org>, closes
1845 <marienz-AT-gentoo.org>, closes
1843 http://www.scipy.net/roundup/ipython/issue51.
1846 http://www.scipy.net/roundup/ipython/issue51.
1844
1847
1845 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1848 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1846
1849
1847 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1850 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1848 problem of excessive CPU usage under *nix and keyboard lag under
1851 problem of excessive CPU usage under *nix and keyboard lag under
1849 win32.
1852 win32.
1850
1853
1851 2006-01-10 *** Released version 0.7.0
1854 2006-01-10 *** Released version 0.7.0
1852
1855
1853 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1856 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1854
1857
1855 * IPython/Release.py (revision): tag version number to 0.7.0,
1858 * IPython/Release.py (revision): tag version number to 0.7.0,
1856 ready for release.
1859 ready for release.
1857
1860
1858 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1861 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1859 it informs the user of the name of the temp. file used. This can
1862 it informs the user of the name of the temp. file used. This can
1860 help if you decide later to reuse that same file, so you know
1863 help if you decide later to reuse that same file, so you know
1861 where to copy the info from.
1864 where to copy the info from.
1862
1865
1863 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1866 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1864
1867
1865 * setup_bdist_egg.py: little script to build an egg. Added
1868 * setup_bdist_egg.py: little script to build an egg. Added
1866 support in the release tools as well.
1869 support in the release tools as well.
1867
1870
1868 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1871 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1869
1872
1870 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1873 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1871 version selection (new -wxversion command line and ipythonrc
1874 version selection (new -wxversion command line and ipythonrc
1872 parameter). Patch contributed by Arnd Baecker
1875 parameter). Patch contributed by Arnd Baecker
1873 <arnd.baecker-AT-web.de>.
1876 <arnd.baecker-AT-web.de>.
1874
1877
1875 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1878 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1876 embedded instances, for variables defined at the interactive
1879 embedded instances, for variables defined at the interactive
1877 prompt of the embedded ipython. Reported by Arnd.
1880 prompt of the embedded ipython. Reported by Arnd.
1878
1881
1879 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1882 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1880 it can be used as a (stateful) toggle, or with a direct parameter.
1883 it can be used as a (stateful) toggle, or with a direct parameter.
1881
1884
1882 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1885 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1883 could be triggered in certain cases and cause the traceback
1886 could be triggered in certain cases and cause the traceback
1884 printer not to work.
1887 printer not to work.
1885
1888
1886 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1889 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1887
1890
1888 * IPython/iplib.py (_should_recompile): Small fix, closes
1891 * IPython/iplib.py (_should_recompile): Small fix, closes
1889 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1892 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1890
1893
1891 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1894 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1892
1895
1893 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1896 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1894 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1897 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1895 Moad for help with tracking it down.
1898 Moad for help with tracking it down.
1896
1899
1897 * IPython/iplib.py (handle_auto): fix autocall handling for
1900 * IPython/iplib.py (handle_auto): fix autocall handling for
1898 objects which support BOTH __getitem__ and __call__ (so that f [x]
1901 objects which support BOTH __getitem__ and __call__ (so that f [x]
1899 is left alone, instead of becoming f([x]) automatically).
1902 is left alone, instead of becoming f([x]) automatically).
1900
1903
1901 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1904 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1902 Ville's patch.
1905 Ville's patch.
1903
1906
1904 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1907 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1905
1908
1906 * IPython/iplib.py (handle_auto): changed autocall semantics to
1909 * IPython/iplib.py (handle_auto): changed autocall semantics to
1907 include 'smart' mode, where the autocall transformation is NOT
1910 include 'smart' mode, where the autocall transformation is NOT
1908 applied if there are no arguments on the line. This allows you to
1911 applied if there are no arguments on the line. This allows you to
1909 just type 'foo' if foo is a callable to see its internal form,
1912 just type 'foo' if foo is a callable to see its internal form,
1910 instead of having it called with no arguments (typically a
1913 instead of having it called with no arguments (typically a
1911 mistake). The old 'full' autocall still exists: for that, you
1914 mistake). The old 'full' autocall still exists: for that, you
1912 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1915 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1913
1916
1914 * IPython/completer.py (Completer.attr_matches): add
1917 * IPython/completer.py (Completer.attr_matches): add
1915 tab-completion support for Enthoughts' traits. After a report by
1918 tab-completion support for Enthoughts' traits. After a report by
1916 Arnd and a patch by Prabhu.
1919 Arnd and a patch by Prabhu.
1917
1920
1918 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1921 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1919
1922
1920 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1923 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1921 Schmolck's patch to fix inspect.getinnerframes().
1924 Schmolck's patch to fix inspect.getinnerframes().
1922
1925
1923 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1926 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1924 for embedded instances, regarding handling of namespaces and items
1927 for embedded instances, regarding handling of namespaces and items
1925 added to the __builtin__ one. Multiple embedded instances and
1928 added to the __builtin__ one. Multiple embedded instances and
1926 recursive embeddings should work better now (though I'm not sure
1929 recursive embeddings should work better now (though I'm not sure
1927 I've got all the corner cases fixed, that code is a bit of a brain
1930 I've got all the corner cases fixed, that code is a bit of a brain
1928 twister).
1931 twister).
1929
1932
1930 * IPython/Magic.py (magic_edit): added support to edit in-memory
1933 * IPython/Magic.py (magic_edit): added support to edit in-memory
1931 macros (automatically creates the necessary temp files). %edit
1934 macros (automatically creates the necessary temp files). %edit
1932 also doesn't return the file contents anymore, it's just noise.
1935 also doesn't return the file contents anymore, it's just noise.
1933
1936
1934 * IPython/completer.py (Completer.attr_matches): revert change to
1937 * IPython/completer.py (Completer.attr_matches): revert change to
1935 complete only on attributes listed in __all__. I realized it
1938 complete only on attributes listed in __all__. I realized it
1936 cripples the tab-completion system as a tool for exploring the
1939 cripples the tab-completion system as a tool for exploring the
1937 internals of unknown libraries (it renders any non-__all__
1940 internals of unknown libraries (it renders any non-__all__
1938 attribute off-limits). I got bit by this when trying to see
1941 attribute off-limits). I got bit by this when trying to see
1939 something inside the dis module.
1942 something inside the dis module.
1940
1943
1941 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1944 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1942
1945
1943 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1946 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1944 namespace for users and extension writers to hold data in. This
1947 namespace for users and extension writers to hold data in. This
1945 follows the discussion in
1948 follows the discussion in
1946 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1949 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1947
1950
1948 * IPython/completer.py (IPCompleter.complete): small patch to help
1951 * IPython/completer.py (IPCompleter.complete): small patch to help
1949 tab-completion under Emacs, after a suggestion by John Barnard
1952 tab-completion under Emacs, after a suggestion by John Barnard
1950 <barnarj-AT-ccf.org>.
1953 <barnarj-AT-ccf.org>.
1951
1954
1952 * IPython/Magic.py (Magic.extract_input_slices): added support for
1955 * IPython/Magic.py (Magic.extract_input_slices): added support for
1953 the slice notation in magics to use N-M to represent numbers N...M
1956 the slice notation in magics to use N-M to represent numbers N...M
1954 (closed endpoints). This is used by %macro and %save.
1957 (closed endpoints). This is used by %macro and %save.
1955
1958
1956 * IPython/completer.py (Completer.attr_matches): for modules which
1959 * IPython/completer.py (Completer.attr_matches): for modules which
1957 define __all__, complete only on those. After a patch by Jeffrey
1960 define __all__, complete only on those. After a patch by Jeffrey
1958 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1961 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1959 speed up this routine.
1962 speed up this routine.
1960
1963
1961 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1964 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1962 don't know if this is the end of it, but the behavior now is
1965 don't know if this is the end of it, but the behavior now is
1963 certainly much more correct. Note that coupled with macros,
1966 certainly much more correct. Note that coupled with macros,
1964 slightly surprising (at first) behavior may occur: a macro will in
1967 slightly surprising (at first) behavior may occur: a macro will in
1965 general expand to multiple lines of input, so upon exiting, the
1968 general expand to multiple lines of input, so upon exiting, the
1966 in/out counters will both be bumped by the corresponding amount
1969 in/out counters will both be bumped by the corresponding amount
1967 (as if the macro's contents had been typed interactively). Typing
1970 (as if the macro's contents had been typed interactively). Typing
1968 %hist will reveal the intermediate (silently processed) lines.
1971 %hist will reveal the intermediate (silently processed) lines.
1969
1972
1970 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1973 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1971 pickle to fail (%run was overwriting __main__ and not restoring
1974 pickle to fail (%run was overwriting __main__ and not restoring
1972 it, but pickle relies on __main__ to operate).
1975 it, but pickle relies on __main__ to operate).
1973
1976
1974 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1977 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1975 using properties, but forgot to make the main InteractiveShell
1978 using properties, but forgot to make the main InteractiveShell
1976 class a new-style class. Properties fail silently, and
1979 class a new-style class. Properties fail silently, and
1977 mysteriously, with old-style class (getters work, but
1980 mysteriously, with old-style class (getters work, but
1978 setters don't do anything).
1981 setters don't do anything).
1979
1982
1980 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1983 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1981
1984
1982 * IPython/Magic.py (magic_history): fix history reporting bug (I
1985 * IPython/Magic.py (magic_history): fix history reporting bug (I
1983 know some nasties are still there, I just can't seem to find a
1986 know some nasties are still there, I just can't seem to find a
1984 reproducible test case to track them down; the input history is
1987 reproducible test case to track them down; the input history is
1985 falling out of sync...)
1988 falling out of sync...)
1986
1989
1987 * IPython/iplib.py (handle_shell_escape): fix bug where both
1990 * IPython/iplib.py (handle_shell_escape): fix bug where both
1988 aliases and system accesses where broken for indented code (such
1991 aliases and system accesses where broken for indented code (such
1989 as loops).
1992 as loops).
1990
1993
1991 * IPython/genutils.py (shell): fix small but critical bug for
1994 * IPython/genutils.py (shell): fix small but critical bug for
1992 win32 system access.
1995 win32 system access.
1993
1996
1994 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1997 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1995
1998
1996 * IPython/iplib.py (showtraceback): remove use of the
1999 * IPython/iplib.py (showtraceback): remove use of the
1997 sys.last_{type/value/traceback} structures, which are non
2000 sys.last_{type/value/traceback} structures, which are non
1998 thread-safe.
2001 thread-safe.
1999 (_prefilter): change control flow to ensure that we NEVER
2002 (_prefilter): change control flow to ensure that we NEVER
2000 introspect objects when autocall is off. This will guarantee that
2003 introspect objects when autocall is off. This will guarantee that
2001 having an input line of the form 'x.y', where access to attribute
2004 having an input line of the form 'x.y', where access to attribute
2002 'y' has side effects, doesn't trigger the side effect TWICE. It
2005 'y' has side effects, doesn't trigger the side effect TWICE. It
2003 is important to note that, with autocall on, these side effects
2006 is important to note that, with autocall on, these side effects
2004 can still happen.
2007 can still happen.
2005 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2008 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2006 trio. IPython offers these three kinds of special calls which are
2009 trio. IPython offers these three kinds of special calls which are
2007 not python code, and it's a good thing to have their call method
2010 not python code, and it's a good thing to have their call method
2008 be accessible as pure python functions (not just special syntax at
2011 be accessible as pure python functions (not just special syntax at
2009 the command line). It gives us a better internal implementation
2012 the command line). It gives us a better internal implementation
2010 structure, as well as exposing these for user scripting more
2013 structure, as well as exposing these for user scripting more
2011 cleanly.
2014 cleanly.
2012
2015
2013 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2016 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2014 file. Now that they'll be more likely to be used with the
2017 file. Now that they'll be more likely to be used with the
2015 persistance system (%store), I want to make sure their module path
2018 persistance system (%store), I want to make sure their module path
2016 doesn't change in the future, so that we don't break things for
2019 doesn't change in the future, so that we don't break things for
2017 users' persisted data.
2020 users' persisted data.
2018
2021
2019 * IPython/iplib.py (autoindent_update): move indentation
2022 * IPython/iplib.py (autoindent_update): move indentation
2020 management into the _text_ processing loop, not the keyboard
2023 management into the _text_ processing loop, not the keyboard
2021 interactive one. This is necessary to correctly process non-typed
2024 interactive one. This is necessary to correctly process non-typed
2022 multiline input (such as macros).
2025 multiline input (such as macros).
2023
2026
2024 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2027 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2025 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2028 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2026 which was producing problems in the resulting manual.
2029 which was producing problems in the resulting manual.
2027 (magic_whos): improve reporting of instances (show their class,
2030 (magic_whos): improve reporting of instances (show their class,
2028 instead of simply printing 'instance' which isn't terribly
2031 instead of simply printing 'instance' which isn't terribly
2029 informative).
2032 informative).
2030
2033
2031 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2034 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2032 (minor mods) to support network shares under win32.
2035 (minor mods) to support network shares under win32.
2033
2036
2034 * IPython/winconsole.py (get_console_size): add new winconsole
2037 * IPython/winconsole.py (get_console_size): add new winconsole
2035 module and fixes to page_dumb() to improve its behavior under
2038 module and fixes to page_dumb() to improve its behavior under
2036 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2039 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2037
2040
2038 * IPython/Magic.py (Macro): simplified Macro class to just
2041 * IPython/Magic.py (Macro): simplified Macro class to just
2039 subclass list. We've had only 2.2 compatibility for a very long
2042 subclass list. We've had only 2.2 compatibility for a very long
2040 time, yet I was still avoiding subclassing the builtin types. No
2043 time, yet I was still avoiding subclassing the builtin types. No
2041 more (I'm also starting to use properties, though I won't shift to
2044 more (I'm also starting to use properties, though I won't shift to
2042 2.3-specific features quite yet).
2045 2.3-specific features quite yet).
2043 (magic_store): added Ville's patch for lightweight variable
2046 (magic_store): added Ville's patch for lightweight variable
2044 persistence, after a request on the user list by Matt Wilkie
2047 persistence, after a request on the user list by Matt Wilkie
2045 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2048 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2046 details.
2049 details.
2047
2050
2048 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2051 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2049 changed the default logfile name from 'ipython.log' to
2052 changed the default logfile name from 'ipython.log' to
2050 'ipython_log.py'. These logs are real python files, and now that
2053 'ipython_log.py'. These logs are real python files, and now that
2051 we have much better multiline support, people are more likely to
2054 we have much better multiline support, people are more likely to
2052 want to use them as such. Might as well name them correctly.
2055 want to use them as such. Might as well name them correctly.
2053
2056
2054 * IPython/Magic.py: substantial cleanup. While we can't stop
2057 * IPython/Magic.py: substantial cleanup. While we can't stop
2055 using magics as mixins, due to the existing customizations 'out
2058 using magics as mixins, due to the existing customizations 'out
2056 there' which rely on the mixin naming conventions, at least I
2059 there' which rely on the mixin naming conventions, at least I
2057 cleaned out all cross-class name usage. So once we are OK with
2060 cleaned out all cross-class name usage. So once we are OK with
2058 breaking compatibility, the two systems can be separated.
2061 breaking compatibility, the two systems can be separated.
2059
2062
2060 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2063 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2061 anymore, and the class is a fair bit less hideous as well. New
2064 anymore, and the class is a fair bit less hideous as well. New
2062 features were also introduced: timestamping of input, and logging
2065 features were also introduced: timestamping of input, and logging
2063 of output results. These are user-visible with the -t and -o
2066 of output results. These are user-visible with the -t and -o
2064 options to %logstart. Closes
2067 options to %logstart. Closes
2065 http://www.scipy.net/roundup/ipython/issue11 and a request by
2068 http://www.scipy.net/roundup/ipython/issue11 and a request by
2066 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2069 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2067
2070
2068 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2071 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2069
2072
2070 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2073 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2071 better handle backslashes in paths. See the thread 'More Windows
2074 better handle backslashes in paths. See the thread 'More Windows
2072 questions part 2 - \/ characters revisited' on the iypthon user
2075 questions part 2 - \/ characters revisited' on the iypthon user
2073 list:
2076 list:
2074 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2077 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2075
2078
2076 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2079 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2077
2080
2078 (InteractiveShell.__init__): change threaded shells to not use the
2081 (InteractiveShell.__init__): change threaded shells to not use the
2079 ipython crash handler. This was causing more problems than not,
2082 ipython crash handler. This was causing more problems than not,
2080 as exceptions in the main thread (GUI code, typically) would
2083 as exceptions in the main thread (GUI code, typically) would
2081 always show up as a 'crash', when they really weren't.
2084 always show up as a 'crash', when they really weren't.
2082
2085
2083 The colors and exception mode commands (%colors/%xmode) have been
2086 The colors and exception mode commands (%colors/%xmode) have been
2084 synchronized to also take this into account, so users can get
2087 synchronized to also take this into account, so users can get
2085 verbose exceptions for their threaded code as well. I also added
2088 verbose exceptions for their threaded code as well. I also added
2086 support for activating pdb inside this exception handler as well,
2089 support for activating pdb inside this exception handler as well,
2087 so now GUI authors can use IPython's enhanced pdb at runtime.
2090 so now GUI authors can use IPython's enhanced pdb at runtime.
2088
2091
2089 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2092 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2090 true by default, and add it to the shipped ipythonrc file. Since
2093 true by default, and add it to the shipped ipythonrc file. Since
2091 this asks the user before proceeding, I think it's OK to make it
2094 this asks the user before proceeding, I think it's OK to make it
2092 true by default.
2095 true by default.
2093
2096
2094 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2097 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2095 of the previous special-casing of input in the eval loop. I think
2098 of the previous special-casing of input in the eval loop. I think
2096 this is cleaner, as they really are commands and shouldn't have
2099 this is cleaner, as they really are commands and shouldn't have
2097 a special role in the middle of the core code.
2100 a special role in the middle of the core code.
2098
2101
2099 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2102 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2100
2103
2101 * IPython/iplib.py (edit_syntax_error): added support for
2104 * IPython/iplib.py (edit_syntax_error): added support for
2102 automatically reopening the editor if the file had a syntax error
2105 automatically reopening the editor if the file had a syntax error
2103 in it. Thanks to scottt who provided the patch at:
2106 in it. Thanks to scottt who provided the patch at:
2104 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2107 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2105 version committed).
2108 version committed).
2106
2109
2107 * IPython/iplib.py (handle_normal): add suport for multi-line
2110 * IPython/iplib.py (handle_normal): add suport for multi-line
2108 input with emtpy lines. This fixes
2111 input with emtpy lines. This fixes
2109 http://www.scipy.net/roundup/ipython/issue43 and a similar
2112 http://www.scipy.net/roundup/ipython/issue43 and a similar
2110 discussion on the user list.
2113 discussion on the user list.
2111
2114
2112 WARNING: a behavior change is necessarily introduced to support
2115 WARNING: a behavior change is necessarily introduced to support
2113 blank lines: now a single blank line with whitespace does NOT
2116 blank lines: now a single blank line with whitespace does NOT
2114 break the input loop, which means that when autoindent is on, by
2117 break the input loop, which means that when autoindent is on, by
2115 default hitting return on the next (indented) line does NOT exit.
2118 default hitting return on the next (indented) line does NOT exit.
2116
2119
2117 Instead, to exit a multiline input you can either have:
2120 Instead, to exit a multiline input you can either have:
2118
2121
2119 - TWO whitespace lines (just hit return again), or
2122 - TWO whitespace lines (just hit return again), or
2120 - a single whitespace line of a different length than provided
2123 - a single whitespace line of a different length than provided
2121 by the autoindent (add or remove a space).
2124 by the autoindent (add or remove a space).
2122
2125
2123 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2126 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2124 module to better organize all readline-related functionality.
2127 module to better organize all readline-related functionality.
2125 I've deleted FlexCompleter and put all completion clases here.
2128 I've deleted FlexCompleter and put all completion clases here.
2126
2129
2127 * IPython/iplib.py (raw_input): improve indentation management.
2130 * IPython/iplib.py (raw_input): improve indentation management.
2128 It is now possible to paste indented code with autoindent on, and
2131 It is now possible to paste indented code with autoindent on, and
2129 the code is interpreted correctly (though it still looks bad on
2132 the code is interpreted correctly (though it still looks bad on
2130 screen, due to the line-oriented nature of ipython).
2133 screen, due to the line-oriented nature of ipython).
2131 (MagicCompleter.complete): change behavior so that a TAB key on an
2134 (MagicCompleter.complete): change behavior so that a TAB key on an
2132 otherwise empty line actually inserts a tab, instead of completing
2135 otherwise empty line actually inserts a tab, instead of completing
2133 on the entire global namespace. This makes it easier to use the
2136 on the entire global namespace. This makes it easier to use the
2134 TAB key for indentation. After a request by Hans Meine
2137 TAB key for indentation. After a request by Hans Meine
2135 <hans_meine-AT-gmx.net>
2138 <hans_meine-AT-gmx.net>
2136 (_prefilter): add support so that typing plain 'exit' or 'quit'
2139 (_prefilter): add support so that typing plain 'exit' or 'quit'
2137 does a sensible thing. Originally I tried to deviate as little as
2140 does a sensible thing. Originally I tried to deviate as little as
2138 possible from the default python behavior, but even that one may
2141 possible from the default python behavior, but even that one may
2139 change in this direction (thread on python-dev to that effect).
2142 change in this direction (thread on python-dev to that effect).
2140 Regardless, ipython should do the right thing even if CPython's
2143 Regardless, ipython should do the right thing even if CPython's
2141 '>>>' prompt doesn't.
2144 '>>>' prompt doesn't.
2142 (InteractiveShell): removed subclassing code.InteractiveConsole
2145 (InteractiveShell): removed subclassing code.InteractiveConsole
2143 class. By now we'd overridden just about all of its methods: I've
2146 class. By now we'd overridden just about all of its methods: I've
2144 copied the remaining two over, and now ipython is a standalone
2147 copied the remaining two over, and now ipython is a standalone
2145 class. This will provide a clearer picture for the chainsaw
2148 class. This will provide a clearer picture for the chainsaw
2146 branch refactoring.
2149 branch refactoring.
2147
2150
2148 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2151 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2149
2152
2150 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2153 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2151 failures for objects which break when dir() is called on them.
2154 failures for objects which break when dir() is called on them.
2152
2155
2153 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2156 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2154 distinct local and global namespaces in the completer API. This
2157 distinct local and global namespaces in the completer API. This
2155 change allows us to properly handle completion with distinct
2158 change allows us to properly handle completion with distinct
2156 scopes, including in embedded instances (this had never really
2159 scopes, including in embedded instances (this had never really
2157 worked correctly).
2160 worked correctly).
2158
2161
2159 Note: this introduces a change in the constructor for
2162 Note: this introduces a change in the constructor for
2160 MagicCompleter, as a new global_namespace parameter is now the
2163 MagicCompleter, as a new global_namespace parameter is now the
2161 second argument (the others were bumped one position).
2164 second argument (the others were bumped one position).
2162
2165
2163 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2166 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2167
2165 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2168 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2166 embedded instances (which can be done now thanks to Vivian's
2169 embedded instances (which can be done now thanks to Vivian's
2167 frame-handling fixes for pdb).
2170 frame-handling fixes for pdb).
2168 (InteractiveShell.__init__): Fix namespace handling problem in
2171 (InteractiveShell.__init__): Fix namespace handling problem in
2169 embedded instances. We were overwriting __main__ unconditionally,
2172 embedded instances. We were overwriting __main__ unconditionally,
2170 and this should only be done for 'full' (non-embedded) IPython;
2173 and this should only be done for 'full' (non-embedded) IPython;
2171 embedded instances must respect the caller's __main__. Thanks to
2174 embedded instances must respect the caller's __main__. Thanks to
2172 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2175 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2173
2176
2174 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2177 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2175
2178
2176 * setup.py: added download_url to setup(). This registers the
2179 * setup.py: added download_url to setup(). This registers the
2177 download address at PyPI, which is not only useful to humans
2180 download address at PyPI, which is not only useful to humans
2178 browsing the site, but is also picked up by setuptools (the Eggs
2181 browsing the site, but is also picked up by setuptools (the Eggs
2179 machinery). Thanks to Ville and R. Kern for the info/discussion
2182 machinery). Thanks to Ville and R. Kern for the info/discussion
2180 on this.
2183 on this.
2181
2184
2182 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2185 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2183
2186
2184 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2187 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2185 This brings a lot of nice functionality to the pdb mode, which now
2188 This brings a lot of nice functionality to the pdb mode, which now
2186 has tab-completion, syntax highlighting, and better stack handling
2189 has tab-completion, syntax highlighting, and better stack handling
2187 than before. Many thanks to Vivian De Smedt
2190 than before. Many thanks to Vivian De Smedt
2188 <vivian-AT-vdesmedt.com> for the original patches.
2191 <vivian-AT-vdesmedt.com> for the original patches.
2189
2192
2190 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2193 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2191
2194
2192 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2195 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2193 sequence to consistently accept the banner argument. The
2196 sequence to consistently accept the banner argument. The
2194 inconsistency was tripping SAGE, thanks to Gary Zablackis
2197 inconsistency was tripping SAGE, thanks to Gary Zablackis
2195 <gzabl-AT-yahoo.com> for the report.
2198 <gzabl-AT-yahoo.com> for the report.
2196
2199
2197 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2200 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2198
2201
2199 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2202 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2200 Fix bug where a naked 'alias' call in the ipythonrc file would
2203 Fix bug where a naked 'alias' call in the ipythonrc file would
2201 cause a crash. Bug reported by Jorgen Stenarson.
2204 cause a crash. Bug reported by Jorgen Stenarson.
2202
2205
2203 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2206 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2204
2207
2205 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2208 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2206 startup time.
2209 startup time.
2207
2210
2208 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2211 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2209 instances had introduced a bug with globals in normal code. Now
2212 instances had introduced a bug with globals in normal code. Now
2210 it's working in all cases.
2213 it's working in all cases.
2211
2214
2212 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2215 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2213 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2216 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2214 has been introduced to set the default case sensitivity of the
2217 has been introduced to set the default case sensitivity of the
2215 searches. Users can still select either mode at runtime on a
2218 searches. Users can still select either mode at runtime on a
2216 per-search basis.
2219 per-search basis.
2217
2220
2218 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2221 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2219
2222
2220 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2223 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2221 attributes in wildcard searches for subclasses. Modified version
2224 attributes in wildcard searches for subclasses. Modified version
2222 of a patch by Jorgen.
2225 of a patch by Jorgen.
2223
2226
2224 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2227 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2225
2228
2226 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2229 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2227 embedded instances. I added a user_global_ns attribute to the
2230 embedded instances. I added a user_global_ns attribute to the
2228 InteractiveShell class to handle this.
2231 InteractiveShell class to handle this.
2229
2232
2230 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2233 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2231
2234
2232 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2235 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2233 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2236 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2234 (reported under win32, but may happen also in other platforms).
2237 (reported under win32, but may happen also in other platforms).
2235 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2238 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2236
2239
2237 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2240 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2238
2241
2239 * IPython/Magic.py (magic_psearch): new support for wildcard
2242 * IPython/Magic.py (magic_psearch): new support for wildcard
2240 patterns. Now, typing ?a*b will list all names which begin with a
2243 patterns. Now, typing ?a*b will list all names which begin with a
2241 and end in b, for example. The %psearch magic has full
2244 and end in b, for example. The %psearch magic has full
2242 docstrings. Many thanks to JΓΆrgen Stenarson
2245 docstrings. Many thanks to JΓΆrgen Stenarson
2243 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2246 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2244 implementing this functionality.
2247 implementing this functionality.
2245
2248
2246 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2249 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2247
2250
2248 * Manual: fixed long-standing annoyance of double-dashes (as in
2251 * Manual: fixed long-standing annoyance of double-dashes (as in
2249 --prefix=~, for example) being stripped in the HTML version. This
2252 --prefix=~, for example) being stripped in the HTML version. This
2250 is a latex2html bug, but a workaround was provided. Many thanks
2253 is a latex2html bug, but a workaround was provided. Many thanks
2251 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2254 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2252 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2255 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2253 rolling. This seemingly small issue had tripped a number of users
2256 rolling. This seemingly small issue had tripped a number of users
2254 when first installing, so I'm glad to see it gone.
2257 when first installing, so I'm glad to see it gone.
2255
2258
2256 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2259 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2257
2260
2258 * IPython/Extensions/numeric_formats.py: fix missing import,
2261 * IPython/Extensions/numeric_formats.py: fix missing import,
2259 reported by Stephen Walton.
2262 reported by Stephen Walton.
2260
2263
2261 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2264 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2265
2263 * IPython/demo.py: finish demo module, fully documented now.
2266 * IPython/demo.py: finish demo module, fully documented now.
2264
2267
2265 * IPython/genutils.py (file_read): simple little utility to read a
2268 * IPython/genutils.py (file_read): simple little utility to read a
2266 file and ensure it's closed afterwards.
2269 file and ensure it's closed afterwards.
2267
2270
2268 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2271 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2269
2272
2270 * IPython/demo.py (Demo.__init__): added support for individually
2273 * IPython/demo.py (Demo.__init__): added support for individually
2271 tagging blocks for automatic execution.
2274 tagging blocks for automatic execution.
2272
2275
2273 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2276 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2274 syntax-highlighted python sources, requested by John.
2277 syntax-highlighted python sources, requested by John.
2275
2278
2276 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2279 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2277
2280
2278 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2281 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2279 finishing.
2282 finishing.
2280
2283
2281 * IPython/genutils.py (shlex_split): moved from Magic to here,
2284 * IPython/genutils.py (shlex_split): moved from Magic to here,
2282 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2285 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2283
2286
2284 * IPython/demo.py (Demo.__init__): added support for silent
2287 * IPython/demo.py (Demo.__init__): added support for silent
2285 blocks, improved marks as regexps, docstrings written.
2288 blocks, improved marks as regexps, docstrings written.
2286 (Demo.__init__): better docstring, added support for sys.argv.
2289 (Demo.__init__): better docstring, added support for sys.argv.
2287
2290
2288 * IPython/genutils.py (marquee): little utility used by the demo
2291 * IPython/genutils.py (marquee): little utility used by the demo
2289 code, handy in general.
2292 code, handy in general.
2290
2293
2291 * IPython/demo.py (Demo.__init__): new class for interactive
2294 * IPython/demo.py (Demo.__init__): new class for interactive
2292 demos. Not documented yet, I just wrote it in a hurry for
2295 demos. Not documented yet, I just wrote it in a hurry for
2293 scipy'05. Will docstring later.
2296 scipy'05. Will docstring later.
2294
2297
2295 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2298 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2296
2299
2297 * IPython/Shell.py (sigint_handler): Drastic simplification which
2300 * IPython/Shell.py (sigint_handler): Drastic simplification which
2298 also seems to make Ctrl-C work correctly across threads! This is
2301 also seems to make Ctrl-C work correctly across threads! This is
2299 so simple, that I can't beleive I'd missed it before. Needs more
2302 so simple, that I can't beleive I'd missed it before. Needs more
2300 testing, though.
2303 testing, though.
2301 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2304 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2302 like this before...
2305 like this before...
2303
2306
2304 * IPython/genutils.py (get_home_dir): add protection against
2307 * IPython/genutils.py (get_home_dir): add protection against
2305 non-dirs in win32 registry.
2308 non-dirs in win32 registry.
2306
2309
2307 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2310 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2308 bug where dict was mutated while iterating (pysh crash).
2311 bug where dict was mutated while iterating (pysh crash).
2309
2312
2310 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2313 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2311
2314
2312 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2315 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2313 spurious newlines added by this routine. After a report by
2316 spurious newlines added by this routine. After a report by
2314 F. Mantegazza.
2317 F. Mantegazza.
2315
2318
2316 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2319 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2317
2320
2318 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2321 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2319 calls. These were a leftover from the GTK 1.x days, and can cause
2322 calls. These were a leftover from the GTK 1.x days, and can cause
2320 problems in certain cases (after a report by John Hunter).
2323 problems in certain cases (after a report by John Hunter).
2321
2324
2322 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2325 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2323 os.getcwd() fails at init time. Thanks to patch from David Remahl
2326 os.getcwd() fails at init time. Thanks to patch from David Remahl
2324 <chmod007-AT-mac.com>.
2327 <chmod007-AT-mac.com>.
2325 (InteractiveShell.__init__): prevent certain special magics from
2328 (InteractiveShell.__init__): prevent certain special magics from
2326 being shadowed by aliases. Closes
2329 being shadowed by aliases. Closes
2327 http://www.scipy.net/roundup/ipython/issue41.
2330 http://www.scipy.net/roundup/ipython/issue41.
2328
2331
2329 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2332 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2330
2333
2331 * IPython/iplib.py (InteractiveShell.complete): Added new
2334 * IPython/iplib.py (InteractiveShell.complete): Added new
2332 top-level completion method to expose the completion mechanism
2335 top-level completion method to expose the completion mechanism
2333 beyond readline-based environments.
2336 beyond readline-based environments.
2334
2337
2335 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2338 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2336
2339
2337 * tools/ipsvnc (svnversion): fix svnversion capture.
2340 * tools/ipsvnc (svnversion): fix svnversion capture.
2338
2341
2339 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2342 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2340 attribute to self, which was missing. Before, it was set by a
2343 attribute to self, which was missing. Before, it was set by a
2341 routine which in certain cases wasn't being called, so the
2344 routine which in certain cases wasn't being called, so the
2342 instance could end up missing the attribute. This caused a crash.
2345 instance could end up missing the attribute. This caused a crash.
2343 Closes http://www.scipy.net/roundup/ipython/issue40.
2346 Closes http://www.scipy.net/roundup/ipython/issue40.
2344
2347
2345 2005-08-16 Fernando Perez <fperez@colorado.edu>
2348 2005-08-16 Fernando Perez <fperez@colorado.edu>
2346
2349
2347 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2350 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2348 contains non-string attribute. Closes
2351 contains non-string attribute. Closes
2349 http://www.scipy.net/roundup/ipython/issue38.
2352 http://www.scipy.net/roundup/ipython/issue38.
2350
2353
2351 2005-08-14 Fernando Perez <fperez@colorado.edu>
2354 2005-08-14 Fernando Perez <fperez@colorado.edu>
2352
2355
2353 * tools/ipsvnc: Minor improvements, to add changeset info.
2356 * tools/ipsvnc: Minor improvements, to add changeset info.
2354
2357
2355 2005-08-12 Fernando Perez <fperez@colorado.edu>
2358 2005-08-12 Fernando Perez <fperez@colorado.edu>
2356
2359
2357 * IPython/iplib.py (runsource): remove self.code_to_run_src
2360 * IPython/iplib.py (runsource): remove self.code_to_run_src
2358 attribute. I realized this is nothing more than
2361 attribute. I realized this is nothing more than
2359 '\n'.join(self.buffer), and having the same data in two different
2362 '\n'.join(self.buffer), and having the same data in two different
2360 places is just asking for synchronization bugs. This may impact
2363 places is just asking for synchronization bugs. This may impact
2361 people who have custom exception handlers, so I need to warn
2364 people who have custom exception handlers, so I need to warn
2362 ipython-dev about it (F. Mantegazza may use them).
2365 ipython-dev about it (F. Mantegazza may use them).
2363
2366
2364 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2367 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2365
2368
2366 * IPython/genutils.py: fix 2.2 compatibility (generators)
2369 * IPython/genutils.py: fix 2.2 compatibility (generators)
2367
2370
2368 2005-07-18 Fernando Perez <fperez@colorado.edu>
2371 2005-07-18 Fernando Perez <fperez@colorado.edu>
2369
2372
2370 * IPython/genutils.py (get_home_dir): fix to help users with
2373 * IPython/genutils.py (get_home_dir): fix to help users with
2371 invalid $HOME under win32.
2374 invalid $HOME under win32.
2372
2375
2373 2005-07-17 Fernando Perez <fperez@colorado.edu>
2376 2005-07-17 Fernando Perez <fperez@colorado.edu>
2374
2377
2375 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2378 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2376 some old hacks and clean up a bit other routines; code should be
2379 some old hacks and clean up a bit other routines; code should be
2377 simpler and a bit faster.
2380 simpler and a bit faster.
2378
2381
2379 * IPython/iplib.py (interact): removed some last-resort attempts
2382 * IPython/iplib.py (interact): removed some last-resort attempts
2380 to survive broken stdout/stderr. That code was only making it
2383 to survive broken stdout/stderr. That code was only making it
2381 harder to abstract out the i/o (necessary for gui integration),
2384 harder to abstract out the i/o (necessary for gui integration),
2382 and the crashes it could prevent were extremely rare in practice
2385 and the crashes it could prevent were extremely rare in practice
2383 (besides being fully user-induced in a pretty violent manner).
2386 (besides being fully user-induced in a pretty violent manner).
2384
2387
2385 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2388 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2386 Nothing major yet, but the code is simpler to read; this should
2389 Nothing major yet, but the code is simpler to read; this should
2387 make it easier to do more serious modifications in the future.
2390 make it easier to do more serious modifications in the future.
2388
2391
2389 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2392 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2390 which broke in .15 (thanks to a report by Ville).
2393 which broke in .15 (thanks to a report by Ville).
2391
2394
2392 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2395 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2393 be quite correct, I know next to nothing about unicode). This
2396 be quite correct, I know next to nothing about unicode). This
2394 will allow unicode strings to be used in prompts, amongst other
2397 will allow unicode strings to be used in prompts, amongst other
2395 cases. It also will prevent ipython from crashing when unicode
2398 cases. It also will prevent ipython from crashing when unicode
2396 shows up unexpectedly in many places. If ascii encoding fails, we
2399 shows up unexpectedly in many places. If ascii encoding fails, we
2397 assume utf_8. Currently the encoding is not a user-visible
2400 assume utf_8. Currently the encoding is not a user-visible
2398 setting, though it could be made so if there is demand for it.
2401 setting, though it could be made so if there is demand for it.
2399
2402
2400 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2403 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2401
2404
2402 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2405 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2403
2406
2404 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2407 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2405
2408
2406 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2409 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2407 code can work transparently for 2.2/2.3.
2410 code can work transparently for 2.2/2.3.
2408
2411
2409 2005-07-16 Fernando Perez <fperez@colorado.edu>
2412 2005-07-16 Fernando Perez <fperez@colorado.edu>
2410
2413
2411 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2414 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2412 out of the color scheme table used for coloring exception
2415 out of the color scheme table used for coloring exception
2413 tracebacks. This allows user code to add new schemes at runtime.
2416 tracebacks. This allows user code to add new schemes at runtime.
2414 This is a minimally modified version of the patch at
2417 This is a minimally modified version of the patch at
2415 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2418 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2416 for the contribution.
2419 for the contribution.
2417
2420
2418 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2421 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2419 slightly modified version of the patch in
2422 slightly modified version of the patch in
2420 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2423 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2421 to remove the previous try/except solution (which was costlier).
2424 to remove the previous try/except solution (which was costlier).
2422 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2425 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2423
2426
2424 2005-06-08 Fernando Perez <fperez@colorado.edu>
2427 2005-06-08 Fernando Perez <fperez@colorado.edu>
2425
2428
2426 * IPython/iplib.py (write/write_err): Add methods to abstract all
2429 * IPython/iplib.py (write/write_err): Add methods to abstract all
2427 I/O a bit more.
2430 I/O a bit more.
2428
2431
2429 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2432 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2430 warning, reported by Aric Hagberg, fix by JD Hunter.
2433 warning, reported by Aric Hagberg, fix by JD Hunter.
2431
2434
2432 2005-06-02 *** Released version 0.6.15
2435 2005-06-02 *** Released version 0.6.15
2433
2436
2434 2005-06-01 Fernando Perez <fperez@colorado.edu>
2437 2005-06-01 Fernando Perez <fperez@colorado.edu>
2435
2438
2436 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2439 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2437 tab-completion of filenames within open-quoted strings. Note that
2440 tab-completion of filenames within open-quoted strings. Note that
2438 this requires that in ~/.ipython/ipythonrc, users change the
2441 this requires that in ~/.ipython/ipythonrc, users change the
2439 readline delimiters configuration to read:
2442 readline delimiters configuration to read:
2440
2443
2441 readline_remove_delims -/~
2444 readline_remove_delims -/~
2442
2445
2443
2446
2444 2005-05-31 *** Released version 0.6.14
2447 2005-05-31 *** Released version 0.6.14
2445
2448
2446 2005-05-29 Fernando Perez <fperez@colorado.edu>
2449 2005-05-29 Fernando Perez <fperez@colorado.edu>
2447
2450
2448 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2451 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2449 with files not on the filesystem. Reported by Eliyahu Sandler
2452 with files not on the filesystem. Reported by Eliyahu Sandler
2450 <eli@gondolin.net>
2453 <eli@gondolin.net>
2451
2454
2452 2005-05-22 Fernando Perez <fperez@colorado.edu>
2455 2005-05-22 Fernando Perez <fperez@colorado.edu>
2453
2456
2454 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2457 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2455 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2458 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2456
2459
2457 2005-05-19 Fernando Perez <fperez@colorado.edu>
2460 2005-05-19 Fernando Perez <fperez@colorado.edu>
2458
2461
2459 * IPython/iplib.py (safe_execfile): close a file which could be
2462 * IPython/iplib.py (safe_execfile): close a file which could be
2460 left open (causing problems in win32, which locks open files).
2463 left open (causing problems in win32, which locks open files).
2461 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2464 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2462
2465
2463 2005-05-18 Fernando Perez <fperez@colorado.edu>
2466 2005-05-18 Fernando Perez <fperez@colorado.edu>
2464
2467
2465 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2468 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2466 keyword arguments correctly to safe_execfile().
2469 keyword arguments correctly to safe_execfile().
2467
2470
2468 2005-05-13 Fernando Perez <fperez@colorado.edu>
2471 2005-05-13 Fernando Perez <fperez@colorado.edu>
2469
2472
2470 * ipython.1: Added info about Qt to manpage, and threads warning
2473 * ipython.1: Added info about Qt to manpage, and threads warning
2471 to usage page (invoked with --help).
2474 to usage page (invoked with --help).
2472
2475
2473 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2476 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2474 new matcher (it goes at the end of the priority list) to do
2477 new matcher (it goes at the end of the priority list) to do
2475 tab-completion on named function arguments. Submitted by George
2478 tab-completion on named function arguments. Submitted by George
2476 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2479 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2477 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2480 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2478 for more details.
2481 for more details.
2479
2482
2480 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2483 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2481 SystemExit exceptions in the script being run. Thanks to a report
2484 SystemExit exceptions in the script being run. Thanks to a report
2482 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2485 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2483 producing very annoying behavior when running unit tests.
2486 producing very annoying behavior when running unit tests.
2484
2487
2485 2005-05-12 Fernando Perez <fperez@colorado.edu>
2488 2005-05-12 Fernando Perez <fperez@colorado.edu>
2486
2489
2487 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2490 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2488 which I'd broken (again) due to a changed regexp. In the process,
2491 which I'd broken (again) due to a changed regexp. In the process,
2489 added ';' as an escape to auto-quote the whole line without
2492 added ';' as an escape to auto-quote the whole line without
2490 splitting its arguments. Thanks to a report by Jerry McRae
2493 splitting its arguments. Thanks to a report by Jerry McRae
2491 <qrs0xyc02-AT-sneakemail.com>.
2494 <qrs0xyc02-AT-sneakemail.com>.
2492
2495
2493 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2496 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2494 possible crashes caused by a TokenError. Reported by Ed Schofield
2497 possible crashes caused by a TokenError. Reported by Ed Schofield
2495 <schofield-AT-ftw.at>.
2498 <schofield-AT-ftw.at>.
2496
2499
2497 2005-05-06 Fernando Perez <fperez@colorado.edu>
2500 2005-05-06 Fernando Perez <fperez@colorado.edu>
2498
2501
2499 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2502 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2500
2503
2501 2005-04-29 Fernando Perez <fperez@colorado.edu>
2504 2005-04-29 Fernando Perez <fperez@colorado.edu>
2502
2505
2503 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2506 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2504 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2507 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2505 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2508 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2506 which provides support for Qt interactive usage (similar to the
2509 which provides support for Qt interactive usage (similar to the
2507 existing one for WX and GTK). This had been often requested.
2510 existing one for WX and GTK). This had been often requested.
2508
2511
2509 2005-04-14 *** Released version 0.6.13
2512 2005-04-14 *** Released version 0.6.13
2510
2513
2511 2005-04-08 Fernando Perez <fperez@colorado.edu>
2514 2005-04-08 Fernando Perez <fperez@colorado.edu>
2512
2515
2513 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2516 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2514 from _ofind, which gets called on almost every input line. Now,
2517 from _ofind, which gets called on almost every input line. Now,
2515 we only try to get docstrings if they are actually going to be
2518 we only try to get docstrings if they are actually going to be
2516 used (the overhead of fetching unnecessary docstrings can be
2519 used (the overhead of fetching unnecessary docstrings can be
2517 noticeable for certain objects, such as Pyro proxies).
2520 noticeable for certain objects, such as Pyro proxies).
2518
2521
2519 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2522 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2520 for completers. For some reason I had been passing them the state
2523 for completers. For some reason I had been passing them the state
2521 variable, which completers never actually need, and was in
2524 variable, which completers never actually need, and was in
2522 conflict with the rlcompleter API. Custom completers ONLY need to
2525 conflict with the rlcompleter API. Custom completers ONLY need to
2523 take the text parameter.
2526 take the text parameter.
2524
2527
2525 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2528 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2526 work correctly in pysh. I've also moved all the logic which used
2529 work correctly in pysh. I've also moved all the logic which used
2527 to be in pysh.py here, which will prevent problems with future
2530 to be in pysh.py here, which will prevent problems with future
2528 upgrades. However, this time I must warn users to update their
2531 upgrades. However, this time I must warn users to update their
2529 pysh profile to include the line
2532 pysh profile to include the line
2530
2533
2531 import_all IPython.Extensions.InterpreterExec
2534 import_all IPython.Extensions.InterpreterExec
2532
2535
2533 because otherwise things won't work for them. They MUST also
2536 because otherwise things won't work for them. They MUST also
2534 delete pysh.py and the line
2537 delete pysh.py and the line
2535
2538
2536 execfile pysh.py
2539 execfile pysh.py
2537
2540
2538 from their ipythonrc-pysh.
2541 from their ipythonrc-pysh.
2539
2542
2540 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2543 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2541 robust in the face of objects whose dir() returns non-strings
2544 robust in the face of objects whose dir() returns non-strings
2542 (which it shouldn't, but some broken libs like ITK do). Thanks to
2545 (which it shouldn't, but some broken libs like ITK do). Thanks to
2543 a patch by John Hunter (implemented differently, though). Also
2546 a patch by John Hunter (implemented differently, though). Also
2544 minor improvements by using .extend instead of + on lists.
2547 minor improvements by using .extend instead of + on lists.
2545
2548
2546 * pysh.py:
2549 * pysh.py:
2547
2550
2548 2005-04-06 Fernando Perez <fperez@colorado.edu>
2551 2005-04-06 Fernando Perez <fperez@colorado.edu>
2549
2552
2550 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2553 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2551 by default, so that all users benefit from it. Those who don't
2554 by default, so that all users benefit from it. Those who don't
2552 want it can still turn it off.
2555 want it can still turn it off.
2553
2556
2554 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2557 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2555 config file, I'd forgotten about this, so users were getting it
2558 config file, I'd forgotten about this, so users were getting it
2556 off by default.
2559 off by default.
2557
2560
2558 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2561 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2559 consistency. Now magics can be called in multiline statements,
2562 consistency. Now magics can be called in multiline statements,
2560 and python variables can be expanded in magic calls via $var.
2563 and python variables can be expanded in magic calls via $var.
2561 This makes the magic system behave just like aliases or !system
2564 This makes the magic system behave just like aliases or !system
2562 calls.
2565 calls.
2563
2566
2564 2005-03-28 Fernando Perez <fperez@colorado.edu>
2567 2005-03-28 Fernando Perez <fperez@colorado.edu>
2565
2568
2566 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2569 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2567 expensive string additions for building command. Add support for
2570 expensive string additions for building command. Add support for
2568 trailing ';' when autocall is used.
2571 trailing ';' when autocall is used.
2569
2572
2570 2005-03-26 Fernando Perez <fperez@colorado.edu>
2573 2005-03-26 Fernando Perez <fperez@colorado.edu>
2571
2574
2572 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2575 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2573 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2576 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2574 ipython.el robust against prompts with any number of spaces
2577 ipython.el robust against prompts with any number of spaces
2575 (including 0) after the ':' character.
2578 (including 0) after the ':' character.
2576
2579
2577 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2580 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2578 continuation prompt, which misled users to think the line was
2581 continuation prompt, which misled users to think the line was
2579 already indented. Closes debian Bug#300847, reported to me by
2582 already indented. Closes debian Bug#300847, reported to me by
2580 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2583 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2581
2584
2582 2005-03-23 Fernando Perez <fperez@colorado.edu>
2585 2005-03-23 Fernando Perez <fperez@colorado.edu>
2583
2586
2584 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2587 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2585 properly aligned if they have embedded newlines.
2588 properly aligned if they have embedded newlines.
2586
2589
2587 * IPython/iplib.py (runlines): Add a public method to expose
2590 * IPython/iplib.py (runlines): Add a public method to expose
2588 IPython's code execution machinery, so that users can run strings
2591 IPython's code execution machinery, so that users can run strings
2589 as if they had been typed at the prompt interactively.
2592 as if they had been typed at the prompt interactively.
2590 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2593 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2591 methods which can call the system shell, but with python variable
2594 methods which can call the system shell, but with python variable
2592 expansion. The three such methods are: __IPYTHON__.system,
2595 expansion. The three such methods are: __IPYTHON__.system,
2593 .getoutput and .getoutputerror. These need to be documented in a
2596 .getoutput and .getoutputerror. These need to be documented in a
2594 'public API' section (to be written) of the manual.
2597 'public API' section (to be written) of the manual.
2595
2598
2596 2005-03-20 Fernando Perez <fperez@colorado.edu>
2599 2005-03-20 Fernando Perez <fperez@colorado.edu>
2597
2600
2598 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2601 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2599 for custom exception handling. This is quite powerful, and it
2602 for custom exception handling. This is quite powerful, and it
2600 allows for user-installable exception handlers which can trap
2603 allows for user-installable exception handlers which can trap
2601 custom exceptions at runtime and treat them separately from
2604 custom exceptions at runtime and treat them separately from
2602 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2605 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2603 Mantegazza <mantegazza-AT-ill.fr>.
2606 Mantegazza <mantegazza-AT-ill.fr>.
2604 (InteractiveShell.set_custom_completer): public API function to
2607 (InteractiveShell.set_custom_completer): public API function to
2605 add new completers at runtime.
2608 add new completers at runtime.
2606
2609
2607 2005-03-19 Fernando Perez <fperez@colorado.edu>
2610 2005-03-19 Fernando Perez <fperez@colorado.edu>
2608
2611
2609 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2612 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2610 allow objects which provide their docstrings via non-standard
2613 allow objects which provide their docstrings via non-standard
2611 mechanisms (like Pyro proxies) to still be inspected by ipython's
2614 mechanisms (like Pyro proxies) to still be inspected by ipython's
2612 ? system.
2615 ? system.
2613
2616
2614 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2617 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2615 automatic capture system. I tried quite hard to make it work
2618 automatic capture system. I tried quite hard to make it work
2616 reliably, and simply failed. I tried many combinations with the
2619 reliably, and simply failed. I tried many combinations with the
2617 subprocess module, but eventually nothing worked in all needed
2620 subprocess module, but eventually nothing worked in all needed
2618 cases (not blocking stdin for the child, duplicating stdout
2621 cases (not blocking stdin for the child, duplicating stdout
2619 without blocking, etc). The new %sc/%sx still do capture to these
2622 without blocking, etc). The new %sc/%sx still do capture to these
2620 magical list/string objects which make shell use much more
2623 magical list/string objects which make shell use much more
2621 conveninent, so not all is lost.
2624 conveninent, so not all is lost.
2622
2625
2623 XXX - FIX MANUAL for the change above!
2626 XXX - FIX MANUAL for the change above!
2624
2627
2625 (runsource): I copied code.py's runsource() into ipython to modify
2628 (runsource): I copied code.py's runsource() into ipython to modify
2626 it a bit. Now the code object and source to be executed are
2629 it a bit. Now the code object and source to be executed are
2627 stored in ipython. This makes this info accessible to third-party
2630 stored in ipython. This makes this info accessible to third-party
2628 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2631 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2629 Mantegazza <mantegazza-AT-ill.fr>.
2632 Mantegazza <mantegazza-AT-ill.fr>.
2630
2633
2631 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2634 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2632 history-search via readline (like C-p/C-n). I'd wanted this for a
2635 history-search via readline (like C-p/C-n). I'd wanted this for a
2633 long time, but only recently found out how to do it. For users
2636 long time, but only recently found out how to do it. For users
2634 who already have their ipythonrc files made and want this, just
2637 who already have their ipythonrc files made and want this, just
2635 add:
2638 add:
2636
2639
2637 readline_parse_and_bind "\e[A": history-search-backward
2640 readline_parse_and_bind "\e[A": history-search-backward
2638 readline_parse_and_bind "\e[B": history-search-forward
2641 readline_parse_and_bind "\e[B": history-search-forward
2639
2642
2640 2005-03-18 Fernando Perez <fperez@colorado.edu>
2643 2005-03-18 Fernando Perez <fperez@colorado.edu>
2641
2644
2642 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2645 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2643 LSString and SList classes which allow transparent conversions
2646 LSString and SList classes which allow transparent conversions
2644 between list mode and whitespace-separated string.
2647 between list mode and whitespace-separated string.
2645 (magic_r): Fix recursion problem in %r.
2648 (magic_r): Fix recursion problem in %r.
2646
2649
2647 * IPython/genutils.py (LSString): New class to be used for
2650 * IPython/genutils.py (LSString): New class to be used for
2648 automatic storage of the results of all alias/system calls in _o
2651 automatic storage of the results of all alias/system calls in _o
2649 and _e (stdout/err). These provide a .l/.list attribute which
2652 and _e (stdout/err). These provide a .l/.list attribute which
2650 does automatic splitting on newlines. This means that for most
2653 does automatic splitting on newlines. This means that for most
2651 uses, you'll never need to do capturing of output with %sc/%sx
2654 uses, you'll never need to do capturing of output with %sc/%sx
2652 anymore, since ipython keeps this always done for you. Note that
2655 anymore, since ipython keeps this always done for you. Note that
2653 only the LAST results are stored, the _o/e variables are
2656 only the LAST results are stored, the _o/e variables are
2654 overwritten on each call. If you need to save their contents
2657 overwritten on each call. If you need to save their contents
2655 further, simply bind them to any other name.
2658 further, simply bind them to any other name.
2656
2659
2657 2005-03-17 Fernando Perez <fperez@colorado.edu>
2660 2005-03-17 Fernando Perez <fperez@colorado.edu>
2658
2661
2659 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2662 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2660 prompt namespace handling.
2663 prompt namespace handling.
2661
2664
2662 2005-03-16 Fernando Perez <fperez@colorado.edu>
2665 2005-03-16 Fernando Perez <fperez@colorado.edu>
2663
2666
2664 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2667 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2665 classic prompts to be '>>> ' (final space was missing, and it
2668 classic prompts to be '>>> ' (final space was missing, and it
2666 trips the emacs python mode).
2669 trips the emacs python mode).
2667 (BasePrompt.__str__): Added safe support for dynamic prompt
2670 (BasePrompt.__str__): Added safe support for dynamic prompt
2668 strings. Now you can set your prompt string to be '$x', and the
2671 strings. Now you can set your prompt string to be '$x', and the
2669 value of x will be printed from your interactive namespace. The
2672 value of x will be printed from your interactive namespace. The
2670 interpolation syntax includes the full Itpl support, so
2673 interpolation syntax includes the full Itpl support, so
2671 ${foo()+x+bar()} is a valid prompt string now, and the function
2674 ${foo()+x+bar()} is a valid prompt string now, and the function
2672 calls will be made at runtime.
2675 calls will be made at runtime.
2673
2676
2674 2005-03-15 Fernando Perez <fperez@colorado.edu>
2677 2005-03-15 Fernando Perez <fperez@colorado.edu>
2675
2678
2676 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2679 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2677 avoid name clashes in pylab. %hist still works, it just forwards
2680 avoid name clashes in pylab. %hist still works, it just forwards
2678 the call to %history.
2681 the call to %history.
2679
2682
2680 2005-03-02 *** Released version 0.6.12
2683 2005-03-02 *** Released version 0.6.12
2681
2684
2682 2005-03-02 Fernando Perez <fperez@colorado.edu>
2685 2005-03-02 Fernando Perez <fperez@colorado.edu>
2683
2686
2684 * IPython/iplib.py (handle_magic): log magic calls properly as
2687 * IPython/iplib.py (handle_magic): log magic calls properly as
2685 ipmagic() function calls.
2688 ipmagic() function calls.
2686
2689
2687 * IPython/Magic.py (magic_time): Improved %time to support
2690 * IPython/Magic.py (magic_time): Improved %time to support
2688 statements and provide wall-clock as well as CPU time.
2691 statements and provide wall-clock as well as CPU time.
2689
2692
2690 2005-02-27 Fernando Perez <fperez@colorado.edu>
2693 2005-02-27 Fernando Perez <fperez@colorado.edu>
2691
2694
2692 * IPython/hooks.py: New hooks module, to expose user-modifiable
2695 * IPython/hooks.py: New hooks module, to expose user-modifiable
2693 IPython functionality in a clean manner. For now only the editor
2696 IPython functionality in a clean manner. For now only the editor
2694 hook is actually written, and other thigns which I intend to turn
2697 hook is actually written, and other thigns which I intend to turn
2695 into proper hooks aren't yet there. The display and prefilter
2698 into proper hooks aren't yet there. The display and prefilter
2696 stuff, for example, should be hooks. But at least now the
2699 stuff, for example, should be hooks. But at least now the
2697 framework is in place, and the rest can be moved here with more
2700 framework is in place, and the rest can be moved here with more
2698 time later. IPython had had a .hooks variable for a long time for
2701 time later. IPython had had a .hooks variable for a long time for
2699 this purpose, but I'd never actually used it for anything.
2702 this purpose, but I'd never actually used it for anything.
2700
2703
2701 2005-02-26 Fernando Perez <fperez@colorado.edu>
2704 2005-02-26 Fernando Perez <fperez@colorado.edu>
2702
2705
2703 * IPython/ipmaker.py (make_IPython): make the default ipython
2706 * IPython/ipmaker.py (make_IPython): make the default ipython
2704 directory be called _ipython under win32, to follow more the
2707 directory be called _ipython under win32, to follow more the
2705 naming peculiarities of that platform (where buggy software like
2708 naming peculiarities of that platform (where buggy software like
2706 Visual Sourcesafe breaks with .named directories). Reported by
2709 Visual Sourcesafe breaks with .named directories). Reported by
2707 Ville Vainio.
2710 Ville Vainio.
2708
2711
2709 2005-02-23 Fernando Perez <fperez@colorado.edu>
2712 2005-02-23 Fernando Perez <fperez@colorado.edu>
2710
2713
2711 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2714 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2712 auto_aliases for win32 which were causing problems. Users can
2715 auto_aliases for win32 which were causing problems. Users can
2713 define the ones they personally like.
2716 define the ones they personally like.
2714
2717
2715 2005-02-21 Fernando Perez <fperez@colorado.edu>
2718 2005-02-21 Fernando Perez <fperez@colorado.edu>
2716
2719
2717 * IPython/Magic.py (magic_time): new magic to time execution of
2720 * IPython/Magic.py (magic_time): new magic to time execution of
2718 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2721 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2719
2722
2720 2005-02-19 Fernando Perez <fperez@colorado.edu>
2723 2005-02-19 Fernando Perez <fperez@colorado.edu>
2721
2724
2722 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2725 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2723 into keys (for prompts, for example).
2726 into keys (for prompts, for example).
2724
2727
2725 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2728 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2726 prompts in case users want them. This introduces a small behavior
2729 prompts in case users want them. This introduces a small behavior
2727 change: ipython does not automatically add a space to all prompts
2730 change: ipython does not automatically add a space to all prompts
2728 anymore. To get the old prompts with a space, users should add it
2731 anymore. To get the old prompts with a space, users should add it
2729 manually to their ipythonrc file, so for example prompt_in1 should
2732 manually to their ipythonrc file, so for example prompt_in1 should
2730 now read 'In [\#]: ' instead of 'In [\#]:'.
2733 now read 'In [\#]: ' instead of 'In [\#]:'.
2731 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2734 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2732 file) to control left-padding of secondary prompts.
2735 file) to control left-padding of secondary prompts.
2733
2736
2734 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2737 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2735 the profiler can't be imported. Fix for Debian, which removed
2738 the profiler can't be imported. Fix for Debian, which removed
2736 profile.py because of License issues. I applied a slightly
2739 profile.py because of License issues. I applied a slightly
2737 modified version of the original Debian patch at
2740 modified version of the original Debian patch at
2738 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2741 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2739
2742
2740 2005-02-17 Fernando Perez <fperez@colorado.edu>
2743 2005-02-17 Fernando Perez <fperez@colorado.edu>
2741
2744
2742 * IPython/genutils.py (native_line_ends): Fix bug which would
2745 * IPython/genutils.py (native_line_ends): Fix bug which would
2743 cause improper line-ends under win32 b/c I was not opening files
2746 cause improper line-ends under win32 b/c I was not opening files
2744 in binary mode. Bug report and fix thanks to Ville.
2747 in binary mode. Bug report and fix thanks to Ville.
2745
2748
2746 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2749 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2747 trying to catch spurious foo[1] autocalls. My fix actually broke
2750 trying to catch spurious foo[1] autocalls. My fix actually broke
2748 ',/' autoquote/call with explicit escape (bad regexp).
2751 ',/' autoquote/call with explicit escape (bad regexp).
2749
2752
2750 2005-02-15 *** Released version 0.6.11
2753 2005-02-15 *** Released version 0.6.11
2751
2754
2752 2005-02-14 Fernando Perez <fperez@colorado.edu>
2755 2005-02-14 Fernando Perez <fperez@colorado.edu>
2753
2756
2754 * IPython/background_jobs.py: New background job management
2757 * IPython/background_jobs.py: New background job management
2755 subsystem. This is implemented via a new set of classes, and
2758 subsystem. This is implemented via a new set of classes, and
2756 IPython now provides a builtin 'jobs' object for background job
2759 IPython now provides a builtin 'jobs' object for background job
2757 execution. A convenience %bg magic serves as a lightweight
2760 execution. A convenience %bg magic serves as a lightweight
2758 frontend for starting the more common type of calls. This was
2761 frontend for starting the more common type of calls. This was
2759 inspired by discussions with B. Granger and the BackgroundCommand
2762 inspired by discussions with B. Granger and the BackgroundCommand
2760 class described in the book Python Scripting for Computational
2763 class described in the book Python Scripting for Computational
2761 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2764 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2762 (although ultimately no code from this text was used, as IPython's
2765 (although ultimately no code from this text was used, as IPython's
2763 system is a separate implementation).
2766 system is a separate implementation).
2764
2767
2765 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2768 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2766 to control the completion of single/double underscore names
2769 to control the completion of single/double underscore names
2767 separately. As documented in the example ipytonrc file, the
2770 separately. As documented in the example ipytonrc file, the
2768 readline_omit__names variable can now be set to 2, to omit even
2771 readline_omit__names variable can now be set to 2, to omit even
2769 single underscore names. Thanks to a patch by Brian Wong
2772 single underscore names. Thanks to a patch by Brian Wong
2770 <BrianWong-AT-AirgoNetworks.Com>.
2773 <BrianWong-AT-AirgoNetworks.Com>.
2771 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2774 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2772 be autocalled as foo([1]) if foo were callable. A problem for
2775 be autocalled as foo([1]) if foo were callable. A problem for
2773 things which are both callable and implement __getitem__.
2776 things which are both callable and implement __getitem__.
2774 (init_readline): Fix autoindentation for win32. Thanks to a patch
2777 (init_readline): Fix autoindentation for win32. Thanks to a patch
2775 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2778 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2776
2779
2777 2005-02-12 Fernando Perez <fperez@colorado.edu>
2780 2005-02-12 Fernando Perez <fperez@colorado.edu>
2778
2781
2779 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2782 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2780 which I had written long ago to sort out user error messages which
2783 which I had written long ago to sort out user error messages which
2781 may occur during startup. This seemed like a good idea initially,
2784 may occur during startup. This seemed like a good idea initially,
2782 but it has proven a disaster in retrospect. I don't want to
2785 but it has proven a disaster in retrospect. I don't want to
2783 change much code for now, so my fix is to set the internal 'debug'
2786 change much code for now, so my fix is to set the internal 'debug'
2784 flag to true everywhere, whose only job was precisely to control
2787 flag to true everywhere, whose only job was precisely to control
2785 this subsystem. This closes issue 28 (as well as avoiding all
2788 this subsystem. This closes issue 28 (as well as avoiding all
2786 sorts of strange hangups which occur from time to time).
2789 sorts of strange hangups which occur from time to time).
2787
2790
2788 2005-02-07 Fernando Perez <fperez@colorado.edu>
2791 2005-02-07 Fernando Perez <fperez@colorado.edu>
2789
2792
2790 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2793 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2791 previous call produced a syntax error.
2794 previous call produced a syntax error.
2792
2795
2793 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2796 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2794 classes without constructor.
2797 classes without constructor.
2795
2798
2796 2005-02-06 Fernando Perez <fperez@colorado.edu>
2799 2005-02-06 Fernando Perez <fperez@colorado.edu>
2797
2800
2798 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2801 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2799 completions with the results of each matcher, so we return results
2802 completions with the results of each matcher, so we return results
2800 to the user from all namespaces. This breaks with ipython
2803 to the user from all namespaces. This breaks with ipython
2801 tradition, but I think it's a nicer behavior. Now you get all
2804 tradition, but I think it's a nicer behavior. Now you get all
2802 possible completions listed, from all possible namespaces (python,
2805 possible completions listed, from all possible namespaces (python,
2803 filesystem, magics...) After a request by John Hunter
2806 filesystem, magics...) After a request by John Hunter
2804 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2807 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2805
2808
2806 2005-02-05 Fernando Perez <fperez@colorado.edu>
2809 2005-02-05 Fernando Perez <fperez@colorado.edu>
2807
2810
2808 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2811 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2809 the call had quote characters in it (the quotes were stripped).
2812 the call had quote characters in it (the quotes were stripped).
2810
2813
2811 2005-01-31 Fernando Perez <fperez@colorado.edu>
2814 2005-01-31 Fernando Perez <fperez@colorado.edu>
2812
2815
2813 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2816 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2814 Itpl.itpl() to make the code more robust against psyco
2817 Itpl.itpl() to make the code more robust against psyco
2815 optimizations.
2818 optimizations.
2816
2819
2817 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2820 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2818 of causing an exception. Quicker, cleaner.
2821 of causing an exception. Quicker, cleaner.
2819
2822
2820 2005-01-28 Fernando Perez <fperez@colorado.edu>
2823 2005-01-28 Fernando Perez <fperez@colorado.edu>
2821
2824
2822 * scripts/ipython_win_post_install.py (install): hardcode
2825 * scripts/ipython_win_post_install.py (install): hardcode
2823 sys.prefix+'python.exe' as the executable path. It turns out that
2826 sys.prefix+'python.exe' as the executable path. It turns out that
2824 during the post-installation run, sys.executable resolves to the
2827 during the post-installation run, sys.executable resolves to the
2825 name of the binary installer! I should report this as a distutils
2828 name of the binary installer! I should report this as a distutils
2826 bug, I think. I updated the .10 release with this tiny fix, to
2829 bug, I think. I updated the .10 release with this tiny fix, to
2827 avoid annoying the lists further.
2830 avoid annoying the lists further.
2828
2831
2829 2005-01-27 *** Released version 0.6.10
2832 2005-01-27 *** Released version 0.6.10
2830
2833
2831 2005-01-27 Fernando Perez <fperez@colorado.edu>
2834 2005-01-27 Fernando Perez <fperez@colorado.edu>
2832
2835
2833 * IPython/numutils.py (norm): Added 'inf' as optional name for
2836 * IPython/numutils.py (norm): Added 'inf' as optional name for
2834 L-infinity norm, included references to mathworld.com for vector
2837 L-infinity norm, included references to mathworld.com for vector
2835 norm definitions.
2838 norm definitions.
2836 (amin/amax): added amin/amax for array min/max. Similar to what
2839 (amin/amax): added amin/amax for array min/max. Similar to what
2837 pylab ships with after the recent reorganization of names.
2840 pylab ships with after the recent reorganization of names.
2838 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2841 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2839
2842
2840 * ipython.el: committed Alex's recent fixes and improvements.
2843 * ipython.el: committed Alex's recent fixes and improvements.
2841 Tested with python-mode from CVS, and it looks excellent. Since
2844 Tested with python-mode from CVS, and it looks excellent. Since
2842 python-mode hasn't released anything in a while, I'm temporarily
2845 python-mode hasn't released anything in a while, I'm temporarily
2843 putting a copy of today's CVS (v 4.70) of python-mode in:
2846 putting a copy of today's CVS (v 4.70) of python-mode in:
2844 http://ipython.scipy.org/tmp/python-mode.el
2847 http://ipython.scipy.org/tmp/python-mode.el
2845
2848
2846 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2849 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2847 sys.executable for the executable name, instead of assuming it's
2850 sys.executable for the executable name, instead of assuming it's
2848 called 'python.exe' (the post-installer would have produced broken
2851 called 'python.exe' (the post-installer would have produced broken
2849 setups on systems with a differently named python binary).
2852 setups on systems with a differently named python binary).
2850
2853
2851 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2854 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2852 references to os.linesep, to make the code more
2855 references to os.linesep, to make the code more
2853 platform-independent. This is also part of the win32 coloring
2856 platform-independent. This is also part of the win32 coloring
2854 fixes.
2857 fixes.
2855
2858
2856 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2859 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2857 lines, which actually cause coloring bugs because the length of
2860 lines, which actually cause coloring bugs because the length of
2858 the line is very difficult to correctly compute with embedded
2861 the line is very difficult to correctly compute with embedded
2859 escapes. This was the source of all the coloring problems under
2862 escapes. This was the source of all the coloring problems under
2860 Win32. I think that _finally_, Win32 users have a properly
2863 Win32. I think that _finally_, Win32 users have a properly
2861 working ipython in all respects. This would never have happened
2864 working ipython in all respects. This would never have happened
2862 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2865 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2863
2866
2864 2005-01-26 *** Released version 0.6.9
2867 2005-01-26 *** Released version 0.6.9
2865
2868
2866 2005-01-25 Fernando Perez <fperez@colorado.edu>
2869 2005-01-25 Fernando Perez <fperez@colorado.edu>
2867
2870
2868 * setup.py: finally, we have a true Windows installer, thanks to
2871 * setup.py: finally, we have a true Windows installer, thanks to
2869 the excellent work of Viktor Ransmayr
2872 the excellent work of Viktor Ransmayr
2870 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2873 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2871 Windows users. The setup routine is quite a bit cleaner thanks to
2874 Windows users. The setup routine is quite a bit cleaner thanks to
2872 this, and the post-install script uses the proper functions to
2875 this, and the post-install script uses the proper functions to
2873 allow a clean de-installation using the standard Windows Control
2876 allow a clean de-installation using the standard Windows Control
2874 Panel.
2877 Panel.
2875
2878
2876 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2879 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2877 environment variable under all OSes (including win32) if
2880 environment variable under all OSes (including win32) if
2878 available. This will give consistency to win32 users who have set
2881 available. This will give consistency to win32 users who have set
2879 this variable for any reason. If os.environ['HOME'] fails, the
2882 this variable for any reason. If os.environ['HOME'] fails, the
2880 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2883 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2881
2884
2882 2005-01-24 Fernando Perez <fperez@colorado.edu>
2885 2005-01-24 Fernando Perez <fperez@colorado.edu>
2883
2886
2884 * IPython/numutils.py (empty_like): add empty_like(), similar to
2887 * IPython/numutils.py (empty_like): add empty_like(), similar to
2885 zeros_like() but taking advantage of the new empty() Numeric routine.
2888 zeros_like() but taking advantage of the new empty() Numeric routine.
2886
2889
2887 2005-01-23 *** Released version 0.6.8
2890 2005-01-23 *** Released version 0.6.8
2888
2891
2889 2005-01-22 Fernando Perez <fperez@colorado.edu>
2892 2005-01-22 Fernando Perez <fperez@colorado.edu>
2890
2893
2891 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2894 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2892 automatic show() calls. After discussing things with JDH, it
2895 automatic show() calls. After discussing things with JDH, it
2893 turns out there are too many corner cases where this can go wrong.
2896 turns out there are too many corner cases where this can go wrong.
2894 It's best not to try to be 'too smart', and simply have ipython
2897 It's best not to try to be 'too smart', and simply have ipython
2895 reproduce as much as possible the default behavior of a normal
2898 reproduce as much as possible the default behavior of a normal
2896 python shell.
2899 python shell.
2897
2900
2898 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2901 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2899 line-splitting regexp and _prefilter() to avoid calling getattr()
2902 line-splitting regexp and _prefilter() to avoid calling getattr()
2900 on assignments. This closes
2903 on assignments. This closes
2901 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2904 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2902 readline uses getattr(), so a simple <TAB> keypress is still
2905 readline uses getattr(), so a simple <TAB> keypress is still
2903 enough to trigger getattr() calls on an object.
2906 enough to trigger getattr() calls on an object.
2904
2907
2905 2005-01-21 Fernando Perez <fperez@colorado.edu>
2908 2005-01-21 Fernando Perez <fperez@colorado.edu>
2906
2909
2907 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2910 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2908 docstring under pylab so it doesn't mask the original.
2911 docstring under pylab so it doesn't mask the original.
2909
2912
2910 2005-01-21 *** Released version 0.6.7
2913 2005-01-21 *** Released version 0.6.7
2911
2914
2912 2005-01-21 Fernando Perez <fperez@colorado.edu>
2915 2005-01-21 Fernando Perez <fperez@colorado.edu>
2913
2916
2914 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2917 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2915 signal handling for win32 users in multithreaded mode.
2918 signal handling for win32 users in multithreaded mode.
2916
2919
2917 2005-01-17 Fernando Perez <fperez@colorado.edu>
2920 2005-01-17 Fernando Perez <fperez@colorado.edu>
2918
2921
2919 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2922 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2920 instances with no __init__. After a crash report by Norbert Nemec
2923 instances with no __init__. After a crash report by Norbert Nemec
2921 <Norbert-AT-nemec-online.de>.
2924 <Norbert-AT-nemec-online.de>.
2922
2925
2923 2005-01-14 Fernando Perez <fperez@colorado.edu>
2926 2005-01-14 Fernando Perez <fperez@colorado.edu>
2924
2927
2925 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2928 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2926 names for verbose exceptions, when multiple dotted names and the
2929 names for verbose exceptions, when multiple dotted names and the
2927 'parent' object were present on the same line.
2930 'parent' object were present on the same line.
2928
2931
2929 2005-01-11 Fernando Perez <fperez@colorado.edu>
2932 2005-01-11 Fernando Perez <fperez@colorado.edu>
2930
2933
2931 * IPython/genutils.py (flag_calls): new utility to trap and flag
2934 * IPython/genutils.py (flag_calls): new utility to trap and flag
2932 calls in functions. I need it to clean up matplotlib support.
2935 calls in functions. I need it to clean up matplotlib support.
2933 Also removed some deprecated code in genutils.
2936 Also removed some deprecated code in genutils.
2934
2937
2935 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2938 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2936 that matplotlib scripts called with %run, which don't call show()
2939 that matplotlib scripts called with %run, which don't call show()
2937 themselves, still have their plotting windows open.
2940 themselves, still have their plotting windows open.
2938
2941
2939 2005-01-05 Fernando Perez <fperez@colorado.edu>
2942 2005-01-05 Fernando Perez <fperez@colorado.edu>
2940
2943
2941 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2944 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2942 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2945 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2943
2946
2944 2004-12-19 Fernando Perez <fperez@colorado.edu>
2947 2004-12-19 Fernando Perez <fperez@colorado.edu>
2945
2948
2946 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2949 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2947 parent_runcode, which was an eyesore. The same result can be
2950 parent_runcode, which was an eyesore. The same result can be
2948 obtained with Python's regular superclass mechanisms.
2951 obtained with Python's regular superclass mechanisms.
2949
2952
2950 2004-12-17 Fernando Perez <fperez@colorado.edu>
2953 2004-12-17 Fernando Perez <fperez@colorado.edu>
2951
2954
2952 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2955 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2953 reported by Prabhu.
2956 reported by Prabhu.
2954 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2957 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2955 sys.stderr) instead of explicitly calling sys.stderr. This helps
2958 sys.stderr) instead of explicitly calling sys.stderr. This helps
2956 maintain our I/O abstractions clean, for future GUI embeddings.
2959 maintain our I/O abstractions clean, for future GUI embeddings.
2957
2960
2958 * IPython/genutils.py (info): added new utility for sys.stderr
2961 * IPython/genutils.py (info): added new utility for sys.stderr
2959 unified info message handling (thin wrapper around warn()).
2962 unified info message handling (thin wrapper around warn()).
2960
2963
2961 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2964 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2962 composite (dotted) names on verbose exceptions.
2965 composite (dotted) names on verbose exceptions.
2963 (VerboseTB.nullrepr): harden against another kind of errors which
2966 (VerboseTB.nullrepr): harden against another kind of errors which
2964 Python's inspect module can trigger, and which were crashing
2967 Python's inspect module can trigger, and which were crashing
2965 IPython. Thanks to a report by Marco Lombardi
2968 IPython. Thanks to a report by Marco Lombardi
2966 <mlombard-AT-ma010192.hq.eso.org>.
2969 <mlombard-AT-ma010192.hq.eso.org>.
2967
2970
2968 2004-12-13 *** Released version 0.6.6
2971 2004-12-13 *** Released version 0.6.6
2969
2972
2970 2004-12-12 Fernando Perez <fperez@colorado.edu>
2973 2004-12-12 Fernando Perez <fperez@colorado.edu>
2971
2974
2972 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2975 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2973 generated by pygtk upon initialization if it was built without
2976 generated by pygtk upon initialization if it was built without
2974 threads (for matplotlib users). After a crash reported by
2977 threads (for matplotlib users). After a crash reported by
2975 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2978 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2976
2979
2977 * IPython/ipmaker.py (make_IPython): fix small bug in the
2980 * IPython/ipmaker.py (make_IPython): fix small bug in the
2978 import_some parameter for multiple imports.
2981 import_some parameter for multiple imports.
2979
2982
2980 * IPython/iplib.py (ipmagic): simplified the interface of
2983 * IPython/iplib.py (ipmagic): simplified the interface of
2981 ipmagic() to take a single string argument, just as it would be
2984 ipmagic() to take a single string argument, just as it would be
2982 typed at the IPython cmd line.
2985 typed at the IPython cmd line.
2983 (ipalias): Added new ipalias() with an interface identical to
2986 (ipalias): Added new ipalias() with an interface identical to
2984 ipmagic(). This completes exposing a pure python interface to the
2987 ipmagic(). This completes exposing a pure python interface to the
2985 alias and magic system, which can be used in loops or more complex
2988 alias and magic system, which can be used in loops or more complex
2986 code where IPython's automatic line mangling is not active.
2989 code where IPython's automatic line mangling is not active.
2987
2990
2988 * IPython/genutils.py (timing): changed interface of timing to
2991 * IPython/genutils.py (timing): changed interface of timing to
2989 simply run code once, which is the most common case. timings()
2992 simply run code once, which is the most common case. timings()
2990 remains unchanged, for the cases where you want multiple runs.
2993 remains unchanged, for the cases where you want multiple runs.
2991
2994
2992 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2995 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2993 bug where Python2.2 crashes with exec'ing code which does not end
2996 bug where Python2.2 crashes with exec'ing code which does not end
2994 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2997 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2995 before.
2998 before.
2996
2999
2997 2004-12-10 Fernando Perez <fperez@colorado.edu>
3000 2004-12-10 Fernando Perez <fperez@colorado.edu>
2998
3001
2999 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3002 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3000 -t to -T, to accomodate the new -t flag in %run (the %run and
3003 -t to -T, to accomodate the new -t flag in %run (the %run and
3001 %prun options are kind of intermixed, and it's not easy to change
3004 %prun options are kind of intermixed, and it's not easy to change
3002 this with the limitations of python's getopt).
3005 this with the limitations of python's getopt).
3003
3006
3004 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3007 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3005 the execution of scripts. It's not as fine-tuned as timeit.py,
3008 the execution of scripts. It's not as fine-tuned as timeit.py,
3006 but it works from inside ipython (and under 2.2, which lacks
3009 but it works from inside ipython (and under 2.2, which lacks
3007 timeit.py). Optionally a number of runs > 1 can be given for
3010 timeit.py). Optionally a number of runs > 1 can be given for
3008 timing very short-running code.
3011 timing very short-running code.
3009
3012
3010 * IPython/genutils.py (uniq_stable): new routine which returns a
3013 * IPython/genutils.py (uniq_stable): new routine which returns a
3011 list of unique elements in any iterable, but in stable order of
3014 list of unique elements in any iterable, but in stable order of
3012 appearance. I needed this for the ultraTB fixes, and it's a handy
3015 appearance. I needed this for the ultraTB fixes, and it's a handy
3013 utility.
3016 utility.
3014
3017
3015 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3018 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3016 dotted names in Verbose exceptions. This had been broken since
3019 dotted names in Verbose exceptions. This had been broken since
3017 the very start, now x.y will properly be printed in a Verbose
3020 the very start, now x.y will properly be printed in a Verbose
3018 traceback, instead of x being shown and y appearing always as an
3021 traceback, instead of x being shown and y appearing always as an
3019 'undefined global'. Getting this to work was a bit tricky,
3022 'undefined global'. Getting this to work was a bit tricky,
3020 because by default python tokenizers are stateless. Saved by
3023 because by default python tokenizers are stateless. Saved by
3021 python's ability to easily add a bit of state to an arbitrary
3024 python's ability to easily add a bit of state to an arbitrary
3022 function (without needing to build a full-blown callable object).
3025 function (without needing to build a full-blown callable object).
3023
3026
3024 Also big cleanup of this code, which had horrendous runtime
3027 Also big cleanup of this code, which had horrendous runtime
3025 lookups of zillions of attributes for colorization. Moved all
3028 lookups of zillions of attributes for colorization. Moved all
3026 this code into a few templates, which make it cleaner and quicker.
3029 this code into a few templates, which make it cleaner and quicker.
3027
3030
3028 Printout quality was also improved for Verbose exceptions: one
3031 Printout quality was also improved for Verbose exceptions: one
3029 variable per line, and memory addresses are printed (this can be
3032 variable per line, and memory addresses are printed (this can be
3030 quite handy in nasty debugging situations, which is what Verbose
3033 quite handy in nasty debugging situations, which is what Verbose
3031 is for).
3034 is for).
3032
3035
3033 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3036 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3034 the command line as scripts to be loaded by embedded instances.
3037 the command line as scripts to be loaded by embedded instances.
3035 Doing so has the potential for an infinite recursion if there are
3038 Doing so has the potential for an infinite recursion if there are
3036 exceptions thrown in the process. This fixes a strange crash
3039 exceptions thrown in the process. This fixes a strange crash
3037 reported by Philippe MULLER <muller-AT-irit.fr>.
3040 reported by Philippe MULLER <muller-AT-irit.fr>.
3038
3041
3039 2004-12-09 Fernando Perez <fperez@colorado.edu>
3042 2004-12-09 Fernando Perez <fperez@colorado.edu>
3040
3043
3041 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3044 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3042 to reflect new names in matplotlib, which now expose the
3045 to reflect new names in matplotlib, which now expose the
3043 matlab-compatible interface via a pylab module instead of the
3046 matlab-compatible interface via a pylab module instead of the
3044 'matlab' name. The new code is backwards compatible, so users of
3047 'matlab' name. The new code is backwards compatible, so users of
3045 all matplotlib versions are OK. Patch by J. Hunter.
3048 all matplotlib versions are OK. Patch by J. Hunter.
3046
3049
3047 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3050 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3048 of __init__ docstrings for instances (class docstrings are already
3051 of __init__ docstrings for instances (class docstrings are already
3049 automatically printed). Instances with customized docstrings
3052 automatically printed). Instances with customized docstrings
3050 (indep. of the class) are also recognized and all 3 separate
3053 (indep. of the class) are also recognized and all 3 separate
3051 docstrings are printed (instance, class, constructor). After some
3054 docstrings are printed (instance, class, constructor). After some
3052 comments/suggestions by J. Hunter.
3055 comments/suggestions by J. Hunter.
3053
3056
3054 2004-12-05 Fernando Perez <fperez@colorado.edu>
3057 2004-12-05 Fernando Perez <fperez@colorado.edu>
3055
3058
3056 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3059 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3057 warnings when tab-completion fails and triggers an exception.
3060 warnings when tab-completion fails and triggers an exception.
3058
3061
3059 2004-12-03 Fernando Perez <fperez@colorado.edu>
3062 2004-12-03 Fernando Perez <fperez@colorado.edu>
3060
3063
3061 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3064 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3062 be triggered when using 'run -p'. An incorrect option flag was
3065 be triggered when using 'run -p'. An incorrect option flag was
3063 being set ('d' instead of 'D').
3066 being set ('d' instead of 'D').
3064 (manpage): fix missing escaped \- sign.
3067 (manpage): fix missing escaped \- sign.
3065
3068
3066 2004-11-30 *** Released version 0.6.5
3069 2004-11-30 *** Released version 0.6.5
3067
3070
3068 2004-11-30 Fernando Perez <fperez@colorado.edu>
3071 2004-11-30 Fernando Perez <fperez@colorado.edu>
3069
3072
3070 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3073 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3071 setting with -d option.
3074 setting with -d option.
3072
3075
3073 * setup.py (docfiles): Fix problem where the doc glob I was using
3076 * setup.py (docfiles): Fix problem where the doc glob I was using
3074 was COMPLETELY BROKEN. It was giving the right files by pure
3077 was COMPLETELY BROKEN. It was giving the right files by pure
3075 accident, but failed once I tried to include ipython.el. Note:
3078 accident, but failed once I tried to include ipython.el. Note:
3076 glob() does NOT allow you to do exclusion on multiple endings!
3079 glob() does NOT allow you to do exclusion on multiple endings!
3077
3080
3078 2004-11-29 Fernando Perez <fperez@colorado.edu>
3081 2004-11-29 Fernando Perez <fperez@colorado.edu>
3079
3082
3080 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3083 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3081 the manpage as the source. Better formatting & consistency.
3084 the manpage as the source. Better formatting & consistency.
3082
3085
3083 * IPython/Magic.py (magic_run): Added new -d option, to run
3086 * IPython/Magic.py (magic_run): Added new -d option, to run
3084 scripts under the control of the python pdb debugger. Note that
3087 scripts under the control of the python pdb debugger. Note that
3085 this required changing the %prun option -d to -D, to avoid a clash
3088 this required changing the %prun option -d to -D, to avoid a clash
3086 (since %run must pass options to %prun, and getopt is too dumb to
3089 (since %run must pass options to %prun, and getopt is too dumb to
3087 handle options with string values with embedded spaces). Thanks
3090 handle options with string values with embedded spaces). Thanks
3088 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3091 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3089 (magic_who_ls): added type matching to %who and %whos, so that one
3092 (magic_who_ls): added type matching to %who and %whos, so that one
3090 can filter their output to only include variables of certain
3093 can filter their output to only include variables of certain
3091 types. Another suggestion by Matthew.
3094 types. Another suggestion by Matthew.
3092 (magic_whos): Added memory summaries in kb and Mb for arrays.
3095 (magic_whos): Added memory summaries in kb and Mb for arrays.
3093 (magic_who): Improve formatting (break lines every 9 vars).
3096 (magic_who): Improve formatting (break lines every 9 vars).
3094
3097
3095 2004-11-28 Fernando Perez <fperez@colorado.edu>
3098 2004-11-28 Fernando Perez <fperez@colorado.edu>
3096
3099
3097 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3100 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3098 cache when empty lines were present.
3101 cache when empty lines were present.
3099
3102
3100 2004-11-24 Fernando Perez <fperez@colorado.edu>
3103 2004-11-24 Fernando Perez <fperez@colorado.edu>
3101
3104
3102 * IPython/usage.py (__doc__): document the re-activated threading
3105 * IPython/usage.py (__doc__): document the re-activated threading
3103 options for WX and GTK.
3106 options for WX and GTK.
3104
3107
3105 2004-11-23 Fernando Perez <fperez@colorado.edu>
3108 2004-11-23 Fernando Perez <fperez@colorado.edu>
3106
3109
3107 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3110 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3108 the -wthread and -gthread options, along with a new -tk one to try
3111 the -wthread and -gthread options, along with a new -tk one to try
3109 and coordinate Tk threading with wx/gtk. The tk support is very
3112 and coordinate Tk threading with wx/gtk. The tk support is very
3110 platform dependent, since it seems to require Tcl and Tk to be
3113 platform dependent, since it seems to require Tcl and Tk to be
3111 built with threads (Fedora1/2 appears NOT to have it, but in
3114 built with threads (Fedora1/2 appears NOT to have it, but in
3112 Prabhu's Debian boxes it works OK). But even with some Tk
3115 Prabhu's Debian boxes it works OK). But even with some Tk
3113 limitations, this is a great improvement.
3116 limitations, this is a great improvement.
3114
3117
3115 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3118 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3116 info in user prompts. Patch by Prabhu.
3119 info in user prompts. Patch by Prabhu.
3117
3120
3118 2004-11-18 Fernando Perez <fperez@colorado.edu>
3121 2004-11-18 Fernando Perez <fperez@colorado.edu>
3119
3122
3120 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3123 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3121 EOFErrors and bail, to avoid infinite loops if a non-terminating
3124 EOFErrors and bail, to avoid infinite loops if a non-terminating
3122 file is fed into ipython. Patch submitted in issue 19 by user,
3125 file is fed into ipython. Patch submitted in issue 19 by user,
3123 many thanks.
3126 many thanks.
3124
3127
3125 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3128 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3126 autoquote/parens in continuation prompts, which can cause lots of
3129 autoquote/parens in continuation prompts, which can cause lots of
3127 problems. Closes roundup issue 20.
3130 problems. Closes roundup issue 20.
3128
3131
3129 2004-11-17 Fernando Perez <fperez@colorado.edu>
3132 2004-11-17 Fernando Perez <fperez@colorado.edu>
3130
3133
3131 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3134 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3132 reported as debian bug #280505. I'm not sure my local changelog
3135 reported as debian bug #280505. I'm not sure my local changelog
3133 entry has the proper debian format (Jack?).
3136 entry has the proper debian format (Jack?).
3134
3137
3135 2004-11-08 *** Released version 0.6.4
3138 2004-11-08 *** Released version 0.6.4
3136
3139
3137 2004-11-08 Fernando Perez <fperez@colorado.edu>
3140 2004-11-08 Fernando Perez <fperez@colorado.edu>
3138
3141
3139 * IPython/iplib.py (init_readline): Fix exit message for Windows
3142 * IPython/iplib.py (init_readline): Fix exit message for Windows
3140 when readline is active. Thanks to a report by Eric Jones
3143 when readline is active. Thanks to a report by Eric Jones
3141 <eric-AT-enthought.com>.
3144 <eric-AT-enthought.com>.
3142
3145
3143 2004-11-07 Fernando Perez <fperez@colorado.edu>
3146 2004-11-07 Fernando Perez <fperez@colorado.edu>
3144
3147
3145 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3148 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3146 sometimes seen by win2k/cygwin users.
3149 sometimes seen by win2k/cygwin users.
3147
3150
3148 2004-11-06 Fernando Perez <fperez@colorado.edu>
3151 2004-11-06 Fernando Perez <fperez@colorado.edu>
3149
3152
3150 * IPython/iplib.py (interact): Change the handling of %Exit from
3153 * IPython/iplib.py (interact): Change the handling of %Exit from
3151 trying to propagate a SystemExit to an internal ipython flag.
3154 trying to propagate a SystemExit to an internal ipython flag.
3152 This is less elegant than using Python's exception mechanism, but
3155 This is less elegant than using Python's exception mechanism, but
3153 I can't get that to work reliably with threads, so under -pylab
3156 I can't get that to work reliably with threads, so under -pylab
3154 %Exit was hanging IPython. Cross-thread exception handling is
3157 %Exit was hanging IPython. Cross-thread exception handling is
3155 really a bitch. Thaks to a bug report by Stephen Walton
3158 really a bitch. Thaks to a bug report by Stephen Walton
3156 <stephen.walton-AT-csun.edu>.
3159 <stephen.walton-AT-csun.edu>.
3157
3160
3158 2004-11-04 Fernando Perez <fperez@colorado.edu>
3161 2004-11-04 Fernando Perez <fperez@colorado.edu>
3159
3162
3160 * IPython/iplib.py (raw_input_original): store a pointer to the
3163 * IPython/iplib.py (raw_input_original): store a pointer to the
3161 true raw_input to harden against code which can modify it
3164 true raw_input to harden against code which can modify it
3162 (wx.py.PyShell does this and would otherwise crash ipython).
3165 (wx.py.PyShell does this and would otherwise crash ipython).
3163 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3166 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3164
3167
3165 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3168 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3166 Ctrl-C problem, which does not mess up the input line.
3169 Ctrl-C problem, which does not mess up the input line.
3167
3170
3168 2004-11-03 Fernando Perez <fperez@colorado.edu>
3171 2004-11-03 Fernando Perez <fperez@colorado.edu>
3169
3172
3170 * IPython/Release.py: Changed licensing to BSD, in all files.
3173 * IPython/Release.py: Changed licensing to BSD, in all files.
3171 (name): lowercase name for tarball/RPM release.
3174 (name): lowercase name for tarball/RPM release.
3172
3175
3173 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3176 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3174 use throughout ipython.
3177 use throughout ipython.
3175
3178
3176 * IPython/Magic.py (Magic._ofind): Switch to using the new
3179 * IPython/Magic.py (Magic._ofind): Switch to using the new
3177 OInspect.getdoc() function.
3180 OInspect.getdoc() function.
3178
3181
3179 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3182 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3180 of the line currently being canceled via Ctrl-C. It's extremely
3183 of the line currently being canceled via Ctrl-C. It's extremely
3181 ugly, but I don't know how to do it better (the problem is one of
3184 ugly, but I don't know how to do it better (the problem is one of
3182 handling cross-thread exceptions).
3185 handling cross-thread exceptions).
3183
3186
3184 2004-10-28 Fernando Perez <fperez@colorado.edu>
3187 2004-10-28 Fernando Perez <fperez@colorado.edu>
3185
3188
3186 * IPython/Shell.py (signal_handler): add signal handlers to trap
3189 * IPython/Shell.py (signal_handler): add signal handlers to trap
3187 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3190 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3188 report by Francesc Alted.
3191 report by Francesc Alted.
3189
3192
3190 2004-10-21 Fernando Perez <fperez@colorado.edu>
3193 2004-10-21 Fernando Perez <fperez@colorado.edu>
3191
3194
3192 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3195 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3193 to % for pysh syntax extensions.
3196 to % for pysh syntax extensions.
3194
3197
3195 2004-10-09 Fernando Perez <fperez@colorado.edu>
3198 2004-10-09 Fernando Perez <fperez@colorado.edu>
3196
3199
3197 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3200 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3198 arrays to print a more useful summary, without calling str(arr).
3201 arrays to print a more useful summary, without calling str(arr).
3199 This avoids the problem of extremely lengthy computations which
3202 This avoids the problem of extremely lengthy computations which
3200 occur if arr is large, and appear to the user as a system lockup
3203 occur if arr is large, and appear to the user as a system lockup
3201 with 100% cpu activity. After a suggestion by Kristian Sandberg
3204 with 100% cpu activity. After a suggestion by Kristian Sandberg
3202 <Kristian.Sandberg@colorado.edu>.
3205 <Kristian.Sandberg@colorado.edu>.
3203 (Magic.__init__): fix bug in global magic escapes not being
3206 (Magic.__init__): fix bug in global magic escapes not being
3204 correctly set.
3207 correctly set.
3205
3208
3206 2004-10-08 Fernando Perez <fperez@colorado.edu>
3209 2004-10-08 Fernando Perez <fperez@colorado.edu>
3207
3210
3208 * IPython/Magic.py (__license__): change to absolute imports of
3211 * IPython/Magic.py (__license__): change to absolute imports of
3209 ipython's own internal packages, to start adapting to the absolute
3212 ipython's own internal packages, to start adapting to the absolute
3210 import requirement of PEP-328.
3213 import requirement of PEP-328.
3211
3214
3212 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3215 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3213 files, and standardize author/license marks through the Release
3216 files, and standardize author/license marks through the Release
3214 module instead of having per/file stuff (except for files with
3217 module instead of having per/file stuff (except for files with
3215 particular licenses, like the MIT/PSF-licensed codes).
3218 particular licenses, like the MIT/PSF-licensed codes).
3216
3219
3217 * IPython/Debugger.py: remove dead code for python 2.1
3220 * IPython/Debugger.py: remove dead code for python 2.1
3218
3221
3219 2004-10-04 Fernando Perez <fperez@colorado.edu>
3222 2004-10-04 Fernando Perez <fperez@colorado.edu>
3220
3223
3221 * IPython/iplib.py (ipmagic): New function for accessing magics
3224 * IPython/iplib.py (ipmagic): New function for accessing magics
3222 via a normal python function call.
3225 via a normal python function call.
3223
3226
3224 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3227 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3225 from '@' to '%', to accomodate the new @decorator syntax of python
3228 from '@' to '%', to accomodate the new @decorator syntax of python
3226 2.4.
3229 2.4.
3227
3230
3228 2004-09-29 Fernando Perez <fperez@colorado.edu>
3231 2004-09-29 Fernando Perez <fperez@colorado.edu>
3229
3232
3230 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3233 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3231 matplotlib.use to prevent running scripts which try to switch
3234 matplotlib.use to prevent running scripts which try to switch
3232 interactive backends from within ipython. This will just crash
3235 interactive backends from within ipython. This will just crash
3233 the python interpreter, so we can't allow it (but a detailed error
3236 the python interpreter, so we can't allow it (but a detailed error
3234 is given to the user).
3237 is given to the user).
3235
3238
3236 2004-09-28 Fernando Perez <fperez@colorado.edu>
3239 2004-09-28 Fernando Perez <fperez@colorado.edu>
3237
3240
3238 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3241 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3239 matplotlib-related fixes so that using @run with non-matplotlib
3242 matplotlib-related fixes so that using @run with non-matplotlib
3240 scripts doesn't pop up spurious plot windows. This requires
3243 scripts doesn't pop up spurious plot windows. This requires
3241 matplotlib >= 0.63, where I had to make some changes as well.
3244 matplotlib >= 0.63, where I had to make some changes as well.
3242
3245
3243 * IPython/ipmaker.py (make_IPython): update version requirement to
3246 * IPython/ipmaker.py (make_IPython): update version requirement to
3244 python 2.2.
3247 python 2.2.
3245
3248
3246 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3249 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3247 banner arg for embedded customization.
3250 banner arg for embedded customization.
3248
3251
3249 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3252 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3250 explicit uses of __IP as the IPython's instance name. Now things
3253 explicit uses of __IP as the IPython's instance name. Now things
3251 are properly handled via the shell.name value. The actual code
3254 are properly handled via the shell.name value. The actual code
3252 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3255 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3253 is much better than before. I'll clean things completely when the
3256 is much better than before. I'll clean things completely when the
3254 magic stuff gets a real overhaul.
3257 magic stuff gets a real overhaul.
3255
3258
3256 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3259 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3257 minor changes to debian dir.
3260 minor changes to debian dir.
3258
3261
3259 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3262 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3260 pointer to the shell itself in the interactive namespace even when
3263 pointer to the shell itself in the interactive namespace even when
3261 a user-supplied dict is provided. This is needed for embedding
3264 a user-supplied dict is provided. This is needed for embedding
3262 purposes (found by tests with Michel Sanner).
3265 purposes (found by tests with Michel Sanner).
3263
3266
3264 2004-09-27 Fernando Perez <fperez@colorado.edu>
3267 2004-09-27 Fernando Perez <fperez@colorado.edu>
3265
3268
3266 * IPython/UserConfig/ipythonrc: remove []{} from
3269 * IPython/UserConfig/ipythonrc: remove []{} from
3267 readline_remove_delims, so that things like [modname.<TAB> do
3270 readline_remove_delims, so that things like [modname.<TAB> do
3268 proper completion. This disables [].TAB, but that's a less common
3271 proper completion. This disables [].TAB, but that's a less common
3269 case than module names in list comprehensions, for example.
3272 case than module names in list comprehensions, for example.
3270 Thanks to a report by Andrea Riciputi.
3273 Thanks to a report by Andrea Riciputi.
3271
3274
3272 2004-09-09 Fernando Perez <fperez@colorado.edu>
3275 2004-09-09 Fernando Perez <fperez@colorado.edu>
3273
3276
3274 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3277 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3275 blocking problems in win32 and osx. Fix by John.
3278 blocking problems in win32 and osx. Fix by John.
3276
3279
3277 2004-09-08 Fernando Perez <fperez@colorado.edu>
3280 2004-09-08 Fernando Perez <fperez@colorado.edu>
3278
3281
3279 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3282 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3280 for Win32 and OSX. Fix by John Hunter.
3283 for Win32 and OSX. Fix by John Hunter.
3281
3284
3282 2004-08-30 *** Released version 0.6.3
3285 2004-08-30 *** Released version 0.6.3
3283
3286
3284 2004-08-30 Fernando Perez <fperez@colorado.edu>
3287 2004-08-30 Fernando Perez <fperez@colorado.edu>
3285
3288
3286 * setup.py (isfile): Add manpages to list of dependent files to be
3289 * setup.py (isfile): Add manpages to list of dependent files to be
3287 updated.
3290 updated.
3288
3291
3289 2004-08-27 Fernando Perez <fperez@colorado.edu>
3292 2004-08-27 Fernando Perez <fperez@colorado.edu>
3290
3293
3291 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3294 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3292 for now. They don't really work with standalone WX/GTK code
3295 for now. They don't really work with standalone WX/GTK code
3293 (though matplotlib IS working fine with both of those backends).
3296 (though matplotlib IS working fine with both of those backends).
3294 This will neeed much more testing. I disabled most things with
3297 This will neeed much more testing. I disabled most things with
3295 comments, so turning it back on later should be pretty easy.
3298 comments, so turning it back on later should be pretty easy.
3296
3299
3297 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3300 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3298 autocalling of expressions like r'foo', by modifying the line
3301 autocalling of expressions like r'foo', by modifying the line
3299 split regexp. Closes
3302 split regexp. Closes
3300 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3303 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3301 Riley <ipythonbugs-AT-sabi.net>.
3304 Riley <ipythonbugs-AT-sabi.net>.
3302 (InteractiveShell.mainloop): honor --nobanner with banner
3305 (InteractiveShell.mainloop): honor --nobanner with banner
3303 extensions.
3306 extensions.
3304
3307
3305 * IPython/Shell.py: Significant refactoring of all classes, so
3308 * IPython/Shell.py: Significant refactoring of all classes, so
3306 that we can really support ALL matplotlib backends and threading
3309 that we can really support ALL matplotlib backends and threading
3307 models (John spotted a bug with Tk which required this). Now we
3310 models (John spotted a bug with Tk which required this). Now we
3308 should support single-threaded, WX-threads and GTK-threads, both
3311 should support single-threaded, WX-threads and GTK-threads, both
3309 for generic code and for matplotlib.
3312 for generic code and for matplotlib.
3310
3313
3311 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3314 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3312 -pylab, to simplify things for users. Will also remove the pylab
3315 -pylab, to simplify things for users. Will also remove the pylab
3313 profile, since now all of matplotlib configuration is directly
3316 profile, since now all of matplotlib configuration is directly
3314 handled here. This also reduces startup time.
3317 handled here. This also reduces startup time.
3315
3318
3316 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3319 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3317 shell wasn't being correctly called. Also in IPShellWX.
3320 shell wasn't being correctly called. Also in IPShellWX.
3318
3321
3319 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3322 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3320 fine-tune banner.
3323 fine-tune banner.
3321
3324
3322 * IPython/numutils.py (spike): Deprecate these spike functions,
3325 * IPython/numutils.py (spike): Deprecate these spike functions,
3323 delete (long deprecated) gnuplot_exec handler.
3326 delete (long deprecated) gnuplot_exec handler.
3324
3327
3325 2004-08-26 Fernando Perez <fperez@colorado.edu>
3328 2004-08-26 Fernando Perez <fperez@colorado.edu>
3326
3329
3327 * ipython.1: Update for threading options, plus some others which
3330 * ipython.1: Update for threading options, plus some others which
3328 were missing.
3331 were missing.
3329
3332
3330 * IPython/ipmaker.py (__call__): Added -wthread option for
3333 * IPython/ipmaker.py (__call__): Added -wthread option for
3331 wxpython thread handling. Make sure threading options are only
3334 wxpython thread handling. Make sure threading options are only
3332 valid at the command line.
3335 valid at the command line.
3333
3336
3334 * scripts/ipython: moved shell selection into a factory function
3337 * scripts/ipython: moved shell selection into a factory function
3335 in Shell.py, to keep the starter script to a minimum.
3338 in Shell.py, to keep the starter script to a minimum.
3336
3339
3337 2004-08-25 Fernando Perez <fperez@colorado.edu>
3340 2004-08-25 Fernando Perez <fperez@colorado.edu>
3338
3341
3339 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3342 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3340 John. Along with some recent changes he made to matplotlib, the
3343 John. Along with some recent changes he made to matplotlib, the
3341 next versions of both systems should work very well together.
3344 next versions of both systems should work very well together.
3342
3345
3343 2004-08-24 Fernando Perez <fperez@colorado.edu>
3346 2004-08-24 Fernando Perez <fperez@colorado.edu>
3344
3347
3345 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3348 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3346 tried to switch the profiling to using hotshot, but I'm getting
3349 tried to switch the profiling to using hotshot, but I'm getting
3347 strange errors from prof.runctx() there. I may be misreading the
3350 strange errors from prof.runctx() there. I may be misreading the
3348 docs, but it looks weird. For now the profiling code will
3351 docs, but it looks weird. For now the profiling code will
3349 continue to use the standard profiler.
3352 continue to use the standard profiler.
3350
3353
3351 2004-08-23 Fernando Perez <fperez@colorado.edu>
3354 2004-08-23 Fernando Perez <fperez@colorado.edu>
3352
3355
3353 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3356 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3354 threaded shell, by John Hunter. It's not quite ready yet, but
3357 threaded shell, by John Hunter. It's not quite ready yet, but
3355 close.
3358 close.
3356
3359
3357 2004-08-22 Fernando Perez <fperez@colorado.edu>
3360 2004-08-22 Fernando Perez <fperez@colorado.edu>
3358
3361
3359 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3362 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3360 in Magic and ultraTB.
3363 in Magic and ultraTB.
3361
3364
3362 * ipython.1: document threading options in manpage.
3365 * ipython.1: document threading options in manpage.
3363
3366
3364 * scripts/ipython: Changed name of -thread option to -gthread,
3367 * scripts/ipython: Changed name of -thread option to -gthread,
3365 since this is GTK specific. I want to leave the door open for a
3368 since this is GTK specific. I want to leave the door open for a
3366 -wthread option for WX, which will most likely be necessary. This
3369 -wthread option for WX, which will most likely be necessary. This
3367 change affects usage and ipmaker as well.
3370 change affects usage and ipmaker as well.
3368
3371
3369 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3372 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3370 handle the matplotlib shell issues. Code by John Hunter
3373 handle the matplotlib shell issues. Code by John Hunter
3371 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3374 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3372 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3375 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3373 broken (and disabled for end users) for now, but it puts the
3376 broken (and disabled for end users) for now, but it puts the
3374 infrastructure in place.
3377 infrastructure in place.
3375
3378
3376 2004-08-21 Fernando Perez <fperez@colorado.edu>
3379 2004-08-21 Fernando Perez <fperez@colorado.edu>
3377
3380
3378 * ipythonrc-pylab: Add matplotlib support.
3381 * ipythonrc-pylab: Add matplotlib support.
3379
3382
3380 * matplotlib_config.py: new files for matplotlib support, part of
3383 * matplotlib_config.py: new files for matplotlib support, part of
3381 the pylab profile.
3384 the pylab profile.
3382
3385
3383 * IPython/usage.py (__doc__): documented the threading options.
3386 * IPython/usage.py (__doc__): documented the threading options.
3384
3387
3385 2004-08-20 Fernando Perez <fperez@colorado.edu>
3388 2004-08-20 Fernando Perez <fperez@colorado.edu>
3386
3389
3387 * ipython: Modified the main calling routine to handle the -thread
3390 * ipython: Modified the main calling routine to handle the -thread
3388 and -mpthread options. This needs to be done as a top-level hack,
3391 and -mpthread options. This needs to be done as a top-level hack,
3389 because it determines which class to instantiate for IPython
3392 because it determines which class to instantiate for IPython
3390 itself.
3393 itself.
3391
3394
3392 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3395 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3393 classes to support multithreaded GTK operation without blocking,
3396 classes to support multithreaded GTK operation without blocking,
3394 and matplotlib with all backends. This is a lot of still very
3397 and matplotlib with all backends. This is a lot of still very
3395 experimental code, and threads are tricky. So it may still have a
3398 experimental code, and threads are tricky. So it may still have a
3396 few rough edges... This code owes a lot to
3399 few rough edges... This code owes a lot to
3397 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3400 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3398 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3401 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3399 to John Hunter for all the matplotlib work.
3402 to John Hunter for all the matplotlib work.
3400
3403
3401 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3404 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3402 options for gtk thread and matplotlib support.
3405 options for gtk thread and matplotlib support.
3403
3406
3404 2004-08-16 Fernando Perez <fperez@colorado.edu>
3407 2004-08-16 Fernando Perez <fperez@colorado.edu>
3405
3408
3406 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3409 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3407 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3410 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3408 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3411 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3409
3412
3410 2004-08-11 Fernando Perez <fperez@colorado.edu>
3413 2004-08-11 Fernando Perez <fperez@colorado.edu>
3411
3414
3412 * setup.py (isfile): Fix build so documentation gets updated for
3415 * setup.py (isfile): Fix build so documentation gets updated for
3413 rpms (it was only done for .tgz builds).
3416 rpms (it was only done for .tgz builds).
3414
3417
3415 2004-08-10 Fernando Perez <fperez@colorado.edu>
3418 2004-08-10 Fernando Perez <fperez@colorado.edu>
3416
3419
3417 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3420 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3418
3421
3419 * iplib.py : Silence syntax error exceptions in tab-completion.
3422 * iplib.py : Silence syntax error exceptions in tab-completion.
3420
3423
3421 2004-08-05 Fernando Perez <fperez@colorado.edu>
3424 2004-08-05 Fernando Perez <fperez@colorado.edu>
3422
3425
3423 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3426 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3424 'color off' mark for continuation prompts. This was causing long
3427 'color off' mark for continuation prompts. This was causing long
3425 continuation lines to mis-wrap.
3428 continuation lines to mis-wrap.
3426
3429
3427 2004-08-01 Fernando Perez <fperez@colorado.edu>
3430 2004-08-01 Fernando Perez <fperez@colorado.edu>
3428
3431
3429 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3432 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3430 for building ipython to be a parameter. All this is necessary
3433 for building ipython to be a parameter. All this is necessary
3431 right now to have a multithreaded version, but this insane
3434 right now to have a multithreaded version, but this insane
3432 non-design will be cleaned up soon. For now, it's a hack that
3435 non-design will be cleaned up soon. For now, it's a hack that
3433 works.
3436 works.
3434
3437
3435 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3438 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3436 args in various places. No bugs so far, but it's a dangerous
3439 args in various places. No bugs so far, but it's a dangerous
3437 practice.
3440 practice.
3438
3441
3439 2004-07-31 Fernando Perez <fperez@colorado.edu>
3442 2004-07-31 Fernando Perez <fperez@colorado.edu>
3440
3443
3441 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3444 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3442 fix completion of files with dots in their names under most
3445 fix completion of files with dots in their names under most
3443 profiles (pysh was OK because the completion order is different).
3446 profiles (pysh was OK because the completion order is different).
3444
3447
3445 2004-07-27 Fernando Perez <fperez@colorado.edu>
3448 2004-07-27 Fernando Perez <fperez@colorado.edu>
3446
3449
3447 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3450 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3448 keywords manually, b/c the one in keyword.py was removed in python
3451 keywords manually, b/c the one in keyword.py was removed in python
3449 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3452 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3450 This is NOT a bug under python 2.3 and earlier.
3453 This is NOT a bug under python 2.3 and earlier.
3451
3454
3452 2004-07-26 Fernando Perez <fperez@colorado.edu>
3455 2004-07-26 Fernando Perez <fperez@colorado.edu>
3453
3456
3454 * IPython/ultraTB.py (VerboseTB.text): Add another
3457 * IPython/ultraTB.py (VerboseTB.text): Add another
3455 linecache.checkcache() call to try to prevent inspect.py from
3458 linecache.checkcache() call to try to prevent inspect.py from
3456 crashing under python 2.3. I think this fixes
3459 crashing under python 2.3. I think this fixes
3457 http://www.scipy.net/roundup/ipython/issue17.
3460 http://www.scipy.net/roundup/ipython/issue17.
3458
3461
3459 2004-07-26 *** Released version 0.6.2
3462 2004-07-26 *** Released version 0.6.2
3460
3463
3461 2004-07-26 Fernando Perez <fperez@colorado.edu>
3464 2004-07-26 Fernando Perez <fperez@colorado.edu>
3462
3465
3463 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3466 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3464 fail for any number.
3467 fail for any number.
3465 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3468 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3466 empty bookmarks.
3469 empty bookmarks.
3467
3470
3468 2004-07-26 *** Released version 0.6.1
3471 2004-07-26 *** Released version 0.6.1
3469
3472
3470 2004-07-26 Fernando Perez <fperez@colorado.edu>
3473 2004-07-26 Fernando Perez <fperez@colorado.edu>
3471
3474
3472 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3475 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3473
3476
3474 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3477 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3475 escaping '()[]{}' in filenames.
3478 escaping '()[]{}' in filenames.
3476
3479
3477 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3480 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3478 Python 2.2 users who lack a proper shlex.split.
3481 Python 2.2 users who lack a proper shlex.split.
3479
3482
3480 2004-07-19 Fernando Perez <fperez@colorado.edu>
3483 2004-07-19 Fernando Perez <fperez@colorado.edu>
3481
3484
3482 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3485 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3483 for reading readline's init file. I follow the normal chain:
3486 for reading readline's init file. I follow the normal chain:
3484 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3487 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3485 report by Mike Heeter. This closes
3488 report by Mike Heeter. This closes
3486 http://www.scipy.net/roundup/ipython/issue16.
3489 http://www.scipy.net/roundup/ipython/issue16.
3487
3490
3488 2004-07-18 Fernando Perez <fperez@colorado.edu>
3491 2004-07-18 Fernando Perez <fperez@colorado.edu>
3489
3492
3490 * IPython/iplib.py (__init__): Add better handling of '\' under
3493 * IPython/iplib.py (__init__): Add better handling of '\' under
3491 Win32 for filenames. After a patch by Ville.
3494 Win32 for filenames. After a patch by Ville.
3492
3495
3493 2004-07-17 Fernando Perez <fperez@colorado.edu>
3496 2004-07-17 Fernando Perez <fperez@colorado.edu>
3494
3497
3495 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3498 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3496 autocalling would be triggered for 'foo is bar' if foo is
3499 autocalling would be triggered for 'foo is bar' if foo is
3497 callable. I also cleaned up the autocall detection code to use a
3500 callable. I also cleaned up the autocall detection code to use a
3498 regexp, which is faster. Bug reported by Alexander Schmolck.
3501 regexp, which is faster. Bug reported by Alexander Schmolck.
3499
3502
3500 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3503 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3501 '?' in them would confuse the help system. Reported by Alex
3504 '?' in them would confuse the help system. Reported by Alex
3502 Schmolck.
3505 Schmolck.
3503
3506
3504 2004-07-16 Fernando Perez <fperez@colorado.edu>
3507 2004-07-16 Fernando Perez <fperez@colorado.edu>
3505
3508
3506 * IPython/GnuplotInteractive.py (__all__): added plot2.
3509 * IPython/GnuplotInteractive.py (__all__): added plot2.
3507
3510
3508 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3511 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3509 plotting dictionaries, lists or tuples of 1d arrays.
3512 plotting dictionaries, lists or tuples of 1d arrays.
3510
3513
3511 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3514 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3512 optimizations.
3515 optimizations.
3513
3516
3514 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3517 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3515 the information which was there from Janko's original IPP code:
3518 the information which was there from Janko's original IPP code:
3516
3519
3517 03.05.99 20:53 porto.ifm.uni-kiel.de
3520 03.05.99 20:53 porto.ifm.uni-kiel.de
3518 --Started changelog.
3521 --Started changelog.
3519 --make clear do what it say it does
3522 --make clear do what it say it does
3520 --added pretty output of lines from inputcache
3523 --added pretty output of lines from inputcache
3521 --Made Logger a mixin class, simplifies handling of switches
3524 --Made Logger a mixin class, simplifies handling of switches
3522 --Added own completer class. .string<TAB> expands to last history
3525 --Added own completer class. .string<TAB> expands to last history
3523 line which starts with string. The new expansion is also present
3526 line which starts with string. The new expansion is also present
3524 with Ctrl-r from the readline library. But this shows, who this
3527 with Ctrl-r from the readline library. But this shows, who this
3525 can be done for other cases.
3528 can be done for other cases.
3526 --Added convention that all shell functions should accept a
3529 --Added convention that all shell functions should accept a
3527 parameter_string This opens the door for different behaviour for
3530 parameter_string This opens the door for different behaviour for
3528 each function. @cd is a good example of this.
3531 each function. @cd is a good example of this.
3529
3532
3530 04.05.99 12:12 porto.ifm.uni-kiel.de
3533 04.05.99 12:12 porto.ifm.uni-kiel.de
3531 --added logfile rotation
3534 --added logfile rotation
3532 --added new mainloop method which freezes first the namespace
3535 --added new mainloop method which freezes first the namespace
3533
3536
3534 07.05.99 21:24 porto.ifm.uni-kiel.de
3537 07.05.99 21:24 porto.ifm.uni-kiel.de
3535 --added the docreader classes. Now there is a help system.
3538 --added the docreader classes. Now there is a help system.
3536 -This is only a first try. Currently it's not easy to put new
3539 -This is only a first try. Currently it's not easy to put new
3537 stuff in the indices. But this is the way to go. Info would be
3540 stuff in the indices. But this is the way to go. Info would be
3538 better, but HTML is every where and not everybody has an info
3541 better, but HTML is every where and not everybody has an info
3539 system installed and it's not so easy to change html-docs to info.
3542 system installed and it's not so easy to change html-docs to info.
3540 --added global logfile option
3543 --added global logfile option
3541 --there is now a hook for object inspection method pinfo needs to
3544 --there is now a hook for object inspection method pinfo needs to
3542 be provided for this. Can be reached by two '??'.
3545 be provided for this. Can be reached by two '??'.
3543
3546
3544 08.05.99 20:51 porto.ifm.uni-kiel.de
3547 08.05.99 20:51 porto.ifm.uni-kiel.de
3545 --added a README
3548 --added a README
3546 --bug in rc file. Something has changed so functions in the rc
3549 --bug in rc file. Something has changed so functions in the rc
3547 file need to reference the shell and not self. Not clear if it's a
3550 file need to reference the shell and not self. Not clear if it's a
3548 bug or feature.
3551 bug or feature.
3549 --changed rc file for new behavior
3552 --changed rc file for new behavior
3550
3553
3551 2004-07-15 Fernando Perez <fperez@colorado.edu>
3554 2004-07-15 Fernando Perez <fperez@colorado.edu>
3552
3555
3553 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3556 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3554 cache was falling out of sync in bizarre manners when multi-line
3557 cache was falling out of sync in bizarre manners when multi-line
3555 input was present. Minor optimizations and cleanup.
3558 input was present. Minor optimizations and cleanup.
3556
3559
3557 (Logger): Remove old Changelog info for cleanup. This is the
3560 (Logger): Remove old Changelog info for cleanup. This is the
3558 information which was there from Janko's original code:
3561 information which was there from Janko's original code:
3559
3562
3560 Changes to Logger: - made the default log filename a parameter
3563 Changes to Logger: - made the default log filename a parameter
3561
3564
3562 - put a check for lines beginning with !@? in log(). Needed
3565 - put a check for lines beginning with !@? in log(). Needed
3563 (even if the handlers properly log their lines) for mid-session
3566 (even if the handlers properly log their lines) for mid-session
3564 logging activation to work properly. Without this, lines logged
3567 logging activation to work properly. Without this, lines logged
3565 in mid session, which get read from the cache, would end up
3568 in mid session, which get read from the cache, would end up
3566 'bare' (with !@? in the open) in the log. Now they are caught
3569 'bare' (with !@? in the open) in the log. Now they are caught
3567 and prepended with a #.
3570 and prepended with a #.
3568
3571
3569 * IPython/iplib.py (InteractiveShell.init_readline): added check
3572 * IPython/iplib.py (InteractiveShell.init_readline): added check
3570 in case MagicCompleter fails to be defined, so we don't crash.
3573 in case MagicCompleter fails to be defined, so we don't crash.
3571
3574
3572 2004-07-13 Fernando Perez <fperez@colorado.edu>
3575 2004-07-13 Fernando Perez <fperez@colorado.edu>
3573
3576
3574 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3577 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3575 of EPS if the requested filename ends in '.eps'.
3578 of EPS if the requested filename ends in '.eps'.
3576
3579
3577 2004-07-04 Fernando Perez <fperez@colorado.edu>
3580 2004-07-04 Fernando Perez <fperez@colorado.edu>
3578
3581
3579 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3582 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3580 escaping of quotes when calling the shell.
3583 escaping of quotes when calling the shell.
3581
3584
3582 2004-07-02 Fernando Perez <fperez@colorado.edu>
3585 2004-07-02 Fernando Perez <fperez@colorado.edu>
3583
3586
3584 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3587 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3585 gettext not working because we were clobbering '_'. Fixes
3588 gettext not working because we were clobbering '_'. Fixes
3586 http://www.scipy.net/roundup/ipython/issue6.
3589 http://www.scipy.net/roundup/ipython/issue6.
3587
3590
3588 2004-07-01 Fernando Perez <fperez@colorado.edu>
3591 2004-07-01 Fernando Perez <fperez@colorado.edu>
3589
3592
3590 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3593 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3591 into @cd. Patch by Ville.
3594 into @cd. Patch by Ville.
3592
3595
3593 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3596 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3594 new function to store things after ipmaker runs. Patch by Ville.
3597 new function to store things after ipmaker runs. Patch by Ville.
3595 Eventually this will go away once ipmaker is removed and the class
3598 Eventually this will go away once ipmaker is removed and the class
3596 gets cleaned up, but for now it's ok. Key functionality here is
3599 gets cleaned up, but for now it's ok. Key functionality here is
3597 the addition of the persistent storage mechanism, a dict for
3600 the addition of the persistent storage mechanism, a dict for
3598 keeping data across sessions (for now just bookmarks, but more can
3601 keeping data across sessions (for now just bookmarks, but more can
3599 be implemented later).
3602 be implemented later).
3600
3603
3601 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3604 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3602 persistent across sections. Patch by Ville, I modified it
3605 persistent across sections. Patch by Ville, I modified it
3603 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3606 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3604 added a '-l' option to list all bookmarks.
3607 added a '-l' option to list all bookmarks.
3605
3608
3606 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3609 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3607 center for cleanup. Registered with atexit.register(). I moved
3610 center for cleanup. Registered with atexit.register(). I moved
3608 here the old exit_cleanup(). After a patch by Ville.
3611 here the old exit_cleanup(). After a patch by Ville.
3609
3612
3610 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3613 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3611 characters in the hacked shlex_split for python 2.2.
3614 characters in the hacked shlex_split for python 2.2.
3612
3615
3613 * IPython/iplib.py (file_matches): more fixes to filenames with
3616 * IPython/iplib.py (file_matches): more fixes to filenames with
3614 whitespace in them. It's not perfect, but limitations in python's
3617 whitespace in them. It's not perfect, but limitations in python's
3615 readline make it impossible to go further.
3618 readline make it impossible to go further.
3616
3619
3617 2004-06-29 Fernando Perez <fperez@colorado.edu>
3620 2004-06-29 Fernando Perez <fperez@colorado.edu>
3618
3621
3619 * IPython/iplib.py (file_matches): escape whitespace correctly in
3622 * IPython/iplib.py (file_matches): escape whitespace correctly in
3620 filename completions. Bug reported by Ville.
3623 filename completions. Bug reported by Ville.
3621
3624
3622 2004-06-28 Fernando Perez <fperez@colorado.edu>
3625 2004-06-28 Fernando Perez <fperez@colorado.edu>
3623
3626
3624 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3627 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3625 the history file will be called 'history-PROFNAME' (or just
3628 the history file will be called 'history-PROFNAME' (or just
3626 'history' if no profile is loaded). I was getting annoyed at
3629 'history' if no profile is loaded). I was getting annoyed at
3627 getting my Numerical work history clobbered by pysh sessions.
3630 getting my Numerical work history clobbered by pysh sessions.
3628
3631
3629 * IPython/iplib.py (InteractiveShell.__init__): Internal
3632 * IPython/iplib.py (InteractiveShell.__init__): Internal
3630 getoutputerror() function so that we can honor the system_verbose
3633 getoutputerror() function so that we can honor the system_verbose
3631 flag for _all_ system calls. I also added escaping of #
3634 flag for _all_ system calls. I also added escaping of #
3632 characters here to avoid confusing Itpl.
3635 characters here to avoid confusing Itpl.
3633
3636
3634 * IPython/Magic.py (shlex_split): removed call to shell in
3637 * IPython/Magic.py (shlex_split): removed call to shell in
3635 parse_options and replaced it with shlex.split(). The annoying
3638 parse_options and replaced it with shlex.split(). The annoying
3636 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3639 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3637 to backport it from 2.3, with several frail hacks (the shlex
3640 to backport it from 2.3, with several frail hacks (the shlex
3638 module is rather limited in 2.2). Thanks to a suggestion by Ville
3641 module is rather limited in 2.2). Thanks to a suggestion by Ville
3639 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3642 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3640 problem.
3643 problem.
3641
3644
3642 (Magic.magic_system_verbose): new toggle to print the actual
3645 (Magic.magic_system_verbose): new toggle to print the actual
3643 system calls made by ipython. Mainly for debugging purposes.
3646 system calls made by ipython. Mainly for debugging purposes.
3644
3647
3645 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3648 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3646 doesn't support persistence. Reported (and fix suggested) by
3649 doesn't support persistence. Reported (and fix suggested) by
3647 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3650 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3648
3651
3649 2004-06-26 Fernando Perez <fperez@colorado.edu>
3652 2004-06-26 Fernando Perez <fperez@colorado.edu>
3650
3653
3651 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3654 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3652 continue prompts.
3655 continue prompts.
3653
3656
3654 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3657 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3655 function (basically a big docstring) and a few more things here to
3658 function (basically a big docstring) and a few more things here to
3656 speedup startup. pysh.py is now very lightweight. We want because
3659 speedup startup. pysh.py is now very lightweight. We want because
3657 it gets execfile'd, while InterpreterExec gets imported, so
3660 it gets execfile'd, while InterpreterExec gets imported, so
3658 byte-compilation saves time.
3661 byte-compilation saves time.
3659
3662
3660 2004-06-25 Fernando Perez <fperez@colorado.edu>
3663 2004-06-25 Fernando Perez <fperez@colorado.edu>
3661
3664
3662 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3665 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3663 -NUM', which was recently broken.
3666 -NUM', which was recently broken.
3664
3667
3665 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3668 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3666 in multi-line input (but not !!, which doesn't make sense there).
3669 in multi-line input (but not !!, which doesn't make sense there).
3667
3670
3668 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3671 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3669 It's just too useful, and people can turn it off in the less
3672 It's just too useful, and people can turn it off in the less
3670 common cases where it's a problem.
3673 common cases where it's a problem.
3671
3674
3672 2004-06-24 Fernando Perez <fperez@colorado.edu>
3675 2004-06-24 Fernando Perez <fperez@colorado.edu>
3673
3676
3674 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3677 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3675 special syntaxes (like alias calling) is now allied in multi-line
3678 special syntaxes (like alias calling) is now allied in multi-line
3676 input. This is still _very_ experimental, but it's necessary for
3679 input. This is still _very_ experimental, but it's necessary for
3677 efficient shell usage combining python looping syntax with system
3680 efficient shell usage combining python looping syntax with system
3678 calls. For now it's restricted to aliases, I don't think it
3681 calls. For now it's restricted to aliases, I don't think it
3679 really even makes sense to have this for magics.
3682 really even makes sense to have this for magics.
3680
3683
3681 2004-06-23 Fernando Perez <fperez@colorado.edu>
3684 2004-06-23 Fernando Perez <fperez@colorado.edu>
3682
3685
3683 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3686 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3684 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3687 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3685
3688
3686 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3689 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3687 extensions under Windows (after code sent by Gary Bishop). The
3690 extensions under Windows (after code sent by Gary Bishop). The
3688 extensions considered 'executable' are stored in IPython's rc
3691 extensions considered 'executable' are stored in IPython's rc
3689 structure as win_exec_ext.
3692 structure as win_exec_ext.
3690
3693
3691 * IPython/genutils.py (shell): new function, like system() but
3694 * IPython/genutils.py (shell): new function, like system() but
3692 without return value. Very useful for interactive shell work.
3695 without return value. Very useful for interactive shell work.
3693
3696
3694 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3697 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3695 delete aliases.
3698 delete aliases.
3696
3699
3697 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3700 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3698 sure that the alias table doesn't contain python keywords.
3701 sure that the alias table doesn't contain python keywords.
3699
3702
3700 2004-06-21 Fernando Perez <fperez@colorado.edu>
3703 2004-06-21 Fernando Perez <fperez@colorado.edu>
3701
3704
3702 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3705 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3703 non-existent items are found in $PATH. Reported by Thorsten.
3706 non-existent items are found in $PATH. Reported by Thorsten.
3704
3707
3705 2004-06-20 Fernando Perez <fperez@colorado.edu>
3708 2004-06-20 Fernando Perez <fperez@colorado.edu>
3706
3709
3707 * IPython/iplib.py (complete): modified the completer so that the
3710 * IPython/iplib.py (complete): modified the completer so that the
3708 order of priorities can be easily changed at runtime.
3711 order of priorities can be easily changed at runtime.
3709
3712
3710 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3713 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3711 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3714 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3712
3715
3713 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3716 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3714 expand Python variables prepended with $ in all system calls. The
3717 expand Python variables prepended with $ in all system calls. The
3715 same was done to InteractiveShell.handle_shell_escape. Now all
3718 same was done to InteractiveShell.handle_shell_escape. Now all
3716 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3719 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3717 expansion of python variables and expressions according to the
3720 expansion of python variables and expressions according to the
3718 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3721 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3719
3722
3720 Though PEP-215 has been rejected, a similar (but simpler) one
3723 Though PEP-215 has been rejected, a similar (but simpler) one
3721 seems like it will go into Python 2.4, PEP-292 -
3724 seems like it will go into Python 2.4, PEP-292 -
3722 http://www.python.org/peps/pep-0292.html.
3725 http://www.python.org/peps/pep-0292.html.
3723
3726
3724 I'll keep the full syntax of PEP-215, since IPython has since the
3727 I'll keep the full syntax of PEP-215, since IPython has since the
3725 start used Ka-Ping Yee's reference implementation discussed there
3728 start used Ka-Ping Yee's reference implementation discussed there
3726 (Itpl), and I actually like the powerful semantics it offers.
3729 (Itpl), and I actually like the powerful semantics it offers.
3727
3730
3728 In order to access normal shell variables, the $ has to be escaped
3731 In order to access normal shell variables, the $ has to be escaped
3729 via an extra $. For example:
3732 via an extra $. For example:
3730
3733
3731 In [7]: PATH='a python variable'
3734 In [7]: PATH='a python variable'
3732
3735
3733 In [8]: !echo $PATH
3736 In [8]: !echo $PATH
3734 a python variable
3737 a python variable
3735
3738
3736 In [9]: !echo $$PATH
3739 In [9]: !echo $$PATH
3737 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3740 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3738
3741
3739 (Magic.parse_options): escape $ so the shell doesn't evaluate
3742 (Magic.parse_options): escape $ so the shell doesn't evaluate
3740 things prematurely.
3743 things prematurely.
3741
3744
3742 * IPython/iplib.py (InteractiveShell.call_alias): added the
3745 * IPython/iplib.py (InteractiveShell.call_alias): added the
3743 ability for aliases to expand python variables via $.
3746 ability for aliases to expand python variables via $.
3744
3747
3745 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3748 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3746 system, now there's a @rehash/@rehashx pair of magics. These work
3749 system, now there's a @rehash/@rehashx pair of magics. These work
3747 like the csh rehash command, and can be invoked at any time. They
3750 like the csh rehash command, and can be invoked at any time. They
3748 build a table of aliases to everything in the user's $PATH
3751 build a table of aliases to everything in the user's $PATH
3749 (@rehash uses everything, @rehashx is slower but only adds
3752 (@rehash uses everything, @rehashx is slower but only adds
3750 executable files). With this, the pysh.py-based shell profile can
3753 executable files). With this, the pysh.py-based shell profile can
3751 now simply call rehash upon startup, and full access to all
3754 now simply call rehash upon startup, and full access to all
3752 programs in the user's path is obtained.
3755 programs in the user's path is obtained.
3753
3756
3754 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3757 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3755 functionality is now fully in place. I removed the old dynamic
3758 functionality is now fully in place. I removed the old dynamic
3756 code generation based approach, in favor of a much lighter one
3759 code generation based approach, in favor of a much lighter one
3757 based on a simple dict. The advantage is that this allows me to
3760 based on a simple dict. The advantage is that this allows me to
3758 now have thousands of aliases with negligible cost (unthinkable
3761 now have thousands of aliases with negligible cost (unthinkable
3759 with the old system).
3762 with the old system).
3760
3763
3761 2004-06-19 Fernando Perez <fperez@colorado.edu>
3764 2004-06-19 Fernando Perez <fperez@colorado.edu>
3762
3765
3763 * IPython/iplib.py (__init__): extended MagicCompleter class to
3766 * IPython/iplib.py (__init__): extended MagicCompleter class to
3764 also complete (last in priority) on user aliases.
3767 also complete (last in priority) on user aliases.
3765
3768
3766 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3769 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3767 call to eval.
3770 call to eval.
3768 (ItplNS.__init__): Added a new class which functions like Itpl,
3771 (ItplNS.__init__): Added a new class which functions like Itpl,
3769 but allows configuring the namespace for the evaluation to occur
3772 but allows configuring the namespace for the evaluation to occur
3770 in.
3773 in.
3771
3774
3772 2004-06-18 Fernando Perez <fperez@colorado.edu>
3775 2004-06-18 Fernando Perez <fperez@colorado.edu>
3773
3776
3774 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3777 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3775 better message when 'exit' or 'quit' are typed (a common newbie
3778 better message when 'exit' or 'quit' are typed (a common newbie
3776 confusion).
3779 confusion).
3777
3780
3778 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3781 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3779 check for Windows users.
3782 check for Windows users.
3780
3783
3781 * IPython/iplib.py (InteractiveShell.user_setup): removed
3784 * IPython/iplib.py (InteractiveShell.user_setup): removed
3782 disabling of colors for Windows. I'll test at runtime and issue a
3785 disabling of colors for Windows. I'll test at runtime and issue a
3783 warning if Gary's readline isn't found, as to nudge users to
3786 warning if Gary's readline isn't found, as to nudge users to
3784 download it.
3787 download it.
3785
3788
3786 2004-06-16 Fernando Perez <fperez@colorado.edu>
3789 2004-06-16 Fernando Perez <fperez@colorado.edu>
3787
3790
3788 * IPython/genutils.py (Stream.__init__): changed to print errors
3791 * IPython/genutils.py (Stream.__init__): changed to print errors
3789 to sys.stderr. I had a circular dependency here. Now it's
3792 to sys.stderr. I had a circular dependency here. Now it's
3790 possible to run ipython as IDLE's shell (consider this pre-alpha,
3793 possible to run ipython as IDLE's shell (consider this pre-alpha,
3791 since true stdout things end up in the starting terminal instead
3794 since true stdout things end up in the starting terminal instead
3792 of IDLE's out).
3795 of IDLE's out).
3793
3796
3794 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3797 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3795 users who haven't # updated their prompt_in2 definitions. Remove
3798 users who haven't # updated their prompt_in2 definitions. Remove
3796 eventually.
3799 eventually.
3797 (multiple_replace): added credit to original ASPN recipe.
3800 (multiple_replace): added credit to original ASPN recipe.
3798
3801
3799 2004-06-15 Fernando Perez <fperez@colorado.edu>
3802 2004-06-15 Fernando Perez <fperez@colorado.edu>
3800
3803
3801 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3804 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3802 list of auto-defined aliases.
3805 list of auto-defined aliases.
3803
3806
3804 2004-06-13 Fernando Perez <fperez@colorado.edu>
3807 2004-06-13 Fernando Perez <fperez@colorado.edu>
3805
3808
3806 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3809 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3807 install was really requested (so setup.py can be used for other
3810 install was really requested (so setup.py can be used for other
3808 things under Windows).
3811 things under Windows).
3809
3812
3810 2004-06-10 Fernando Perez <fperez@colorado.edu>
3813 2004-06-10 Fernando Perez <fperez@colorado.edu>
3811
3814
3812 * IPython/Logger.py (Logger.create_log): Manually remove any old
3815 * IPython/Logger.py (Logger.create_log): Manually remove any old
3813 backup, since os.remove may fail under Windows. Fixes bug
3816 backup, since os.remove may fail under Windows. Fixes bug
3814 reported by Thorsten.
3817 reported by Thorsten.
3815
3818
3816 2004-06-09 Fernando Perez <fperez@colorado.edu>
3819 2004-06-09 Fernando Perez <fperez@colorado.edu>
3817
3820
3818 * examples/example-embed.py: fixed all references to %n (replaced
3821 * examples/example-embed.py: fixed all references to %n (replaced
3819 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3822 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3820 for all examples and the manual as well.
3823 for all examples and the manual as well.
3821
3824
3822 2004-06-08 Fernando Perez <fperez@colorado.edu>
3825 2004-06-08 Fernando Perez <fperez@colorado.edu>
3823
3826
3824 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3827 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3825 alignment and color management. All 3 prompt subsystems now
3828 alignment and color management. All 3 prompt subsystems now
3826 inherit from BasePrompt.
3829 inherit from BasePrompt.
3827
3830
3828 * tools/release: updates for windows installer build and tag rpms
3831 * tools/release: updates for windows installer build and tag rpms
3829 with python version (since paths are fixed).
3832 with python version (since paths are fixed).
3830
3833
3831 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3834 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3832 which will become eventually obsolete. Also fixed the default
3835 which will become eventually obsolete. Also fixed the default
3833 prompt_in2 to use \D, so at least new users start with the correct
3836 prompt_in2 to use \D, so at least new users start with the correct
3834 defaults.
3837 defaults.
3835 WARNING: Users with existing ipythonrc files will need to apply
3838 WARNING: Users with existing ipythonrc files will need to apply
3836 this fix manually!
3839 this fix manually!
3837
3840
3838 * setup.py: make windows installer (.exe). This is finally the
3841 * setup.py: make windows installer (.exe). This is finally the
3839 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3842 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3840 which I hadn't included because it required Python 2.3 (or recent
3843 which I hadn't included because it required Python 2.3 (or recent
3841 distutils).
3844 distutils).
3842
3845
3843 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3846 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3844 usage of new '\D' escape.
3847 usage of new '\D' escape.
3845
3848
3846 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3849 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3847 lacks os.getuid())
3850 lacks os.getuid())
3848 (CachedOutput.set_colors): Added the ability to turn coloring
3851 (CachedOutput.set_colors): Added the ability to turn coloring
3849 on/off with @colors even for manually defined prompt colors. It
3852 on/off with @colors even for manually defined prompt colors. It
3850 uses a nasty global, but it works safely and via the generic color
3853 uses a nasty global, but it works safely and via the generic color
3851 handling mechanism.
3854 handling mechanism.
3852 (Prompt2.__init__): Introduced new escape '\D' for continuation
3855 (Prompt2.__init__): Introduced new escape '\D' for continuation
3853 prompts. It represents the counter ('\#') as dots.
3856 prompts. It represents the counter ('\#') as dots.
3854 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3857 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3855 need to update their ipythonrc files and replace '%n' with '\D' in
3858 need to update their ipythonrc files and replace '%n' with '\D' in
3856 their prompt_in2 settings everywhere. Sorry, but there's
3859 their prompt_in2 settings everywhere. Sorry, but there's
3857 otherwise no clean way to get all prompts to properly align. The
3860 otherwise no clean way to get all prompts to properly align. The
3858 ipythonrc shipped with IPython has been updated.
3861 ipythonrc shipped with IPython has been updated.
3859
3862
3860 2004-06-07 Fernando Perez <fperez@colorado.edu>
3863 2004-06-07 Fernando Perez <fperez@colorado.edu>
3861
3864
3862 * setup.py (isfile): Pass local_icons option to latex2html, so the
3865 * setup.py (isfile): Pass local_icons option to latex2html, so the
3863 resulting HTML file is self-contained. Thanks to
3866 resulting HTML file is self-contained. Thanks to
3864 dryice-AT-liu.com.cn for the tip.
3867 dryice-AT-liu.com.cn for the tip.
3865
3868
3866 * pysh.py: I created a new profile 'shell', which implements a
3869 * pysh.py: I created a new profile 'shell', which implements a
3867 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3870 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3868 system shell, nor will it become one anytime soon. It's mainly
3871 system shell, nor will it become one anytime soon. It's mainly
3869 meant to illustrate the use of the new flexible bash-like prompts.
3872 meant to illustrate the use of the new flexible bash-like prompts.
3870 I guess it could be used by hardy souls for true shell management,
3873 I guess it could be used by hardy souls for true shell management,
3871 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3874 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3872 profile. This uses the InterpreterExec extension provided by
3875 profile. This uses the InterpreterExec extension provided by
3873 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3876 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3874
3877
3875 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3878 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3876 auto-align itself with the length of the previous input prompt
3879 auto-align itself with the length of the previous input prompt
3877 (taking into account the invisible color escapes).
3880 (taking into account the invisible color escapes).
3878 (CachedOutput.__init__): Large restructuring of this class. Now
3881 (CachedOutput.__init__): Large restructuring of this class. Now
3879 all three prompts (primary1, primary2, output) are proper objects,
3882 all three prompts (primary1, primary2, output) are proper objects,
3880 managed by the 'parent' CachedOutput class. The code is still a
3883 managed by the 'parent' CachedOutput class. The code is still a
3881 bit hackish (all prompts share state via a pointer to the cache),
3884 bit hackish (all prompts share state via a pointer to the cache),
3882 but it's overall far cleaner than before.
3885 but it's overall far cleaner than before.
3883
3886
3884 * IPython/genutils.py (getoutputerror): modified to add verbose,
3887 * IPython/genutils.py (getoutputerror): modified to add verbose,
3885 debug and header options. This makes the interface of all getout*
3888 debug and header options. This makes the interface of all getout*
3886 functions uniform.
3889 functions uniform.
3887 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3890 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3888
3891
3889 * IPython/Magic.py (Magic.default_option): added a function to
3892 * IPython/Magic.py (Magic.default_option): added a function to
3890 allow registering default options for any magic command. This
3893 allow registering default options for any magic command. This
3891 makes it easy to have profiles which customize the magics globally
3894 makes it easy to have profiles which customize the magics globally
3892 for a certain use. The values set through this function are
3895 for a certain use. The values set through this function are
3893 picked up by the parse_options() method, which all magics should
3896 picked up by the parse_options() method, which all magics should
3894 use to parse their options.
3897 use to parse their options.
3895
3898
3896 * IPython/genutils.py (warn): modified the warnings framework to
3899 * IPython/genutils.py (warn): modified the warnings framework to
3897 use the Term I/O class. I'm trying to slowly unify all of
3900 use the Term I/O class. I'm trying to slowly unify all of
3898 IPython's I/O operations to pass through Term.
3901 IPython's I/O operations to pass through Term.
3899
3902
3900 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3903 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3901 the secondary prompt to correctly match the length of the primary
3904 the secondary prompt to correctly match the length of the primary
3902 one for any prompt. Now multi-line code will properly line up
3905 one for any prompt. Now multi-line code will properly line up
3903 even for path dependent prompts, such as the new ones available
3906 even for path dependent prompts, such as the new ones available
3904 via the prompt_specials.
3907 via the prompt_specials.
3905
3908
3906 2004-06-06 Fernando Perez <fperez@colorado.edu>
3909 2004-06-06 Fernando Perez <fperez@colorado.edu>
3907
3910
3908 * IPython/Prompts.py (prompt_specials): Added the ability to have
3911 * IPython/Prompts.py (prompt_specials): Added the ability to have
3909 bash-like special sequences in the prompts, which get
3912 bash-like special sequences in the prompts, which get
3910 automatically expanded. Things like hostname, current working
3913 automatically expanded. Things like hostname, current working
3911 directory and username are implemented already, but it's easy to
3914 directory and username are implemented already, but it's easy to
3912 add more in the future. Thanks to a patch by W.J. van der Laan
3915 add more in the future. Thanks to a patch by W.J. van der Laan
3913 <gnufnork-AT-hetdigitalegat.nl>
3916 <gnufnork-AT-hetdigitalegat.nl>
3914 (prompt_specials): Added color support for prompt strings, so
3917 (prompt_specials): Added color support for prompt strings, so
3915 users can define arbitrary color setups for their prompts.
3918 users can define arbitrary color setups for their prompts.
3916
3919
3917 2004-06-05 Fernando Perez <fperez@colorado.edu>
3920 2004-06-05 Fernando Perez <fperez@colorado.edu>
3918
3921
3919 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3922 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3920 code to load Gary Bishop's readline and configure it
3923 code to load Gary Bishop's readline and configure it
3921 automatically. Thanks to Gary for help on this.
3924 automatically. Thanks to Gary for help on this.
3922
3925
3923 2004-06-01 Fernando Perez <fperez@colorado.edu>
3926 2004-06-01 Fernando Perez <fperez@colorado.edu>
3924
3927
3925 * IPython/Logger.py (Logger.create_log): fix bug for logging
3928 * IPython/Logger.py (Logger.create_log): fix bug for logging
3926 with no filename (previous fix was incomplete).
3929 with no filename (previous fix was incomplete).
3927
3930
3928 2004-05-25 Fernando Perez <fperez@colorado.edu>
3931 2004-05-25 Fernando Perez <fperez@colorado.edu>
3929
3932
3930 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3933 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3931 parens would get passed to the shell.
3934 parens would get passed to the shell.
3932
3935
3933 2004-05-20 Fernando Perez <fperez@colorado.edu>
3936 2004-05-20 Fernando Perez <fperez@colorado.edu>
3934
3937
3935 * IPython/Magic.py (Magic.magic_prun): changed default profile
3938 * IPython/Magic.py (Magic.magic_prun): changed default profile
3936 sort order to 'time' (the more common profiling need).
3939 sort order to 'time' (the more common profiling need).
3937
3940
3938 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3941 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3939 so that source code shown is guaranteed in sync with the file on
3942 so that source code shown is guaranteed in sync with the file on
3940 disk (also changed in psource). Similar fix to the one for
3943 disk (also changed in psource). Similar fix to the one for
3941 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3944 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3942 <yann.ledu-AT-noos.fr>.
3945 <yann.ledu-AT-noos.fr>.
3943
3946
3944 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3947 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3945 with a single option would not be correctly parsed. Closes
3948 with a single option would not be correctly parsed. Closes
3946 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3949 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3947 introduced in 0.6.0 (on 2004-05-06).
3950 introduced in 0.6.0 (on 2004-05-06).
3948
3951
3949 2004-05-13 *** Released version 0.6.0
3952 2004-05-13 *** Released version 0.6.0
3950
3953
3951 2004-05-13 Fernando Perez <fperez@colorado.edu>
3954 2004-05-13 Fernando Perez <fperez@colorado.edu>
3952
3955
3953 * debian/: Added debian/ directory to CVS, so that debian support
3956 * debian/: Added debian/ directory to CVS, so that debian support
3954 is publicly accessible. The debian package is maintained by Jack
3957 is publicly accessible. The debian package is maintained by Jack
3955 Moffit <jack-AT-xiph.org>.
3958 Moffit <jack-AT-xiph.org>.
3956
3959
3957 * Documentation: included the notes about an ipython-based system
3960 * Documentation: included the notes about an ipython-based system
3958 shell (the hypothetical 'pysh') into the new_design.pdf document,
3961 shell (the hypothetical 'pysh') into the new_design.pdf document,
3959 so that these ideas get distributed to users along with the
3962 so that these ideas get distributed to users along with the
3960 official documentation.
3963 official documentation.
3961
3964
3962 2004-05-10 Fernando Perez <fperez@colorado.edu>
3965 2004-05-10 Fernando Perez <fperez@colorado.edu>
3963
3966
3964 * IPython/Logger.py (Logger.create_log): fix recently introduced
3967 * IPython/Logger.py (Logger.create_log): fix recently introduced
3965 bug (misindented line) where logstart would fail when not given an
3968 bug (misindented line) where logstart would fail when not given an
3966 explicit filename.
3969 explicit filename.
3967
3970
3968 2004-05-09 Fernando Perez <fperez@colorado.edu>
3971 2004-05-09 Fernando Perez <fperez@colorado.edu>
3969
3972
3970 * IPython/Magic.py (Magic.parse_options): skip system call when
3973 * IPython/Magic.py (Magic.parse_options): skip system call when
3971 there are no options to look for. Faster, cleaner for the common
3974 there are no options to look for. Faster, cleaner for the common
3972 case.
3975 case.
3973
3976
3974 * Documentation: many updates to the manual: describing Windows
3977 * Documentation: many updates to the manual: describing Windows
3975 support better, Gnuplot updates, credits, misc small stuff. Also
3978 support better, Gnuplot updates, credits, misc small stuff. Also
3976 updated the new_design doc a bit.
3979 updated the new_design doc a bit.
3977
3980
3978 2004-05-06 *** Released version 0.6.0.rc1
3981 2004-05-06 *** Released version 0.6.0.rc1
3979
3982
3980 2004-05-06 Fernando Perez <fperez@colorado.edu>
3983 2004-05-06 Fernando Perez <fperez@colorado.edu>
3981
3984
3982 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3985 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3983 operations to use the vastly more efficient list/''.join() method.
3986 operations to use the vastly more efficient list/''.join() method.
3984 (FormattedTB.text): Fix
3987 (FormattedTB.text): Fix
3985 http://www.scipy.net/roundup/ipython/issue12 - exception source
3988 http://www.scipy.net/roundup/ipython/issue12 - exception source
3986 extract not updated after reload. Thanks to Mike Salib
3989 extract not updated after reload. Thanks to Mike Salib
3987 <msalib-AT-mit.edu> for pinning the source of the problem.
3990 <msalib-AT-mit.edu> for pinning the source of the problem.
3988 Fortunately, the solution works inside ipython and doesn't require
3991 Fortunately, the solution works inside ipython and doesn't require
3989 any changes to python proper.
3992 any changes to python proper.
3990
3993
3991 * IPython/Magic.py (Magic.parse_options): Improved to process the
3994 * IPython/Magic.py (Magic.parse_options): Improved to process the
3992 argument list as a true shell would (by actually using the
3995 argument list as a true shell would (by actually using the
3993 underlying system shell). This way, all @magics automatically get
3996 underlying system shell). This way, all @magics automatically get
3994 shell expansion for variables. Thanks to a comment by Alex
3997 shell expansion for variables. Thanks to a comment by Alex
3995 Schmolck.
3998 Schmolck.
3996
3999
3997 2004-04-04 Fernando Perez <fperez@colorado.edu>
4000 2004-04-04 Fernando Perez <fperez@colorado.edu>
3998
4001
3999 * IPython/iplib.py (InteractiveShell.interact): Added a special
4002 * IPython/iplib.py (InteractiveShell.interact): Added a special
4000 trap for a debugger quit exception, which is basically impossible
4003 trap for a debugger quit exception, which is basically impossible
4001 to handle by normal mechanisms, given what pdb does to the stack.
4004 to handle by normal mechanisms, given what pdb does to the stack.
4002 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4005 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4003
4006
4004 2004-04-03 Fernando Perez <fperez@colorado.edu>
4007 2004-04-03 Fernando Perez <fperez@colorado.edu>
4005
4008
4006 * IPython/genutils.py (Term): Standardized the names of the Term
4009 * IPython/genutils.py (Term): Standardized the names of the Term
4007 class streams to cin/cout/cerr, following C++ naming conventions
4010 class streams to cin/cout/cerr, following C++ naming conventions
4008 (I can't use in/out/err because 'in' is not a valid attribute
4011 (I can't use in/out/err because 'in' is not a valid attribute
4009 name).
4012 name).
4010
4013
4011 * IPython/iplib.py (InteractiveShell.interact): don't increment
4014 * IPython/iplib.py (InteractiveShell.interact): don't increment
4012 the prompt if there's no user input. By Daniel 'Dang' Griffith
4015 the prompt if there's no user input. By Daniel 'Dang' Griffith
4013 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4016 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4014 Francois Pinard.
4017 Francois Pinard.
4015
4018
4016 2004-04-02 Fernando Perez <fperez@colorado.edu>
4019 2004-04-02 Fernando Perez <fperez@colorado.edu>
4017
4020
4018 * IPython/genutils.py (Stream.__init__): Modified to survive at
4021 * IPython/genutils.py (Stream.__init__): Modified to survive at
4019 least importing in contexts where stdin/out/err aren't true file
4022 least importing in contexts where stdin/out/err aren't true file
4020 objects, such as PyCrust (they lack fileno() and mode). However,
4023 objects, such as PyCrust (they lack fileno() and mode). However,
4021 the recovery facilities which rely on these things existing will
4024 the recovery facilities which rely on these things existing will
4022 not work.
4025 not work.
4023
4026
4024 2004-04-01 Fernando Perez <fperez@colorado.edu>
4027 2004-04-01 Fernando Perez <fperez@colorado.edu>
4025
4028
4026 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4029 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4027 use the new getoutputerror() function, so it properly
4030 use the new getoutputerror() function, so it properly
4028 distinguishes stdout/err.
4031 distinguishes stdout/err.
4029
4032
4030 * IPython/genutils.py (getoutputerror): added a function to
4033 * IPython/genutils.py (getoutputerror): added a function to
4031 capture separately the standard output and error of a command.
4034 capture separately the standard output and error of a command.
4032 After a comment from dang on the mailing lists. This code is
4035 After a comment from dang on the mailing lists. This code is
4033 basically a modified version of commands.getstatusoutput(), from
4036 basically a modified version of commands.getstatusoutput(), from
4034 the standard library.
4037 the standard library.
4035
4038
4036 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4039 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4037 '!!' as a special syntax (shorthand) to access @sx.
4040 '!!' as a special syntax (shorthand) to access @sx.
4038
4041
4039 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4042 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4040 command and return its output as a list split on '\n'.
4043 command and return its output as a list split on '\n'.
4041
4044
4042 2004-03-31 Fernando Perez <fperez@colorado.edu>
4045 2004-03-31 Fernando Perez <fperez@colorado.edu>
4043
4046
4044 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4047 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4045 method to dictionaries used as FakeModule instances if they lack
4048 method to dictionaries used as FakeModule instances if they lack
4046 it. At least pydoc in python2.3 breaks for runtime-defined
4049 it. At least pydoc in python2.3 breaks for runtime-defined
4047 functions without this hack. At some point I need to _really_
4050 functions without this hack. At some point I need to _really_
4048 understand what FakeModule is doing, because it's a gross hack.
4051 understand what FakeModule is doing, because it's a gross hack.
4049 But it solves Arnd's problem for now...
4052 But it solves Arnd's problem for now...
4050
4053
4051 2004-02-27 Fernando Perez <fperez@colorado.edu>
4054 2004-02-27 Fernando Perez <fperez@colorado.edu>
4052
4055
4053 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4056 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4054 mode would behave erratically. Also increased the number of
4057 mode would behave erratically. Also increased the number of
4055 possible logs in rotate mod to 999. Thanks to Rod Holland
4058 possible logs in rotate mod to 999. Thanks to Rod Holland
4056 <rhh@StructureLABS.com> for the report and fixes.
4059 <rhh@StructureLABS.com> for the report and fixes.
4057
4060
4058 2004-02-26 Fernando Perez <fperez@colorado.edu>
4061 2004-02-26 Fernando Perez <fperez@colorado.edu>
4059
4062
4060 * IPython/genutils.py (page): Check that the curses module really
4063 * IPython/genutils.py (page): Check that the curses module really
4061 has the initscr attribute before trying to use it. For some
4064 has the initscr attribute before trying to use it. For some
4062 reason, the Solaris curses module is missing this. I think this
4065 reason, the Solaris curses module is missing this. I think this
4063 should be considered a Solaris python bug, but I'm not sure.
4066 should be considered a Solaris python bug, but I'm not sure.
4064
4067
4065 2004-01-17 Fernando Perez <fperez@colorado.edu>
4068 2004-01-17 Fernando Perez <fperez@colorado.edu>
4066
4069
4067 * IPython/genutils.py (Stream.__init__): Changes to try to make
4070 * IPython/genutils.py (Stream.__init__): Changes to try to make
4068 ipython robust against stdin/out/err being closed by the user.
4071 ipython robust against stdin/out/err being closed by the user.
4069 This is 'user error' (and blocks a normal python session, at least
4072 This is 'user error' (and blocks a normal python session, at least
4070 the stdout case). However, Ipython should be able to survive such
4073 the stdout case). However, Ipython should be able to survive such
4071 instances of abuse as gracefully as possible. To simplify the
4074 instances of abuse as gracefully as possible. To simplify the
4072 coding and maintain compatibility with Gary Bishop's Term
4075 coding and maintain compatibility with Gary Bishop's Term
4073 contributions, I've made use of classmethods for this. I think
4076 contributions, I've made use of classmethods for this. I think
4074 this introduces a dependency on python 2.2.
4077 this introduces a dependency on python 2.2.
4075
4078
4076 2004-01-13 Fernando Perez <fperez@colorado.edu>
4079 2004-01-13 Fernando Perez <fperez@colorado.edu>
4077
4080
4078 * IPython/numutils.py (exp_safe): simplified the code a bit and
4081 * IPython/numutils.py (exp_safe): simplified the code a bit and
4079 removed the need for importing the kinds module altogether.
4082 removed the need for importing the kinds module altogether.
4080
4083
4081 2004-01-06 Fernando Perez <fperez@colorado.edu>
4084 2004-01-06 Fernando Perez <fperez@colorado.edu>
4082
4085
4083 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4086 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4084 a magic function instead, after some community feedback. No
4087 a magic function instead, after some community feedback. No
4085 special syntax will exist for it, but its name is deliberately
4088 special syntax will exist for it, but its name is deliberately
4086 very short.
4089 very short.
4087
4090
4088 2003-12-20 Fernando Perez <fperez@colorado.edu>
4091 2003-12-20 Fernando Perez <fperez@colorado.edu>
4089
4092
4090 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4093 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4091 new functionality, to automagically assign the result of a shell
4094 new functionality, to automagically assign the result of a shell
4092 command to a variable. I'll solicit some community feedback on
4095 command to a variable. I'll solicit some community feedback on
4093 this before making it permanent.
4096 this before making it permanent.
4094
4097
4095 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4098 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4096 requested about callables for which inspect couldn't obtain a
4099 requested about callables for which inspect couldn't obtain a
4097 proper argspec. Thanks to a crash report sent by Etienne
4100 proper argspec. Thanks to a crash report sent by Etienne
4098 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4101 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4099
4102
4100 2003-12-09 Fernando Perez <fperez@colorado.edu>
4103 2003-12-09 Fernando Perez <fperez@colorado.edu>
4101
4104
4102 * IPython/genutils.py (page): patch for the pager to work across
4105 * IPython/genutils.py (page): patch for the pager to work across
4103 various versions of Windows. By Gary Bishop.
4106 various versions of Windows. By Gary Bishop.
4104
4107
4105 2003-12-04 Fernando Perez <fperez@colorado.edu>
4108 2003-12-04 Fernando Perez <fperez@colorado.edu>
4106
4109
4107 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4110 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4108 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4111 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4109 While I tested this and it looks ok, there may still be corner
4112 While I tested this and it looks ok, there may still be corner
4110 cases I've missed.
4113 cases I've missed.
4111
4114
4112 2003-12-01 Fernando Perez <fperez@colorado.edu>
4115 2003-12-01 Fernando Perez <fperez@colorado.edu>
4113
4116
4114 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4117 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4115 where a line like 'p,q=1,2' would fail because the automagic
4118 where a line like 'p,q=1,2' would fail because the automagic
4116 system would be triggered for @p.
4119 system would be triggered for @p.
4117
4120
4118 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4121 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4119 cleanups, code unmodified.
4122 cleanups, code unmodified.
4120
4123
4121 * IPython/genutils.py (Term): added a class for IPython to handle
4124 * IPython/genutils.py (Term): added a class for IPython to handle
4122 output. In most cases it will just be a proxy for stdout/err, but
4125 output. In most cases it will just be a proxy for stdout/err, but
4123 having this allows modifications to be made for some platforms,
4126 having this allows modifications to be made for some platforms,
4124 such as handling color escapes under Windows. All of this code
4127 such as handling color escapes under Windows. All of this code
4125 was contributed by Gary Bishop, with minor modifications by me.
4128 was contributed by Gary Bishop, with minor modifications by me.
4126 The actual changes affect many files.
4129 The actual changes affect many files.
4127
4130
4128 2003-11-30 Fernando Perez <fperez@colorado.edu>
4131 2003-11-30 Fernando Perez <fperez@colorado.edu>
4129
4132
4130 * IPython/iplib.py (file_matches): new completion code, courtesy
4133 * IPython/iplib.py (file_matches): new completion code, courtesy
4131 of Jeff Collins. This enables filename completion again under
4134 of Jeff Collins. This enables filename completion again under
4132 python 2.3, which disabled it at the C level.
4135 python 2.3, which disabled it at the C level.
4133
4136
4134 2003-11-11 Fernando Perez <fperez@colorado.edu>
4137 2003-11-11 Fernando Perez <fperez@colorado.edu>
4135
4138
4136 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4139 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4137 for Numeric.array(map(...)), but often convenient.
4140 for Numeric.array(map(...)), but often convenient.
4138
4141
4139 2003-11-05 Fernando Perez <fperez@colorado.edu>
4142 2003-11-05 Fernando Perez <fperez@colorado.edu>
4140
4143
4141 * IPython/numutils.py (frange): Changed a call from int() to
4144 * IPython/numutils.py (frange): Changed a call from int() to
4142 int(round()) to prevent a problem reported with arange() in the
4145 int(round()) to prevent a problem reported with arange() in the
4143 numpy list.
4146 numpy list.
4144
4147
4145 2003-10-06 Fernando Perez <fperez@colorado.edu>
4148 2003-10-06 Fernando Perez <fperez@colorado.edu>
4146
4149
4147 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4150 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4148 prevent crashes if sys lacks an argv attribute (it happens with
4151 prevent crashes if sys lacks an argv attribute (it happens with
4149 embedded interpreters which build a bare-bones sys module).
4152 embedded interpreters which build a bare-bones sys module).
4150 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4153 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4151
4154
4152 2003-09-24 Fernando Perez <fperez@colorado.edu>
4155 2003-09-24 Fernando Perez <fperez@colorado.edu>
4153
4156
4154 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4157 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4155 to protect against poorly written user objects where __getattr__
4158 to protect against poorly written user objects where __getattr__
4156 raises exceptions other than AttributeError. Thanks to a bug
4159 raises exceptions other than AttributeError. Thanks to a bug
4157 report by Oliver Sander <osander-AT-gmx.de>.
4160 report by Oliver Sander <osander-AT-gmx.de>.
4158
4161
4159 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4162 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4160 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4163 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4161
4164
4162 2003-09-09 Fernando Perez <fperez@colorado.edu>
4165 2003-09-09 Fernando Perez <fperez@colorado.edu>
4163
4166
4164 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4167 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4165 unpacking a list whith a callable as first element would
4168 unpacking a list whith a callable as first element would
4166 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4169 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4167 Collins.
4170 Collins.
4168
4171
4169 2003-08-25 *** Released version 0.5.0
4172 2003-08-25 *** Released version 0.5.0
4170
4173
4171 2003-08-22 Fernando Perez <fperez@colorado.edu>
4174 2003-08-22 Fernando Perez <fperez@colorado.edu>
4172
4175
4173 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4176 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4174 improperly defined user exceptions. Thanks to feedback from Mark
4177 improperly defined user exceptions. Thanks to feedback from Mark
4175 Russell <mrussell-AT-verio.net>.
4178 Russell <mrussell-AT-verio.net>.
4176
4179
4177 2003-08-20 Fernando Perez <fperez@colorado.edu>
4180 2003-08-20 Fernando Perez <fperez@colorado.edu>
4178
4181
4179 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4182 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4180 printing so that it would print multi-line string forms starting
4183 printing so that it would print multi-line string forms starting
4181 with a new line. This way the formatting is better respected for
4184 with a new line. This way the formatting is better respected for
4182 objects which work hard to make nice string forms.
4185 objects which work hard to make nice string forms.
4183
4186
4184 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4187 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4185 autocall would overtake data access for objects with both
4188 autocall would overtake data access for objects with both
4186 __getitem__ and __call__.
4189 __getitem__ and __call__.
4187
4190
4188 2003-08-19 *** Released version 0.5.0-rc1
4191 2003-08-19 *** Released version 0.5.0-rc1
4189
4192
4190 2003-08-19 Fernando Perez <fperez@colorado.edu>
4193 2003-08-19 Fernando Perez <fperez@colorado.edu>
4191
4194
4192 * IPython/deep_reload.py (load_tail): single tiny change here
4195 * IPython/deep_reload.py (load_tail): single tiny change here
4193 seems to fix the long-standing bug of dreload() failing to work
4196 seems to fix the long-standing bug of dreload() failing to work
4194 for dotted names. But this module is pretty tricky, so I may have
4197 for dotted names. But this module is pretty tricky, so I may have
4195 missed some subtlety. Needs more testing!.
4198 missed some subtlety. Needs more testing!.
4196
4199
4197 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4200 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4198 exceptions which have badly implemented __str__ methods.
4201 exceptions which have badly implemented __str__ methods.
4199 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4202 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4200 which I've been getting reports about from Python 2.3 users. I
4203 which I've been getting reports about from Python 2.3 users. I
4201 wish I had a simple test case to reproduce the problem, so I could
4204 wish I had a simple test case to reproduce the problem, so I could
4202 either write a cleaner workaround or file a bug report if
4205 either write a cleaner workaround or file a bug report if
4203 necessary.
4206 necessary.
4204
4207
4205 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4208 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4206 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4209 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4207 a bug report by Tjabo Kloppenburg.
4210 a bug report by Tjabo Kloppenburg.
4208
4211
4209 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4212 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4210 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4213 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4211 seems rather unstable. Thanks to a bug report by Tjabo
4214 seems rather unstable. Thanks to a bug report by Tjabo
4212 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4215 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4213
4216
4214 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4217 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4215 this out soon because of the critical fixes in the inner loop for
4218 this out soon because of the critical fixes in the inner loop for
4216 generators.
4219 generators.
4217
4220
4218 * IPython/Magic.py (Magic.getargspec): removed. This (and
4221 * IPython/Magic.py (Magic.getargspec): removed. This (and
4219 _get_def) have been obsoleted by OInspect for a long time, I
4222 _get_def) have been obsoleted by OInspect for a long time, I
4220 hadn't noticed that they were dead code.
4223 hadn't noticed that they were dead code.
4221 (Magic._ofind): restored _ofind functionality for a few literals
4224 (Magic._ofind): restored _ofind functionality for a few literals
4222 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4225 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4223 for things like "hello".capitalize?, since that would require a
4226 for things like "hello".capitalize?, since that would require a
4224 potentially dangerous eval() again.
4227 potentially dangerous eval() again.
4225
4228
4226 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4229 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4227 logic a bit more to clean up the escapes handling and minimize the
4230 logic a bit more to clean up the escapes handling and minimize the
4228 use of _ofind to only necessary cases. The interactive 'feel' of
4231 use of _ofind to only necessary cases. The interactive 'feel' of
4229 IPython should have improved quite a bit with the changes in
4232 IPython should have improved quite a bit with the changes in
4230 _prefilter and _ofind (besides being far safer than before).
4233 _prefilter and _ofind (besides being far safer than before).
4231
4234
4232 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4235 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4233 obscure, never reported). Edit would fail to find the object to
4236 obscure, never reported). Edit would fail to find the object to
4234 edit under some circumstances.
4237 edit under some circumstances.
4235 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4238 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4236 which were causing double-calling of generators. Those eval calls
4239 which were causing double-calling of generators. Those eval calls
4237 were _very_ dangerous, since code with side effects could be
4240 were _very_ dangerous, since code with side effects could be
4238 triggered. As they say, 'eval is evil'... These were the
4241 triggered. As they say, 'eval is evil'... These were the
4239 nastiest evals in IPython. Besides, _ofind is now far simpler,
4242 nastiest evals in IPython. Besides, _ofind is now far simpler,
4240 and it should also be quite a bit faster. Its use of inspect is
4243 and it should also be quite a bit faster. Its use of inspect is
4241 also safer, so perhaps some of the inspect-related crashes I've
4244 also safer, so perhaps some of the inspect-related crashes I've
4242 seen lately with Python 2.3 might be taken care of. That will
4245 seen lately with Python 2.3 might be taken care of. That will
4243 need more testing.
4246 need more testing.
4244
4247
4245 2003-08-17 Fernando Perez <fperez@colorado.edu>
4248 2003-08-17 Fernando Perez <fperez@colorado.edu>
4246
4249
4247 * IPython/iplib.py (InteractiveShell._prefilter): significant
4250 * IPython/iplib.py (InteractiveShell._prefilter): significant
4248 simplifications to the logic for handling user escapes. Faster
4251 simplifications to the logic for handling user escapes. Faster
4249 and simpler code.
4252 and simpler code.
4250
4253
4251 2003-08-14 Fernando Perez <fperez@colorado.edu>
4254 2003-08-14 Fernando Perez <fperez@colorado.edu>
4252
4255
4253 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4256 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4254 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4257 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4255 but it should be quite a bit faster. And the recursive version
4258 but it should be quite a bit faster. And the recursive version
4256 generated O(log N) intermediate storage for all rank>1 arrays,
4259 generated O(log N) intermediate storage for all rank>1 arrays,
4257 even if they were contiguous.
4260 even if they were contiguous.
4258 (l1norm): Added this function.
4261 (l1norm): Added this function.
4259 (norm): Added this function for arbitrary norms (including
4262 (norm): Added this function for arbitrary norms (including
4260 l-infinity). l1 and l2 are still special cases for convenience
4263 l-infinity). l1 and l2 are still special cases for convenience
4261 and speed.
4264 and speed.
4262
4265
4263 2003-08-03 Fernando Perez <fperez@colorado.edu>
4266 2003-08-03 Fernando Perez <fperez@colorado.edu>
4264
4267
4265 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4268 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4266 exceptions, which now raise PendingDeprecationWarnings in Python
4269 exceptions, which now raise PendingDeprecationWarnings in Python
4267 2.3. There were some in Magic and some in Gnuplot2.
4270 2.3. There were some in Magic and some in Gnuplot2.
4268
4271
4269 2003-06-30 Fernando Perez <fperez@colorado.edu>
4272 2003-06-30 Fernando Perez <fperez@colorado.edu>
4270
4273
4271 * IPython/genutils.py (page): modified to call curses only for
4274 * IPython/genutils.py (page): modified to call curses only for
4272 terminals where TERM=='xterm'. After problems under many other
4275 terminals where TERM=='xterm'. After problems under many other
4273 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4276 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4274
4277
4275 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4278 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4276 would be triggered when readline was absent. This was just an old
4279 would be triggered when readline was absent. This was just an old
4277 debugging statement I'd forgotten to take out.
4280 debugging statement I'd forgotten to take out.
4278
4281
4279 2003-06-20 Fernando Perez <fperez@colorado.edu>
4282 2003-06-20 Fernando Perez <fperez@colorado.edu>
4280
4283
4281 * IPython/genutils.py (clock): modified to return only user time
4284 * IPython/genutils.py (clock): modified to return only user time
4282 (not counting system time), after a discussion on scipy. While
4285 (not counting system time), after a discussion on scipy. While
4283 system time may be a useful quantity occasionally, it may much
4286 system time may be a useful quantity occasionally, it may much
4284 more easily be skewed by occasional swapping or other similar
4287 more easily be skewed by occasional swapping or other similar
4285 activity.
4288 activity.
4286
4289
4287 2003-06-05 Fernando Perez <fperez@colorado.edu>
4290 2003-06-05 Fernando Perez <fperez@colorado.edu>
4288
4291
4289 * IPython/numutils.py (identity): new function, for building
4292 * IPython/numutils.py (identity): new function, for building
4290 arbitrary rank Kronecker deltas (mostly backwards compatible with
4293 arbitrary rank Kronecker deltas (mostly backwards compatible with
4291 Numeric.identity)
4294 Numeric.identity)
4292
4295
4293 2003-06-03 Fernando Perez <fperez@colorado.edu>
4296 2003-06-03 Fernando Perez <fperez@colorado.edu>
4294
4297
4295 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4298 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4296 arguments passed to magics with spaces, to allow trailing '\' to
4299 arguments passed to magics with spaces, to allow trailing '\' to
4297 work normally (mainly for Windows users).
4300 work normally (mainly for Windows users).
4298
4301
4299 2003-05-29 Fernando Perez <fperez@colorado.edu>
4302 2003-05-29 Fernando Perez <fperez@colorado.edu>
4300
4303
4301 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4304 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4302 instead of pydoc.help. This fixes a bizarre behavior where
4305 instead of pydoc.help. This fixes a bizarre behavior where
4303 printing '%s' % locals() would trigger the help system. Now
4306 printing '%s' % locals() would trigger the help system. Now
4304 ipython behaves like normal python does.
4307 ipython behaves like normal python does.
4305
4308
4306 Note that if one does 'from pydoc import help', the bizarre
4309 Note that if one does 'from pydoc import help', the bizarre
4307 behavior returns, but this will also happen in normal python, so
4310 behavior returns, but this will also happen in normal python, so
4308 it's not an ipython bug anymore (it has to do with how pydoc.help
4311 it's not an ipython bug anymore (it has to do with how pydoc.help
4309 is implemented).
4312 is implemented).
4310
4313
4311 2003-05-22 Fernando Perez <fperez@colorado.edu>
4314 2003-05-22 Fernando Perez <fperez@colorado.edu>
4312
4315
4313 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4316 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4314 return [] instead of None when nothing matches, also match to end
4317 return [] instead of None when nothing matches, also match to end
4315 of line. Patch by Gary Bishop.
4318 of line. Patch by Gary Bishop.
4316
4319
4317 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4320 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4318 protection as before, for files passed on the command line. This
4321 protection as before, for files passed on the command line. This
4319 prevents the CrashHandler from kicking in if user files call into
4322 prevents the CrashHandler from kicking in if user files call into
4320 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4323 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4321 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4324 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4322
4325
4323 2003-05-20 *** Released version 0.4.0
4326 2003-05-20 *** Released version 0.4.0
4324
4327
4325 2003-05-20 Fernando Perez <fperez@colorado.edu>
4328 2003-05-20 Fernando Perez <fperez@colorado.edu>
4326
4329
4327 * setup.py: added support for manpages. It's a bit hackish b/c of
4330 * setup.py: added support for manpages. It's a bit hackish b/c of
4328 a bug in the way the bdist_rpm distutils target handles gzipped
4331 a bug in the way the bdist_rpm distutils target handles gzipped
4329 manpages, but it works. After a patch by Jack.
4332 manpages, but it works. After a patch by Jack.
4330
4333
4331 2003-05-19 Fernando Perez <fperez@colorado.edu>
4334 2003-05-19 Fernando Perez <fperez@colorado.edu>
4332
4335
4333 * IPython/numutils.py: added a mockup of the kinds module, since
4336 * IPython/numutils.py: added a mockup of the kinds module, since
4334 it was recently removed from Numeric. This way, numutils will
4337 it was recently removed from Numeric. This way, numutils will
4335 work for all users even if they are missing kinds.
4338 work for all users even if they are missing kinds.
4336
4339
4337 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4340 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4338 failure, which can occur with SWIG-wrapped extensions. After a
4341 failure, which can occur with SWIG-wrapped extensions. After a
4339 crash report from Prabhu.
4342 crash report from Prabhu.
4340
4343
4341 2003-05-16 Fernando Perez <fperez@colorado.edu>
4344 2003-05-16 Fernando Perez <fperez@colorado.edu>
4342
4345
4343 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4346 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4344 protect ipython from user code which may call directly
4347 protect ipython from user code which may call directly
4345 sys.excepthook (this looks like an ipython crash to the user, even
4348 sys.excepthook (this looks like an ipython crash to the user, even
4346 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4349 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4347 This is especially important to help users of WxWindows, but may
4350 This is especially important to help users of WxWindows, but may
4348 also be useful in other cases.
4351 also be useful in other cases.
4349
4352
4350 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4353 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4351 an optional tb_offset to be specified, and to preserve exception
4354 an optional tb_offset to be specified, and to preserve exception
4352 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4355 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4353
4356
4354 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4357 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4355
4358
4356 2003-05-15 Fernando Perez <fperez@colorado.edu>
4359 2003-05-15 Fernando Perez <fperez@colorado.edu>
4357
4360
4358 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4361 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4359 installing for a new user under Windows.
4362 installing for a new user under Windows.
4360
4363
4361 2003-05-12 Fernando Perez <fperez@colorado.edu>
4364 2003-05-12 Fernando Perez <fperez@colorado.edu>
4362
4365
4363 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4366 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4364 handler for Emacs comint-based lines. Currently it doesn't do
4367 handler for Emacs comint-based lines. Currently it doesn't do
4365 much (but importantly, it doesn't update the history cache). In
4368 much (but importantly, it doesn't update the history cache). In
4366 the future it may be expanded if Alex needs more functionality
4369 the future it may be expanded if Alex needs more functionality
4367 there.
4370 there.
4368
4371
4369 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4372 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4370 info to crash reports.
4373 info to crash reports.
4371
4374
4372 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4375 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4373 just like Python's -c. Also fixed crash with invalid -color
4376 just like Python's -c. Also fixed crash with invalid -color
4374 option value at startup. Thanks to Will French
4377 option value at startup. Thanks to Will French
4375 <wfrench-AT-bestweb.net> for the bug report.
4378 <wfrench-AT-bestweb.net> for the bug report.
4376
4379
4377 2003-05-09 Fernando Perez <fperez@colorado.edu>
4380 2003-05-09 Fernando Perez <fperez@colorado.edu>
4378
4381
4379 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4382 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4380 to EvalDict (it's a mapping, after all) and simplified its code
4383 to EvalDict (it's a mapping, after all) and simplified its code
4381 quite a bit, after a nice discussion on c.l.py where Gustavo
4384 quite a bit, after a nice discussion on c.l.py where Gustavo
4382 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4385 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4383
4386
4384 2003-04-30 Fernando Perez <fperez@colorado.edu>
4387 2003-04-30 Fernando Perez <fperez@colorado.edu>
4385
4388
4386 * IPython/genutils.py (timings_out): modified it to reduce its
4389 * IPython/genutils.py (timings_out): modified it to reduce its
4387 overhead in the common reps==1 case.
4390 overhead in the common reps==1 case.
4388
4391
4389 2003-04-29 Fernando Perez <fperez@colorado.edu>
4392 2003-04-29 Fernando Perez <fperez@colorado.edu>
4390
4393
4391 * IPython/genutils.py (timings_out): Modified to use the resource
4394 * IPython/genutils.py (timings_out): Modified to use the resource
4392 module, which avoids the wraparound problems of time.clock().
4395 module, which avoids the wraparound problems of time.clock().
4393
4396
4394 2003-04-17 *** Released version 0.2.15pre4
4397 2003-04-17 *** Released version 0.2.15pre4
4395
4398
4396 2003-04-17 Fernando Perez <fperez@colorado.edu>
4399 2003-04-17 Fernando Perez <fperez@colorado.edu>
4397
4400
4398 * setup.py (scriptfiles): Split windows-specific stuff over to a
4401 * setup.py (scriptfiles): Split windows-specific stuff over to a
4399 separate file, in an attempt to have a Windows GUI installer.
4402 separate file, in an attempt to have a Windows GUI installer.
4400 That didn't work, but part of the groundwork is done.
4403 That didn't work, but part of the groundwork is done.
4401
4404
4402 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4405 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4403 indent/unindent with 4 spaces. Particularly useful in combination
4406 indent/unindent with 4 spaces. Particularly useful in combination
4404 with the new auto-indent option.
4407 with the new auto-indent option.
4405
4408
4406 2003-04-16 Fernando Perez <fperez@colorado.edu>
4409 2003-04-16 Fernando Perez <fperez@colorado.edu>
4407
4410
4408 * IPython/Magic.py: various replacements of self.rc for
4411 * IPython/Magic.py: various replacements of self.rc for
4409 self.shell.rc. A lot more remains to be done to fully disentangle
4412 self.shell.rc. A lot more remains to be done to fully disentangle
4410 this class from the main Shell class.
4413 this class from the main Shell class.
4411
4414
4412 * IPython/GnuplotRuntime.py: added checks for mouse support so
4415 * IPython/GnuplotRuntime.py: added checks for mouse support so
4413 that we don't try to enable it if the current gnuplot doesn't
4416 that we don't try to enable it if the current gnuplot doesn't
4414 really support it. Also added checks so that we don't try to
4417 really support it. Also added checks so that we don't try to
4415 enable persist under Windows (where Gnuplot doesn't recognize the
4418 enable persist under Windows (where Gnuplot doesn't recognize the
4416 option).
4419 option).
4417
4420
4418 * IPython/iplib.py (InteractiveShell.interact): Added optional
4421 * IPython/iplib.py (InteractiveShell.interact): Added optional
4419 auto-indenting code, after a patch by King C. Shu
4422 auto-indenting code, after a patch by King C. Shu
4420 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4423 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4421 get along well with pasting indented code. If I ever figure out
4424 get along well with pasting indented code. If I ever figure out
4422 how to make that part go well, it will become on by default.
4425 how to make that part go well, it will become on by default.
4423
4426
4424 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4427 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4425 crash ipython if there was an unmatched '%' in the user's prompt
4428 crash ipython if there was an unmatched '%' in the user's prompt
4426 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4429 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4427
4430
4428 * IPython/iplib.py (InteractiveShell.interact): removed the
4431 * IPython/iplib.py (InteractiveShell.interact): removed the
4429 ability to ask the user whether he wants to crash or not at the
4432 ability to ask the user whether he wants to crash or not at the
4430 'last line' exception handler. Calling functions at that point
4433 'last line' exception handler. Calling functions at that point
4431 changes the stack, and the error reports would have incorrect
4434 changes the stack, and the error reports would have incorrect
4432 tracebacks.
4435 tracebacks.
4433
4436
4434 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4437 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4435 pass through a peger a pretty-printed form of any object. After a
4438 pass through a peger a pretty-printed form of any object. After a
4436 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4439 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4437
4440
4438 2003-04-14 Fernando Perez <fperez@colorado.edu>
4441 2003-04-14 Fernando Perez <fperez@colorado.edu>
4439
4442
4440 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4443 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4441 all files in ~ would be modified at first install (instead of
4444 all files in ~ would be modified at first install (instead of
4442 ~/.ipython). This could be potentially disastrous, as the
4445 ~/.ipython). This could be potentially disastrous, as the
4443 modification (make line-endings native) could damage binary files.
4446 modification (make line-endings native) could damage binary files.
4444
4447
4445 2003-04-10 Fernando Perez <fperez@colorado.edu>
4448 2003-04-10 Fernando Perez <fperez@colorado.edu>
4446
4449
4447 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4450 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4448 handle only lines which are invalid python. This now means that
4451 handle only lines which are invalid python. This now means that
4449 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4452 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4450 for the bug report.
4453 for the bug report.
4451
4454
4452 2003-04-01 Fernando Perez <fperez@colorado.edu>
4455 2003-04-01 Fernando Perez <fperez@colorado.edu>
4453
4456
4454 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4457 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4455 where failing to set sys.last_traceback would crash pdb.pm().
4458 where failing to set sys.last_traceback would crash pdb.pm().
4456 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4459 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4457 report.
4460 report.
4458
4461
4459 2003-03-25 Fernando Perez <fperez@colorado.edu>
4462 2003-03-25 Fernando Perez <fperez@colorado.edu>
4460
4463
4461 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4464 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4462 before printing it (it had a lot of spurious blank lines at the
4465 before printing it (it had a lot of spurious blank lines at the
4463 end).
4466 end).
4464
4467
4465 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4468 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4466 output would be sent 21 times! Obviously people don't use this
4469 output would be sent 21 times! Obviously people don't use this
4467 too often, or I would have heard about it.
4470 too often, or I would have heard about it.
4468
4471
4469 2003-03-24 Fernando Perez <fperez@colorado.edu>
4472 2003-03-24 Fernando Perez <fperez@colorado.edu>
4470
4473
4471 * setup.py (scriptfiles): renamed the data_files parameter from
4474 * setup.py (scriptfiles): renamed the data_files parameter from
4472 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4475 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4473 for the patch.
4476 for the patch.
4474
4477
4475 2003-03-20 Fernando Perez <fperez@colorado.edu>
4478 2003-03-20 Fernando Perez <fperez@colorado.edu>
4476
4479
4477 * IPython/genutils.py (error): added error() and fatal()
4480 * IPython/genutils.py (error): added error() and fatal()
4478 functions.
4481 functions.
4479
4482
4480 2003-03-18 *** Released version 0.2.15pre3
4483 2003-03-18 *** Released version 0.2.15pre3
4481
4484
4482 2003-03-18 Fernando Perez <fperez@colorado.edu>
4485 2003-03-18 Fernando Perez <fperez@colorado.edu>
4483
4486
4484 * setupext/install_data_ext.py
4487 * setupext/install_data_ext.py
4485 (install_data_ext.initialize_options): Class contributed by Jack
4488 (install_data_ext.initialize_options): Class contributed by Jack
4486 Moffit for fixing the old distutils hack. He is sending this to
4489 Moffit for fixing the old distutils hack. He is sending this to
4487 the distutils folks so in the future we may not need it as a
4490 the distutils folks so in the future we may not need it as a
4488 private fix.
4491 private fix.
4489
4492
4490 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4493 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4491 changes for Debian packaging. See his patch for full details.
4494 changes for Debian packaging. See his patch for full details.
4492 The old distutils hack of making the ipythonrc* files carry a
4495 The old distutils hack of making the ipythonrc* files carry a
4493 bogus .py extension is gone, at last. Examples were moved to a
4496 bogus .py extension is gone, at last. Examples were moved to a
4494 separate subdir under doc/, and the separate executable scripts
4497 separate subdir under doc/, and the separate executable scripts
4495 now live in their own directory. Overall a great cleanup. The
4498 now live in their own directory. Overall a great cleanup. The
4496 manual was updated to use the new files, and setup.py has been
4499 manual was updated to use the new files, and setup.py has been
4497 fixed for this setup.
4500 fixed for this setup.
4498
4501
4499 * IPython/PyColorize.py (Parser.usage): made non-executable and
4502 * IPython/PyColorize.py (Parser.usage): made non-executable and
4500 created a pycolor wrapper around it to be included as a script.
4503 created a pycolor wrapper around it to be included as a script.
4501
4504
4502 2003-03-12 *** Released version 0.2.15pre2
4505 2003-03-12 *** Released version 0.2.15pre2
4503
4506
4504 2003-03-12 Fernando Perez <fperez@colorado.edu>
4507 2003-03-12 Fernando Perez <fperez@colorado.edu>
4505
4508
4506 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4509 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4507 long-standing problem with garbage characters in some terminals.
4510 long-standing problem with garbage characters in some terminals.
4508 The issue was really that the \001 and \002 escapes must _only_ be
4511 The issue was really that the \001 and \002 escapes must _only_ be
4509 passed to input prompts (which call readline), but _never_ to
4512 passed to input prompts (which call readline), but _never_ to
4510 normal text to be printed on screen. I changed ColorANSI to have
4513 normal text to be printed on screen. I changed ColorANSI to have
4511 two classes: TermColors and InputTermColors, each with the
4514 two classes: TermColors and InputTermColors, each with the
4512 appropriate escapes for input prompts or normal text. The code in
4515 appropriate escapes for input prompts or normal text. The code in
4513 Prompts.py got slightly more complicated, but this very old and
4516 Prompts.py got slightly more complicated, but this very old and
4514 annoying bug is finally fixed.
4517 annoying bug is finally fixed.
4515
4518
4516 All the credit for nailing down the real origin of this problem
4519 All the credit for nailing down the real origin of this problem
4517 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4520 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4518 *Many* thanks to him for spending quite a bit of effort on this.
4521 *Many* thanks to him for spending quite a bit of effort on this.
4519
4522
4520 2003-03-05 *** Released version 0.2.15pre1
4523 2003-03-05 *** Released version 0.2.15pre1
4521
4524
4522 2003-03-03 Fernando Perez <fperez@colorado.edu>
4525 2003-03-03 Fernando Perez <fperez@colorado.edu>
4523
4526
4524 * IPython/FakeModule.py: Moved the former _FakeModule to a
4527 * IPython/FakeModule.py: Moved the former _FakeModule to a
4525 separate file, because it's also needed by Magic (to fix a similar
4528 separate file, because it's also needed by Magic (to fix a similar
4526 pickle-related issue in @run).
4529 pickle-related issue in @run).
4527
4530
4528 2003-03-02 Fernando Perez <fperez@colorado.edu>
4531 2003-03-02 Fernando Perez <fperez@colorado.edu>
4529
4532
4530 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4533 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4531 the autocall option at runtime.
4534 the autocall option at runtime.
4532 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4535 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4533 across Magic.py to start separating Magic from InteractiveShell.
4536 across Magic.py to start separating Magic from InteractiveShell.
4534 (Magic._ofind): Fixed to return proper namespace for dotted
4537 (Magic._ofind): Fixed to return proper namespace for dotted
4535 names. Before, a dotted name would always return 'not currently
4538 names. Before, a dotted name would always return 'not currently
4536 defined', because it would find the 'parent'. s.x would be found,
4539 defined', because it would find the 'parent'. s.x would be found,
4537 but since 'x' isn't defined by itself, it would get confused.
4540 but since 'x' isn't defined by itself, it would get confused.
4538 (Magic.magic_run): Fixed pickling problems reported by Ralf
4541 (Magic.magic_run): Fixed pickling problems reported by Ralf
4539 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4542 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4540 that I'd used when Mike Heeter reported similar issues at the
4543 that I'd used when Mike Heeter reported similar issues at the
4541 top-level, but now for @run. It boils down to injecting the
4544 top-level, but now for @run. It boils down to injecting the
4542 namespace where code is being executed with something that looks
4545 namespace where code is being executed with something that looks
4543 enough like a module to fool pickle.dump(). Since a pickle stores
4546 enough like a module to fool pickle.dump(). Since a pickle stores
4544 a named reference to the importing module, we need this for
4547 a named reference to the importing module, we need this for
4545 pickles to save something sensible.
4548 pickles to save something sensible.
4546
4549
4547 * IPython/ipmaker.py (make_IPython): added an autocall option.
4550 * IPython/ipmaker.py (make_IPython): added an autocall option.
4548
4551
4549 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4552 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4550 the auto-eval code. Now autocalling is an option, and the code is
4553 the auto-eval code. Now autocalling is an option, and the code is
4551 also vastly safer. There is no more eval() involved at all.
4554 also vastly safer. There is no more eval() involved at all.
4552
4555
4553 2003-03-01 Fernando Perez <fperez@colorado.edu>
4556 2003-03-01 Fernando Perez <fperez@colorado.edu>
4554
4557
4555 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4558 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4556 dict with named keys instead of a tuple.
4559 dict with named keys instead of a tuple.
4557
4560
4558 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4561 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4559
4562
4560 * setup.py (make_shortcut): Fixed message about directories
4563 * setup.py (make_shortcut): Fixed message about directories
4561 created during Windows installation (the directories were ok, just
4564 created during Windows installation (the directories were ok, just
4562 the printed message was misleading). Thanks to Chris Liechti
4565 the printed message was misleading). Thanks to Chris Liechti
4563 <cliechti-AT-gmx.net> for the heads up.
4566 <cliechti-AT-gmx.net> for the heads up.
4564
4567
4565 2003-02-21 Fernando Perez <fperez@colorado.edu>
4568 2003-02-21 Fernando Perez <fperez@colorado.edu>
4566
4569
4567 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4570 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4568 of ValueError exception when checking for auto-execution. This
4571 of ValueError exception when checking for auto-execution. This
4569 one is raised by things like Numeric arrays arr.flat when the
4572 one is raised by things like Numeric arrays arr.flat when the
4570 array is non-contiguous.
4573 array is non-contiguous.
4571
4574
4572 2003-01-31 Fernando Perez <fperez@colorado.edu>
4575 2003-01-31 Fernando Perez <fperez@colorado.edu>
4573
4576
4574 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4577 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4575 not return any value at all (even though the command would get
4578 not return any value at all (even though the command would get
4576 executed).
4579 executed).
4577 (xsys): Flush stdout right after printing the command to ensure
4580 (xsys): Flush stdout right after printing the command to ensure
4578 proper ordering of commands and command output in the total
4581 proper ordering of commands and command output in the total
4579 output.
4582 output.
4580 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4583 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4581 system/getoutput as defaults. The old ones are kept for
4584 system/getoutput as defaults. The old ones are kept for
4582 compatibility reasons, so no code which uses this library needs
4585 compatibility reasons, so no code which uses this library needs
4583 changing.
4586 changing.
4584
4587
4585 2003-01-27 *** Released version 0.2.14
4588 2003-01-27 *** Released version 0.2.14
4586
4589
4587 2003-01-25 Fernando Perez <fperez@colorado.edu>
4590 2003-01-25 Fernando Perez <fperez@colorado.edu>
4588
4591
4589 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4592 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4590 functions defined in previous edit sessions could not be re-edited
4593 functions defined in previous edit sessions could not be re-edited
4591 (because the temp files were immediately removed). Now temp files
4594 (because the temp files were immediately removed). Now temp files
4592 are removed only at IPython's exit.
4595 are removed only at IPython's exit.
4593 (Magic.magic_run): Improved @run to perform shell-like expansions
4596 (Magic.magic_run): Improved @run to perform shell-like expansions
4594 on its arguments (~users and $VARS). With this, @run becomes more
4597 on its arguments (~users and $VARS). With this, @run becomes more
4595 like a normal command-line.
4598 like a normal command-line.
4596
4599
4597 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4600 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4598 bugs related to embedding and cleaned up that code. A fairly
4601 bugs related to embedding and cleaned up that code. A fairly
4599 important one was the impossibility to access the global namespace
4602 important one was the impossibility to access the global namespace
4600 through the embedded IPython (only local variables were visible).
4603 through the embedded IPython (only local variables were visible).
4601
4604
4602 2003-01-14 Fernando Perez <fperez@colorado.edu>
4605 2003-01-14 Fernando Perez <fperez@colorado.edu>
4603
4606
4604 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4607 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4605 auto-calling to be a bit more conservative. Now it doesn't get
4608 auto-calling to be a bit more conservative. Now it doesn't get
4606 triggered if any of '!=()<>' are in the rest of the input line, to
4609 triggered if any of '!=()<>' are in the rest of the input line, to
4607 allow comparing callables. Thanks to Alex for the heads up.
4610 allow comparing callables. Thanks to Alex for the heads up.
4608
4611
4609 2003-01-07 Fernando Perez <fperez@colorado.edu>
4612 2003-01-07 Fernando Perez <fperez@colorado.edu>
4610
4613
4611 * IPython/genutils.py (page): fixed estimation of the number of
4614 * IPython/genutils.py (page): fixed estimation of the number of
4612 lines in a string to be paged to simply count newlines. This
4615 lines in a string to be paged to simply count newlines. This
4613 prevents over-guessing due to embedded escape sequences. A better
4616 prevents over-guessing due to embedded escape sequences. A better
4614 long-term solution would involve stripping out the control chars
4617 long-term solution would involve stripping out the control chars
4615 for the count, but it's potentially so expensive I just don't
4618 for the count, but it's potentially so expensive I just don't
4616 think it's worth doing.
4619 think it's worth doing.
4617
4620
4618 2002-12-19 *** Released version 0.2.14pre50
4621 2002-12-19 *** Released version 0.2.14pre50
4619
4622
4620 2002-12-19 Fernando Perez <fperez@colorado.edu>
4623 2002-12-19 Fernando Perez <fperez@colorado.edu>
4621
4624
4622 * tools/release (version): Changed release scripts to inform
4625 * tools/release (version): Changed release scripts to inform
4623 Andrea and build a NEWS file with a list of recent changes.
4626 Andrea and build a NEWS file with a list of recent changes.
4624
4627
4625 * IPython/ColorANSI.py (__all__): changed terminal detection
4628 * IPython/ColorANSI.py (__all__): changed terminal detection
4626 code. Seems to work better for xterms without breaking
4629 code. Seems to work better for xterms without breaking
4627 konsole. Will need more testing to determine if WinXP and Mac OSX
4630 konsole. Will need more testing to determine if WinXP and Mac OSX
4628 also work ok.
4631 also work ok.
4629
4632
4630 2002-12-18 *** Released version 0.2.14pre49
4633 2002-12-18 *** Released version 0.2.14pre49
4631
4634
4632 2002-12-18 Fernando Perez <fperez@colorado.edu>
4635 2002-12-18 Fernando Perez <fperez@colorado.edu>
4633
4636
4634 * Docs: added new info about Mac OSX, from Andrea.
4637 * Docs: added new info about Mac OSX, from Andrea.
4635
4638
4636 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4639 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4637 allow direct plotting of python strings whose format is the same
4640 allow direct plotting of python strings whose format is the same
4638 of gnuplot data files.
4641 of gnuplot data files.
4639
4642
4640 2002-12-16 Fernando Perez <fperez@colorado.edu>
4643 2002-12-16 Fernando Perez <fperez@colorado.edu>
4641
4644
4642 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4645 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4643 value of exit question to be acknowledged.
4646 value of exit question to be acknowledged.
4644
4647
4645 2002-12-03 Fernando Perez <fperez@colorado.edu>
4648 2002-12-03 Fernando Perez <fperez@colorado.edu>
4646
4649
4647 * IPython/ipmaker.py: removed generators, which had been added
4650 * IPython/ipmaker.py: removed generators, which had been added
4648 by mistake in an earlier debugging run. This was causing trouble
4651 by mistake in an earlier debugging run. This was causing trouble
4649 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4652 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4650 for pointing this out.
4653 for pointing this out.
4651
4654
4652 2002-11-17 Fernando Perez <fperez@colorado.edu>
4655 2002-11-17 Fernando Perez <fperez@colorado.edu>
4653
4656
4654 * Manual: updated the Gnuplot section.
4657 * Manual: updated the Gnuplot section.
4655
4658
4656 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4659 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4657 a much better split of what goes in Runtime and what goes in
4660 a much better split of what goes in Runtime and what goes in
4658 Interactive.
4661 Interactive.
4659
4662
4660 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4663 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4661 being imported from iplib.
4664 being imported from iplib.
4662
4665
4663 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4666 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4664 for command-passing. Now the global Gnuplot instance is called
4667 for command-passing. Now the global Gnuplot instance is called
4665 'gp' instead of 'g', which was really a far too fragile and
4668 'gp' instead of 'g', which was really a far too fragile and
4666 common name.
4669 common name.
4667
4670
4668 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4671 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4669 bounding boxes generated by Gnuplot for square plots.
4672 bounding boxes generated by Gnuplot for square plots.
4670
4673
4671 * IPython/genutils.py (popkey): new function added. I should
4674 * IPython/genutils.py (popkey): new function added. I should
4672 suggest this on c.l.py as a dict method, it seems useful.
4675 suggest this on c.l.py as a dict method, it seems useful.
4673
4676
4674 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4677 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4675 to transparently handle PostScript generation. MUCH better than
4678 to transparently handle PostScript generation. MUCH better than
4676 the previous plot_eps/replot_eps (which I removed now). The code
4679 the previous plot_eps/replot_eps (which I removed now). The code
4677 is also fairly clean and well documented now (including
4680 is also fairly clean and well documented now (including
4678 docstrings).
4681 docstrings).
4679
4682
4680 2002-11-13 Fernando Perez <fperez@colorado.edu>
4683 2002-11-13 Fernando Perez <fperez@colorado.edu>
4681
4684
4682 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4685 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4683 (inconsistent with options).
4686 (inconsistent with options).
4684
4687
4685 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4688 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4686 manually disabled, I don't know why. Fixed it.
4689 manually disabled, I don't know why. Fixed it.
4687 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4690 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4688 eps output.
4691 eps output.
4689
4692
4690 2002-11-12 Fernando Perez <fperez@colorado.edu>
4693 2002-11-12 Fernando Perez <fperez@colorado.edu>
4691
4694
4692 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4695 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4693 don't propagate up to caller. Fixes crash reported by François
4696 don't propagate up to caller. Fixes crash reported by François
4694 Pinard.
4697 Pinard.
4695
4698
4696 2002-11-09 Fernando Perez <fperez@colorado.edu>
4699 2002-11-09 Fernando Perez <fperez@colorado.edu>
4697
4700
4698 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4701 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4699 history file for new users.
4702 history file for new users.
4700 (make_IPython): fixed bug where initial install would leave the
4703 (make_IPython): fixed bug where initial install would leave the
4701 user running in the .ipython dir.
4704 user running in the .ipython dir.
4702 (make_IPython): fixed bug where config dir .ipython would be
4705 (make_IPython): fixed bug where config dir .ipython would be
4703 created regardless of the given -ipythondir option. Thanks to Cory
4706 created regardless of the given -ipythondir option. Thanks to Cory
4704 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4707 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4705
4708
4706 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4709 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4707 type confirmations. Will need to use it in all of IPython's code
4710 type confirmations. Will need to use it in all of IPython's code
4708 consistently.
4711 consistently.
4709
4712
4710 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4713 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4711 context to print 31 lines instead of the default 5. This will make
4714 context to print 31 lines instead of the default 5. This will make
4712 the crash reports extremely detailed in case the problem is in
4715 the crash reports extremely detailed in case the problem is in
4713 libraries I don't have access to.
4716 libraries I don't have access to.
4714
4717
4715 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4718 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4716 line of defense' code to still crash, but giving users fair
4719 line of defense' code to still crash, but giving users fair
4717 warning. I don't want internal errors to go unreported: if there's
4720 warning. I don't want internal errors to go unreported: if there's
4718 an internal problem, IPython should crash and generate a full
4721 an internal problem, IPython should crash and generate a full
4719 report.
4722 report.
4720
4723
4721 2002-11-08 Fernando Perez <fperez@colorado.edu>
4724 2002-11-08 Fernando Perez <fperez@colorado.edu>
4722
4725
4723 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4726 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4724 otherwise uncaught exceptions which can appear if people set
4727 otherwise uncaught exceptions which can appear if people set
4725 sys.stdout to something badly broken. Thanks to a crash report
4728 sys.stdout to something badly broken. Thanks to a crash report
4726 from henni-AT-mail.brainbot.com.
4729 from henni-AT-mail.brainbot.com.
4727
4730
4728 2002-11-04 Fernando Perez <fperez@colorado.edu>
4731 2002-11-04 Fernando Perez <fperez@colorado.edu>
4729
4732
4730 * IPython/iplib.py (InteractiveShell.interact): added
4733 * IPython/iplib.py (InteractiveShell.interact): added
4731 __IPYTHON__active to the builtins. It's a flag which goes on when
4734 __IPYTHON__active to the builtins. It's a flag which goes on when
4732 the interaction starts and goes off again when it stops. This
4735 the interaction starts and goes off again when it stops. This
4733 allows embedding code to detect being inside IPython. Before this
4736 allows embedding code to detect being inside IPython. Before this
4734 was done via __IPYTHON__, but that only shows that an IPython
4737 was done via __IPYTHON__, but that only shows that an IPython
4735 instance has been created.
4738 instance has been created.
4736
4739
4737 * IPython/Magic.py (Magic.magic_env): I realized that in a
4740 * IPython/Magic.py (Magic.magic_env): I realized that in a
4738 UserDict, instance.data holds the data as a normal dict. So I
4741 UserDict, instance.data holds the data as a normal dict. So I
4739 modified @env to return os.environ.data instead of rebuilding a
4742 modified @env to return os.environ.data instead of rebuilding a
4740 dict by hand.
4743 dict by hand.
4741
4744
4742 2002-11-02 Fernando Perez <fperez@colorado.edu>
4745 2002-11-02 Fernando Perez <fperez@colorado.edu>
4743
4746
4744 * IPython/genutils.py (warn): changed so that level 1 prints no
4747 * IPython/genutils.py (warn): changed so that level 1 prints no
4745 header. Level 2 is now the default (with 'WARNING' header, as
4748 header. Level 2 is now the default (with 'WARNING' header, as
4746 before). I think I tracked all places where changes were needed in
4749 before). I think I tracked all places where changes were needed in
4747 IPython, but outside code using the old level numbering may have
4750 IPython, but outside code using the old level numbering may have
4748 broken.
4751 broken.
4749
4752
4750 * IPython/iplib.py (InteractiveShell.runcode): added this to
4753 * IPython/iplib.py (InteractiveShell.runcode): added this to
4751 handle the tracebacks in SystemExit traps correctly. The previous
4754 handle the tracebacks in SystemExit traps correctly. The previous
4752 code (through interact) was printing more of the stack than
4755 code (through interact) was printing more of the stack than
4753 necessary, showing IPython internal code to the user.
4756 necessary, showing IPython internal code to the user.
4754
4757
4755 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4758 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4756 default. Now that the default at the confirmation prompt is yes,
4759 default. Now that the default at the confirmation prompt is yes,
4757 it's not so intrusive. François' argument that ipython sessions
4760 it's not so intrusive. François' argument that ipython sessions
4758 tend to be complex enough not to lose them from an accidental C-d,
4761 tend to be complex enough not to lose them from an accidental C-d,
4759 is a valid one.
4762 is a valid one.
4760
4763
4761 * IPython/iplib.py (InteractiveShell.interact): added a
4764 * IPython/iplib.py (InteractiveShell.interact): added a
4762 showtraceback() call to the SystemExit trap, and modified the exit
4765 showtraceback() call to the SystemExit trap, and modified the exit
4763 confirmation to have yes as the default.
4766 confirmation to have yes as the default.
4764
4767
4765 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4768 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4766 this file. It's been gone from the code for a long time, this was
4769 this file. It's been gone from the code for a long time, this was
4767 simply leftover junk.
4770 simply leftover junk.
4768
4771
4769 2002-11-01 Fernando Perez <fperez@colorado.edu>
4772 2002-11-01 Fernando Perez <fperez@colorado.edu>
4770
4773
4771 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4774 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4772 added. If set, IPython now traps EOF and asks for
4775 added. If set, IPython now traps EOF and asks for
4773 confirmation. After a request by François Pinard.
4776 confirmation. After a request by François Pinard.
4774
4777
4775 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4778 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4776 of @abort, and with a new (better) mechanism for handling the
4779 of @abort, and with a new (better) mechanism for handling the
4777 exceptions.
4780 exceptions.
4778
4781
4779 2002-10-27 Fernando Perez <fperez@colorado.edu>
4782 2002-10-27 Fernando Perez <fperez@colorado.edu>
4780
4783
4781 * IPython/usage.py (__doc__): updated the --help information and
4784 * IPython/usage.py (__doc__): updated the --help information and
4782 the ipythonrc file to indicate that -log generates
4785 the ipythonrc file to indicate that -log generates
4783 ./ipython.log. Also fixed the corresponding info in @logstart.
4786 ./ipython.log. Also fixed the corresponding info in @logstart.
4784 This and several other fixes in the manuals thanks to reports by
4787 This and several other fixes in the manuals thanks to reports by
4785 François Pinard <pinard-AT-iro.umontreal.ca>.
4788 François Pinard <pinard-AT-iro.umontreal.ca>.
4786
4789
4787 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4790 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4788 refer to @logstart (instead of @log, which doesn't exist).
4791 refer to @logstart (instead of @log, which doesn't exist).
4789
4792
4790 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4793 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4791 AttributeError crash. Thanks to Christopher Armstrong
4794 AttributeError crash. Thanks to Christopher Armstrong
4792 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4795 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4793 introduced recently (in 0.2.14pre37) with the fix to the eval
4796 introduced recently (in 0.2.14pre37) with the fix to the eval
4794 problem mentioned below.
4797 problem mentioned below.
4795
4798
4796 2002-10-17 Fernando Perez <fperez@colorado.edu>
4799 2002-10-17 Fernando Perez <fperez@colorado.edu>
4797
4800
4798 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4801 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4799 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4802 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4800
4803
4801 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4804 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4802 this function to fix a problem reported by Alex Schmolck. He saw
4805 this function to fix a problem reported by Alex Schmolck. He saw
4803 it with list comprehensions and generators, which were getting
4806 it with list comprehensions and generators, which were getting
4804 called twice. The real problem was an 'eval' call in testing for
4807 called twice. The real problem was an 'eval' call in testing for
4805 automagic which was evaluating the input line silently.
4808 automagic which was evaluating the input line silently.
4806
4809
4807 This is a potentially very nasty bug, if the input has side
4810 This is a potentially very nasty bug, if the input has side
4808 effects which must not be repeated. The code is much cleaner now,
4811 effects which must not be repeated. The code is much cleaner now,
4809 without any blanket 'except' left and with a regexp test for
4812 without any blanket 'except' left and with a regexp test for
4810 actual function names.
4813 actual function names.
4811
4814
4812 But an eval remains, which I'm not fully comfortable with. I just
4815 But an eval remains, which I'm not fully comfortable with. I just
4813 don't know how to find out if an expression could be a callable in
4816 don't know how to find out if an expression could be a callable in
4814 the user's namespace without doing an eval on the string. However
4817 the user's namespace without doing an eval on the string. However
4815 that string is now much more strictly checked so that no code
4818 that string is now much more strictly checked so that no code
4816 slips by, so the eval should only happen for things that can
4819 slips by, so the eval should only happen for things that can
4817 really be only function/method names.
4820 really be only function/method names.
4818
4821
4819 2002-10-15 Fernando Perez <fperez@colorado.edu>
4822 2002-10-15 Fernando Perez <fperez@colorado.edu>
4820
4823
4821 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4824 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4822 OSX information to main manual, removed README_Mac_OSX file from
4825 OSX information to main manual, removed README_Mac_OSX file from
4823 distribution. Also updated credits for recent additions.
4826 distribution. Also updated credits for recent additions.
4824
4827
4825 2002-10-10 Fernando Perez <fperez@colorado.edu>
4828 2002-10-10 Fernando Perez <fperez@colorado.edu>
4826
4829
4827 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4830 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4828 terminal-related issues. Many thanks to Andrea Riciputi
4831 terminal-related issues. Many thanks to Andrea Riciputi
4829 <andrea.riciputi-AT-libero.it> for writing it.
4832 <andrea.riciputi-AT-libero.it> for writing it.
4830
4833
4831 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4834 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4832 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4835 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4833
4836
4834 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4837 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4835 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4838 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4836 <syver-en-AT-online.no> who both submitted patches for this problem.
4839 <syver-en-AT-online.no> who both submitted patches for this problem.
4837
4840
4838 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4841 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4839 global embedding to make sure that things don't overwrite user
4842 global embedding to make sure that things don't overwrite user
4840 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4843 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4841
4844
4842 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4845 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4843 compatibility. Thanks to Hayden Callow
4846 compatibility. Thanks to Hayden Callow
4844 <h.callow-AT-elec.canterbury.ac.nz>
4847 <h.callow-AT-elec.canterbury.ac.nz>
4845
4848
4846 2002-10-04 Fernando Perez <fperez@colorado.edu>
4849 2002-10-04 Fernando Perez <fperez@colorado.edu>
4847
4850
4848 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4851 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4849 Gnuplot.File objects.
4852 Gnuplot.File objects.
4850
4853
4851 2002-07-23 Fernando Perez <fperez@colorado.edu>
4854 2002-07-23 Fernando Perez <fperez@colorado.edu>
4852
4855
4853 * IPython/genutils.py (timing): Added timings() and timing() for
4856 * IPython/genutils.py (timing): Added timings() and timing() for
4854 quick access to the most commonly needed data, the execution
4857 quick access to the most commonly needed data, the execution
4855 times. Old timing() renamed to timings_out().
4858 times. Old timing() renamed to timings_out().
4856
4859
4857 2002-07-18 Fernando Perez <fperez@colorado.edu>
4860 2002-07-18 Fernando Perez <fperez@colorado.edu>
4858
4861
4859 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4862 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4860 bug with nested instances disrupting the parent's tab completion.
4863 bug with nested instances disrupting the parent's tab completion.
4861
4864
4862 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4865 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4863 all_completions code to begin the emacs integration.
4866 all_completions code to begin the emacs integration.
4864
4867
4865 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4868 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4866 argument to allow titling individual arrays when plotting.
4869 argument to allow titling individual arrays when plotting.
4867
4870
4868 2002-07-15 Fernando Perez <fperez@colorado.edu>
4871 2002-07-15 Fernando Perez <fperez@colorado.edu>
4869
4872
4870 * setup.py (make_shortcut): changed to retrieve the value of
4873 * setup.py (make_shortcut): changed to retrieve the value of
4871 'Program Files' directory from the registry (this value changes in
4874 'Program Files' directory from the registry (this value changes in
4872 non-english versions of Windows). Thanks to Thomas Fanslau
4875 non-english versions of Windows). Thanks to Thomas Fanslau
4873 <tfanslau-AT-gmx.de> for the report.
4876 <tfanslau-AT-gmx.de> for the report.
4874
4877
4875 2002-07-10 Fernando Perez <fperez@colorado.edu>
4878 2002-07-10 Fernando Perez <fperez@colorado.edu>
4876
4879
4877 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4880 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4878 a bug in pdb, which crashes if a line with only whitespace is
4881 a bug in pdb, which crashes if a line with only whitespace is
4879 entered. Bug report submitted to sourceforge.
4882 entered. Bug report submitted to sourceforge.
4880
4883
4881 2002-07-09 Fernando Perez <fperez@colorado.edu>
4884 2002-07-09 Fernando Perez <fperez@colorado.edu>
4882
4885
4883 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4886 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4884 reporting exceptions (it's a bug in inspect.py, I just set a
4887 reporting exceptions (it's a bug in inspect.py, I just set a
4885 workaround).
4888 workaround).
4886
4889
4887 2002-07-08 Fernando Perez <fperez@colorado.edu>
4890 2002-07-08 Fernando Perez <fperez@colorado.edu>
4888
4891
4889 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4892 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4890 __IPYTHON__ in __builtins__ to show up in user_ns.
4893 __IPYTHON__ in __builtins__ to show up in user_ns.
4891
4894
4892 2002-07-03 Fernando Perez <fperez@colorado.edu>
4895 2002-07-03 Fernando Perez <fperez@colorado.edu>
4893
4896
4894 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4897 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4895 name from @gp_set_instance to @gp_set_default.
4898 name from @gp_set_instance to @gp_set_default.
4896
4899
4897 * IPython/ipmaker.py (make_IPython): default editor value set to
4900 * IPython/ipmaker.py (make_IPython): default editor value set to
4898 '0' (a string), to match the rc file. Otherwise will crash when
4901 '0' (a string), to match the rc file. Otherwise will crash when
4899 .strip() is called on it.
4902 .strip() is called on it.
4900
4903
4901
4904
4902 2002-06-28 Fernando Perez <fperez@colorado.edu>
4905 2002-06-28 Fernando Perez <fperez@colorado.edu>
4903
4906
4904 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4907 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4905 of files in current directory when a file is executed via
4908 of files in current directory when a file is executed via
4906 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4909 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4907
4910
4908 * setup.py (manfiles): fix for rpm builds, submitted by RA
4911 * setup.py (manfiles): fix for rpm builds, submitted by RA
4909 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4912 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4910
4913
4911 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4914 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4912 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4915 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4913 string!). A. Schmolck caught this one.
4916 string!). A. Schmolck caught this one.
4914
4917
4915 2002-06-27 Fernando Perez <fperez@colorado.edu>
4918 2002-06-27 Fernando Perez <fperez@colorado.edu>
4916
4919
4917 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4920 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4918 defined files at the cmd line. __name__ wasn't being set to
4921 defined files at the cmd line. __name__ wasn't being set to
4919 __main__.
4922 __main__.
4920
4923
4921 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4924 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4922 regular lists and tuples besides Numeric arrays.
4925 regular lists and tuples besides Numeric arrays.
4923
4926
4924 * IPython/Prompts.py (CachedOutput.__call__): Added output
4927 * IPython/Prompts.py (CachedOutput.__call__): Added output
4925 supression for input ending with ';'. Similar to Mathematica and
4928 supression for input ending with ';'. Similar to Mathematica and
4926 Matlab. The _* vars and Out[] list are still updated, just like
4929 Matlab. The _* vars and Out[] list are still updated, just like
4927 Mathematica behaves.
4930 Mathematica behaves.
4928
4931
4929 2002-06-25 Fernando Perez <fperez@colorado.edu>
4932 2002-06-25 Fernando Perez <fperez@colorado.edu>
4930
4933
4931 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4934 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4932 .ini extensions for profiels under Windows.
4935 .ini extensions for profiels under Windows.
4933
4936
4934 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4937 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4935 string form. Fix contributed by Alexander Schmolck
4938 string form. Fix contributed by Alexander Schmolck
4936 <a.schmolck-AT-gmx.net>
4939 <a.schmolck-AT-gmx.net>
4937
4940
4938 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4941 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4939 pre-configured Gnuplot instance.
4942 pre-configured Gnuplot instance.
4940
4943
4941 2002-06-21 Fernando Perez <fperez@colorado.edu>
4944 2002-06-21 Fernando Perez <fperez@colorado.edu>
4942
4945
4943 * IPython/numutils.py (exp_safe): new function, works around the
4946 * IPython/numutils.py (exp_safe): new function, works around the
4944 underflow problems in Numeric.
4947 underflow problems in Numeric.
4945 (log2): New fn. Safe log in base 2: returns exact integer answer
4948 (log2): New fn. Safe log in base 2: returns exact integer answer
4946 for exact integer powers of 2.
4949 for exact integer powers of 2.
4947
4950
4948 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4951 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4949 properly.
4952 properly.
4950
4953
4951 2002-06-20 Fernando Perez <fperez@colorado.edu>
4954 2002-06-20 Fernando Perez <fperez@colorado.edu>
4952
4955
4953 * IPython/genutils.py (timing): new function like
4956 * IPython/genutils.py (timing): new function like
4954 Mathematica's. Similar to time_test, but returns more info.
4957 Mathematica's. Similar to time_test, but returns more info.
4955
4958
4956 2002-06-18 Fernando Perez <fperez@colorado.edu>
4959 2002-06-18 Fernando Perez <fperez@colorado.edu>
4957
4960
4958 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4961 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4959 according to Mike Heeter's suggestions.
4962 according to Mike Heeter's suggestions.
4960
4963
4961 2002-06-16 Fernando Perez <fperez@colorado.edu>
4964 2002-06-16 Fernando Perez <fperez@colorado.edu>
4962
4965
4963 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4966 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4964 system. GnuplotMagic is gone as a user-directory option. New files
4967 system. GnuplotMagic is gone as a user-directory option. New files
4965 make it easier to use all the gnuplot stuff both from external
4968 make it easier to use all the gnuplot stuff both from external
4966 programs as well as from IPython. Had to rewrite part of
4969 programs as well as from IPython. Had to rewrite part of
4967 hardcopy() b/c of a strange bug: often the ps files simply don't
4970 hardcopy() b/c of a strange bug: often the ps files simply don't
4968 get created, and require a repeat of the command (often several
4971 get created, and require a repeat of the command (often several
4969 times).
4972 times).
4970
4973
4971 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4974 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4972 resolve output channel at call time, so that if sys.stderr has
4975 resolve output channel at call time, so that if sys.stderr has
4973 been redirected by user this gets honored.
4976 been redirected by user this gets honored.
4974
4977
4975 2002-06-13 Fernando Perez <fperez@colorado.edu>
4978 2002-06-13 Fernando Perez <fperez@colorado.edu>
4976
4979
4977 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4980 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4978 IPShell. Kept a copy with the old names to avoid breaking people's
4981 IPShell. Kept a copy with the old names to avoid breaking people's
4979 embedded code.
4982 embedded code.
4980
4983
4981 * IPython/ipython: simplified it to the bare minimum after
4984 * IPython/ipython: simplified it to the bare minimum after
4982 Holger's suggestions. Added info about how to use it in
4985 Holger's suggestions. Added info about how to use it in
4983 PYTHONSTARTUP.
4986 PYTHONSTARTUP.
4984
4987
4985 * IPython/Shell.py (IPythonShell): changed the options passing
4988 * IPython/Shell.py (IPythonShell): changed the options passing
4986 from a string with funky %s replacements to a straight list. Maybe
4989 from a string with funky %s replacements to a straight list. Maybe
4987 a bit more typing, but it follows sys.argv conventions, so there's
4990 a bit more typing, but it follows sys.argv conventions, so there's
4988 less special-casing to remember.
4991 less special-casing to remember.
4989
4992
4990 2002-06-12 Fernando Perez <fperez@colorado.edu>
4993 2002-06-12 Fernando Perez <fperez@colorado.edu>
4991
4994
4992 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4995 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4993 command. Thanks to a suggestion by Mike Heeter.
4996 command. Thanks to a suggestion by Mike Heeter.
4994 (Magic.magic_pfile): added behavior to look at filenames if given
4997 (Magic.magic_pfile): added behavior to look at filenames if given
4995 arg is not a defined object.
4998 arg is not a defined object.
4996 (Magic.magic_save): New @save function to save code snippets. Also
4999 (Magic.magic_save): New @save function to save code snippets. Also
4997 a Mike Heeter idea.
5000 a Mike Heeter idea.
4998
5001
4999 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5002 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5000 plot() and replot(). Much more convenient now, especially for
5003 plot() and replot(). Much more convenient now, especially for
5001 interactive use.
5004 interactive use.
5002
5005
5003 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5006 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5004 filenames.
5007 filenames.
5005
5008
5006 2002-06-02 Fernando Perez <fperez@colorado.edu>
5009 2002-06-02 Fernando Perez <fperez@colorado.edu>
5007
5010
5008 * IPython/Struct.py (Struct.__init__): modified to admit
5011 * IPython/Struct.py (Struct.__init__): modified to admit
5009 initialization via another struct.
5012 initialization via another struct.
5010
5013
5011 * IPython/genutils.py (SystemExec.__init__): New stateful
5014 * IPython/genutils.py (SystemExec.__init__): New stateful
5012 interface to xsys and bq. Useful for writing system scripts.
5015 interface to xsys and bq. Useful for writing system scripts.
5013
5016
5014 2002-05-30 Fernando Perez <fperez@colorado.edu>
5017 2002-05-30 Fernando Perez <fperez@colorado.edu>
5015
5018
5016 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5019 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5017 documents. This will make the user download smaller (it's getting
5020 documents. This will make the user download smaller (it's getting
5018 too big).
5021 too big).
5019
5022
5020 2002-05-29 Fernando Perez <fperez@colorado.edu>
5023 2002-05-29 Fernando Perez <fperez@colorado.edu>
5021
5024
5022 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5025 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5023 fix problems with shelve and pickle. Seems to work, but I don't
5026 fix problems with shelve and pickle. Seems to work, but I don't
5024 know if corner cases break it. Thanks to Mike Heeter
5027 know if corner cases break it. Thanks to Mike Heeter
5025 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5028 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5026
5029
5027 2002-05-24 Fernando Perez <fperez@colorado.edu>
5030 2002-05-24 Fernando Perez <fperez@colorado.edu>
5028
5031
5029 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5032 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5030 macros having broken.
5033 macros having broken.
5031
5034
5032 2002-05-21 Fernando Perez <fperez@colorado.edu>
5035 2002-05-21 Fernando Perez <fperez@colorado.edu>
5033
5036
5034 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5037 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5035 introduced logging bug: all history before logging started was
5038 introduced logging bug: all history before logging started was
5036 being written one character per line! This came from the redesign
5039 being written one character per line! This came from the redesign
5037 of the input history as a special list which slices to strings,
5040 of the input history as a special list which slices to strings,
5038 not to lists.
5041 not to lists.
5039
5042
5040 2002-05-20 Fernando Perez <fperez@colorado.edu>
5043 2002-05-20 Fernando Perez <fperez@colorado.edu>
5041
5044
5042 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5045 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5043 be an attribute of all classes in this module. The design of these
5046 be an attribute of all classes in this module. The design of these
5044 classes needs some serious overhauling.
5047 classes needs some serious overhauling.
5045
5048
5046 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5049 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5047 which was ignoring '_' in option names.
5050 which was ignoring '_' in option names.
5048
5051
5049 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5052 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5050 'Verbose_novars' to 'Context' and made it the new default. It's a
5053 'Verbose_novars' to 'Context' and made it the new default. It's a
5051 bit more readable and also safer than verbose.
5054 bit more readable and also safer than verbose.
5052
5055
5053 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5056 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5054 triple-quoted strings.
5057 triple-quoted strings.
5055
5058
5056 * IPython/OInspect.py (__all__): new module exposing the object
5059 * IPython/OInspect.py (__all__): new module exposing the object
5057 introspection facilities. Now the corresponding magics are dummy
5060 introspection facilities. Now the corresponding magics are dummy
5058 wrappers around this. Having this module will make it much easier
5061 wrappers around this. Having this module will make it much easier
5059 to put these functions into our modified pdb.
5062 to put these functions into our modified pdb.
5060 This new object inspector system uses the new colorizing module,
5063 This new object inspector system uses the new colorizing module,
5061 so source code and other things are nicely syntax highlighted.
5064 so source code and other things are nicely syntax highlighted.
5062
5065
5063 2002-05-18 Fernando Perez <fperez@colorado.edu>
5066 2002-05-18 Fernando Perez <fperez@colorado.edu>
5064
5067
5065 * IPython/ColorANSI.py: Split the coloring tools into a separate
5068 * IPython/ColorANSI.py: Split the coloring tools into a separate
5066 module so I can use them in other code easier (they were part of
5069 module so I can use them in other code easier (they were part of
5067 ultraTB).
5070 ultraTB).
5068
5071
5069 2002-05-17 Fernando Perez <fperez@colorado.edu>
5072 2002-05-17 Fernando Perez <fperez@colorado.edu>
5070
5073
5071 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5074 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5072 fixed it to set the global 'g' also to the called instance, as
5075 fixed it to set the global 'g' also to the called instance, as
5073 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5076 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5074 user's 'g' variables).
5077 user's 'g' variables).
5075
5078
5076 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5079 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5077 global variables (aliases to _ih,_oh) so that users which expect
5080 global variables (aliases to _ih,_oh) so that users which expect
5078 In[5] or Out[7] to work aren't unpleasantly surprised.
5081 In[5] or Out[7] to work aren't unpleasantly surprised.
5079 (InputList.__getslice__): new class to allow executing slices of
5082 (InputList.__getslice__): new class to allow executing slices of
5080 input history directly. Very simple class, complements the use of
5083 input history directly. Very simple class, complements the use of
5081 macros.
5084 macros.
5082
5085
5083 2002-05-16 Fernando Perez <fperez@colorado.edu>
5086 2002-05-16 Fernando Perez <fperez@colorado.edu>
5084
5087
5085 * setup.py (docdirbase): make doc directory be just doc/IPython
5088 * setup.py (docdirbase): make doc directory be just doc/IPython
5086 without version numbers, it will reduce clutter for users.
5089 without version numbers, it will reduce clutter for users.
5087
5090
5088 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5091 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5089 execfile call to prevent possible memory leak. See for details:
5092 execfile call to prevent possible memory leak. See for details:
5090 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5093 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5091
5094
5092 2002-05-15 Fernando Perez <fperez@colorado.edu>
5095 2002-05-15 Fernando Perez <fperez@colorado.edu>
5093
5096
5094 * IPython/Magic.py (Magic.magic_psource): made the object
5097 * IPython/Magic.py (Magic.magic_psource): made the object
5095 introspection names be more standard: pdoc, pdef, pfile and
5098 introspection names be more standard: pdoc, pdef, pfile and
5096 psource. They all print/page their output, and it makes
5099 psource. They all print/page their output, and it makes
5097 remembering them easier. Kept old names for compatibility as
5100 remembering them easier. Kept old names for compatibility as
5098 aliases.
5101 aliases.
5099
5102
5100 2002-05-14 Fernando Perez <fperez@colorado.edu>
5103 2002-05-14 Fernando Perez <fperez@colorado.edu>
5101
5104
5102 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5105 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5103 what the mouse problem was. The trick is to use gnuplot with temp
5106 what the mouse problem was. The trick is to use gnuplot with temp
5104 files and NOT with pipes (for data communication), because having
5107 files and NOT with pipes (for data communication), because having
5105 both pipes and the mouse on is bad news.
5108 both pipes and the mouse on is bad news.
5106
5109
5107 2002-05-13 Fernando Perez <fperez@colorado.edu>
5110 2002-05-13 Fernando Perez <fperez@colorado.edu>
5108
5111
5109 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5112 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5110 bug. Information would be reported about builtins even when
5113 bug. Information would be reported about builtins even when
5111 user-defined functions overrode them.
5114 user-defined functions overrode them.
5112
5115
5113 2002-05-11 Fernando Perez <fperez@colorado.edu>
5116 2002-05-11 Fernando Perez <fperez@colorado.edu>
5114
5117
5115 * IPython/__init__.py (__all__): removed FlexCompleter from
5118 * IPython/__init__.py (__all__): removed FlexCompleter from
5116 __all__ so that things don't fail in platforms without readline.
5119 __all__ so that things don't fail in platforms without readline.
5117
5120
5118 2002-05-10 Fernando Perez <fperez@colorado.edu>
5121 2002-05-10 Fernando Perez <fperez@colorado.edu>
5119
5122
5120 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5123 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5121 it requires Numeric, effectively making Numeric a dependency for
5124 it requires Numeric, effectively making Numeric a dependency for
5122 IPython.
5125 IPython.
5123
5126
5124 * Released 0.2.13
5127 * Released 0.2.13
5125
5128
5126 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5129 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5127 profiler interface. Now all the major options from the profiler
5130 profiler interface. Now all the major options from the profiler
5128 module are directly supported in IPython, both for single
5131 module are directly supported in IPython, both for single
5129 expressions (@prun) and for full programs (@run -p).
5132 expressions (@prun) and for full programs (@run -p).
5130
5133
5131 2002-05-09 Fernando Perez <fperez@colorado.edu>
5134 2002-05-09 Fernando Perez <fperez@colorado.edu>
5132
5135
5133 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5136 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5134 magic properly formatted for screen.
5137 magic properly formatted for screen.
5135
5138
5136 * setup.py (make_shortcut): Changed things to put pdf version in
5139 * setup.py (make_shortcut): Changed things to put pdf version in
5137 doc/ instead of doc/manual (had to change lyxport a bit).
5140 doc/ instead of doc/manual (had to change lyxport a bit).
5138
5141
5139 * IPython/Magic.py (Profile.string_stats): made profile runs go
5142 * IPython/Magic.py (Profile.string_stats): made profile runs go
5140 through pager (they are long and a pager allows searching, saving,
5143 through pager (they are long and a pager allows searching, saving,
5141 etc.)
5144 etc.)
5142
5145
5143 2002-05-08 Fernando Perez <fperez@colorado.edu>
5146 2002-05-08 Fernando Perez <fperez@colorado.edu>
5144
5147
5145 * Released 0.2.12
5148 * Released 0.2.12
5146
5149
5147 2002-05-06 Fernando Perez <fperez@colorado.edu>
5150 2002-05-06 Fernando Perez <fperez@colorado.edu>
5148
5151
5149 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5152 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5150 introduced); 'hist n1 n2' was broken.
5153 introduced); 'hist n1 n2' was broken.
5151 (Magic.magic_pdb): added optional on/off arguments to @pdb
5154 (Magic.magic_pdb): added optional on/off arguments to @pdb
5152 (Magic.magic_run): added option -i to @run, which executes code in
5155 (Magic.magic_run): added option -i to @run, which executes code in
5153 the IPython namespace instead of a clean one. Also added @irun as
5156 the IPython namespace instead of a clean one. Also added @irun as
5154 an alias to @run -i.
5157 an alias to @run -i.
5155
5158
5156 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5159 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5157 fixed (it didn't really do anything, the namespaces were wrong).
5160 fixed (it didn't really do anything, the namespaces were wrong).
5158
5161
5159 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5162 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5160
5163
5161 * IPython/__init__.py (__all__): Fixed package namespace, now
5164 * IPython/__init__.py (__all__): Fixed package namespace, now
5162 'import IPython' does give access to IPython.<all> as
5165 'import IPython' does give access to IPython.<all> as
5163 expected. Also renamed __release__ to Release.
5166 expected. Also renamed __release__ to Release.
5164
5167
5165 * IPython/Debugger.py (__license__): created new Pdb class which
5168 * IPython/Debugger.py (__license__): created new Pdb class which
5166 functions like a drop-in for the normal pdb.Pdb but does NOT
5169 functions like a drop-in for the normal pdb.Pdb but does NOT
5167 import readline by default. This way it doesn't muck up IPython's
5170 import readline by default. This way it doesn't muck up IPython's
5168 readline handling, and now tab-completion finally works in the
5171 readline handling, and now tab-completion finally works in the
5169 debugger -- sort of. It completes things globally visible, but the
5172 debugger -- sort of. It completes things globally visible, but the
5170 completer doesn't track the stack as pdb walks it. That's a bit
5173 completer doesn't track the stack as pdb walks it. That's a bit
5171 tricky, and I'll have to implement it later.
5174 tricky, and I'll have to implement it later.
5172
5175
5173 2002-05-05 Fernando Perez <fperez@colorado.edu>
5176 2002-05-05 Fernando Perez <fperez@colorado.edu>
5174
5177
5175 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5178 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5176 magic docstrings when printed via ? (explicit \'s were being
5179 magic docstrings when printed via ? (explicit \'s were being
5177 printed).
5180 printed).
5178
5181
5179 * IPython/ipmaker.py (make_IPython): fixed namespace
5182 * IPython/ipmaker.py (make_IPython): fixed namespace
5180 identification bug. Now variables loaded via logs or command-line
5183 identification bug. Now variables loaded via logs or command-line
5181 files are recognized in the interactive namespace by @who.
5184 files are recognized in the interactive namespace by @who.
5182
5185
5183 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5186 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5184 log replay system stemming from the string form of Structs.
5187 log replay system stemming from the string form of Structs.
5185
5188
5186 * IPython/Magic.py (Macro.__init__): improved macros to properly
5189 * IPython/Magic.py (Macro.__init__): improved macros to properly
5187 handle magic commands in them.
5190 handle magic commands in them.
5188 (Magic.magic_logstart): usernames are now expanded so 'logstart
5191 (Magic.magic_logstart): usernames are now expanded so 'logstart
5189 ~/mylog' now works.
5192 ~/mylog' now works.
5190
5193
5191 * IPython/iplib.py (complete): fixed bug where paths starting with
5194 * IPython/iplib.py (complete): fixed bug where paths starting with
5192 '/' would be completed as magic names.
5195 '/' would be completed as magic names.
5193
5196
5194 2002-05-04 Fernando Perez <fperez@colorado.edu>
5197 2002-05-04 Fernando Perez <fperez@colorado.edu>
5195
5198
5196 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5199 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5197 allow running full programs under the profiler's control.
5200 allow running full programs under the profiler's control.
5198
5201
5199 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5202 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5200 mode to report exceptions verbosely but without formatting
5203 mode to report exceptions verbosely but without formatting
5201 variables. This addresses the issue of ipython 'freezing' (it's
5204 variables. This addresses the issue of ipython 'freezing' (it's
5202 not frozen, but caught in an expensive formatting loop) when huge
5205 not frozen, but caught in an expensive formatting loop) when huge
5203 variables are in the context of an exception.
5206 variables are in the context of an exception.
5204 (VerboseTB.text): Added '--->' markers at line where exception was
5207 (VerboseTB.text): Added '--->' markers at line where exception was
5205 triggered. Much clearer to read, especially in NoColor modes.
5208 triggered. Much clearer to read, especially in NoColor modes.
5206
5209
5207 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5210 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5208 implemented in reverse when changing to the new parse_options().
5211 implemented in reverse when changing to the new parse_options().
5209
5212
5210 2002-05-03 Fernando Perez <fperez@colorado.edu>
5213 2002-05-03 Fernando Perez <fperez@colorado.edu>
5211
5214
5212 * IPython/Magic.py (Magic.parse_options): new function so that
5215 * IPython/Magic.py (Magic.parse_options): new function so that
5213 magics can parse options easier.
5216 magics can parse options easier.
5214 (Magic.magic_prun): new function similar to profile.run(),
5217 (Magic.magic_prun): new function similar to profile.run(),
5215 suggested by Chris Hart.
5218 suggested by Chris Hart.
5216 (Magic.magic_cd): fixed behavior so that it only changes if
5219 (Magic.magic_cd): fixed behavior so that it only changes if
5217 directory actually is in history.
5220 directory actually is in history.
5218
5221
5219 * IPython/usage.py (__doc__): added information about potential
5222 * IPython/usage.py (__doc__): added information about potential
5220 slowness of Verbose exception mode when there are huge data
5223 slowness of Verbose exception mode when there are huge data
5221 structures to be formatted (thanks to Archie Paulson).
5224 structures to be formatted (thanks to Archie Paulson).
5222
5225
5223 * IPython/ipmaker.py (make_IPython): Changed default logging
5226 * IPython/ipmaker.py (make_IPython): Changed default logging
5224 (when simply called with -log) to use curr_dir/ipython.log in
5227 (when simply called with -log) to use curr_dir/ipython.log in
5225 rotate mode. Fixed crash which was occuring with -log before
5228 rotate mode. Fixed crash which was occuring with -log before
5226 (thanks to Jim Boyle).
5229 (thanks to Jim Boyle).
5227
5230
5228 2002-05-01 Fernando Perez <fperez@colorado.edu>
5231 2002-05-01 Fernando Perez <fperez@colorado.edu>
5229
5232
5230 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5233 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5231 was nasty -- though somewhat of a corner case).
5234 was nasty -- though somewhat of a corner case).
5232
5235
5233 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5236 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5234 text (was a bug).
5237 text (was a bug).
5235
5238
5236 2002-04-30 Fernando Perez <fperez@colorado.edu>
5239 2002-04-30 Fernando Perez <fperez@colorado.edu>
5237
5240
5238 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5241 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5239 a print after ^D or ^C from the user so that the In[] prompt
5242 a print after ^D or ^C from the user so that the In[] prompt
5240 doesn't over-run the gnuplot one.
5243 doesn't over-run the gnuplot one.
5241
5244
5242 2002-04-29 Fernando Perez <fperez@colorado.edu>
5245 2002-04-29 Fernando Perez <fperez@colorado.edu>
5243
5246
5244 * Released 0.2.10
5247 * Released 0.2.10
5245
5248
5246 * IPython/__release__.py (version): get date dynamically.
5249 * IPython/__release__.py (version): get date dynamically.
5247
5250
5248 * Misc. documentation updates thanks to Arnd's comments. Also ran
5251 * Misc. documentation updates thanks to Arnd's comments. Also ran
5249 a full spellcheck on the manual (hadn't been done in a while).
5252 a full spellcheck on the manual (hadn't been done in a while).
5250
5253
5251 2002-04-27 Fernando Perez <fperez@colorado.edu>
5254 2002-04-27 Fernando Perez <fperez@colorado.edu>
5252
5255
5253 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5256 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5254 starting a log in mid-session would reset the input history list.
5257 starting a log in mid-session would reset the input history list.
5255
5258
5256 2002-04-26 Fernando Perez <fperez@colorado.edu>
5259 2002-04-26 Fernando Perez <fperez@colorado.edu>
5257
5260
5258 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5261 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5259 all files were being included in an update. Now anything in
5262 all files were being included in an update. Now anything in
5260 UserConfig that matches [A-Za-z]*.py will go (this excludes
5263 UserConfig that matches [A-Za-z]*.py will go (this excludes
5261 __init__.py)
5264 __init__.py)
5262
5265
5263 2002-04-25 Fernando Perez <fperez@colorado.edu>
5266 2002-04-25 Fernando Perez <fperez@colorado.edu>
5264
5267
5265 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5268 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5266 to __builtins__ so that any form of embedded or imported code can
5269 to __builtins__ so that any form of embedded or imported code can
5267 test for being inside IPython.
5270 test for being inside IPython.
5268
5271
5269 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5272 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5270 changed to GnuplotMagic because it's now an importable module,
5273 changed to GnuplotMagic because it's now an importable module,
5271 this makes the name follow that of the standard Gnuplot module.
5274 this makes the name follow that of the standard Gnuplot module.
5272 GnuplotMagic can now be loaded at any time in mid-session.
5275 GnuplotMagic can now be loaded at any time in mid-session.
5273
5276
5274 2002-04-24 Fernando Perez <fperez@colorado.edu>
5277 2002-04-24 Fernando Perez <fperez@colorado.edu>
5275
5278
5276 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5279 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5277 the globals (IPython has its own namespace) and the
5280 the globals (IPython has its own namespace) and the
5278 PhysicalQuantity stuff is much better anyway.
5281 PhysicalQuantity stuff is much better anyway.
5279
5282
5280 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5283 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5281 embedding example to standard user directory for
5284 embedding example to standard user directory for
5282 distribution. Also put it in the manual.
5285 distribution. Also put it in the manual.
5283
5286
5284 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5287 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5285 instance as first argument (so it doesn't rely on some obscure
5288 instance as first argument (so it doesn't rely on some obscure
5286 hidden global).
5289 hidden global).
5287
5290
5288 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5291 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5289 delimiters. While it prevents ().TAB from working, it allows
5292 delimiters. While it prevents ().TAB from working, it allows
5290 completions in open (... expressions. This is by far a more common
5293 completions in open (... expressions. This is by far a more common
5291 case.
5294 case.
5292
5295
5293 2002-04-23 Fernando Perez <fperez@colorado.edu>
5296 2002-04-23 Fernando Perez <fperez@colorado.edu>
5294
5297
5295 * IPython/Extensions/InterpreterPasteInput.py: new
5298 * IPython/Extensions/InterpreterPasteInput.py: new
5296 syntax-processing module for pasting lines with >>> or ... at the
5299 syntax-processing module for pasting lines with >>> or ... at the
5297 start.
5300 start.
5298
5301
5299 * IPython/Extensions/PhysicalQ_Interactive.py
5302 * IPython/Extensions/PhysicalQ_Interactive.py
5300 (PhysicalQuantityInteractive.__int__): fixed to work with either
5303 (PhysicalQuantityInteractive.__int__): fixed to work with either
5301 Numeric or math.
5304 Numeric or math.
5302
5305
5303 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5306 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5304 provided profiles. Now we have:
5307 provided profiles. Now we have:
5305 -math -> math module as * and cmath with its own namespace.
5308 -math -> math module as * and cmath with its own namespace.
5306 -numeric -> Numeric as *, plus gnuplot & grace
5309 -numeric -> Numeric as *, plus gnuplot & grace
5307 -physics -> same as before
5310 -physics -> same as before
5308
5311
5309 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5312 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5310 user-defined magics wouldn't be found by @magic if they were
5313 user-defined magics wouldn't be found by @magic if they were
5311 defined as class methods. Also cleaned up the namespace search
5314 defined as class methods. Also cleaned up the namespace search
5312 logic and the string building (to use %s instead of many repeated
5315 logic and the string building (to use %s instead of many repeated
5313 string adds).
5316 string adds).
5314
5317
5315 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5318 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5316 of user-defined magics to operate with class methods (cleaner, in
5319 of user-defined magics to operate with class methods (cleaner, in
5317 line with the gnuplot code).
5320 line with the gnuplot code).
5318
5321
5319 2002-04-22 Fernando Perez <fperez@colorado.edu>
5322 2002-04-22 Fernando Perez <fperez@colorado.edu>
5320
5323
5321 * setup.py: updated dependency list so that manual is updated when
5324 * setup.py: updated dependency list so that manual is updated when
5322 all included files change.
5325 all included files change.
5323
5326
5324 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5327 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5325 the delimiter removal option (the fix is ugly right now).
5328 the delimiter removal option (the fix is ugly right now).
5326
5329
5327 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5330 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5328 all of the math profile (quicker loading, no conflict between
5331 all of the math profile (quicker loading, no conflict between
5329 g-9.8 and g-gnuplot).
5332 g-9.8 and g-gnuplot).
5330
5333
5331 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5334 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5332 name of post-mortem files to IPython_crash_report.txt.
5335 name of post-mortem files to IPython_crash_report.txt.
5333
5336
5334 * Cleanup/update of the docs. Added all the new readline info and
5337 * Cleanup/update of the docs. Added all the new readline info and
5335 formatted all lists as 'real lists'.
5338 formatted all lists as 'real lists'.
5336
5339
5337 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5340 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5338 tab-completion options, since the full readline parse_and_bind is
5341 tab-completion options, since the full readline parse_and_bind is
5339 now accessible.
5342 now accessible.
5340
5343
5341 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5344 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5342 handling of readline options. Now users can specify any string to
5345 handling of readline options. Now users can specify any string to
5343 be passed to parse_and_bind(), as well as the delimiters to be
5346 be passed to parse_and_bind(), as well as the delimiters to be
5344 removed.
5347 removed.
5345 (InteractiveShell.__init__): Added __name__ to the global
5348 (InteractiveShell.__init__): Added __name__ to the global
5346 namespace so that things like Itpl which rely on its existence
5349 namespace so that things like Itpl which rely on its existence
5347 don't crash.
5350 don't crash.
5348 (InteractiveShell._prefilter): Defined the default with a _ so
5351 (InteractiveShell._prefilter): Defined the default with a _ so
5349 that prefilter() is easier to override, while the default one
5352 that prefilter() is easier to override, while the default one
5350 remains available.
5353 remains available.
5351
5354
5352 2002-04-18 Fernando Perez <fperez@colorado.edu>
5355 2002-04-18 Fernando Perez <fperez@colorado.edu>
5353
5356
5354 * Added information about pdb in the docs.
5357 * Added information about pdb in the docs.
5355
5358
5356 2002-04-17 Fernando Perez <fperez@colorado.edu>
5359 2002-04-17 Fernando Perez <fperez@colorado.edu>
5357
5360
5358 * IPython/ipmaker.py (make_IPython): added rc_override option to
5361 * IPython/ipmaker.py (make_IPython): added rc_override option to
5359 allow passing config options at creation time which may override
5362 allow passing config options at creation time which may override
5360 anything set in the config files or command line. This is
5363 anything set in the config files or command line. This is
5361 particularly useful for configuring embedded instances.
5364 particularly useful for configuring embedded instances.
5362
5365
5363 2002-04-15 Fernando Perez <fperez@colorado.edu>
5366 2002-04-15 Fernando Perez <fperez@colorado.edu>
5364
5367
5365 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5368 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5366 crash embedded instances because of the input cache falling out of
5369 crash embedded instances because of the input cache falling out of
5367 sync with the output counter.
5370 sync with the output counter.
5368
5371
5369 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5372 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5370 mode which calls pdb after an uncaught exception in IPython itself.
5373 mode which calls pdb after an uncaught exception in IPython itself.
5371
5374
5372 2002-04-14 Fernando Perez <fperez@colorado.edu>
5375 2002-04-14 Fernando Perez <fperez@colorado.edu>
5373
5376
5374 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5377 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5375 readline, fix it back after each call.
5378 readline, fix it back after each call.
5376
5379
5377 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5380 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5378 method to force all access via __call__(), which guarantees that
5381 method to force all access via __call__(), which guarantees that
5379 traceback references are properly deleted.
5382 traceback references are properly deleted.
5380
5383
5381 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5384 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5382 improve printing when pprint is in use.
5385 improve printing when pprint is in use.
5383
5386
5384 2002-04-13 Fernando Perez <fperez@colorado.edu>
5387 2002-04-13 Fernando Perez <fperez@colorado.edu>
5385
5388
5386 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5389 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5387 exceptions aren't caught anymore. If the user triggers one, he
5390 exceptions aren't caught anymore. If the user triggers one, he
5388 should know why he's doing it and it should go all the way up,
5391 should know why he's doing it and it should go all the way up,
5389 just like any other exception. So now @abort will fully kill the
5392 just like any other exception. So now @abort will fully kill the
5390 embedded interpreter and the embedding code (unless that happens
5393 embedded interpreter and the embedding code (unless that happens
5391 to catch SystemExit).
5394 to catch SystemExit).
5392
5395
5393 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5396 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5394 and a debugger() method to invoke the interactive pdb debugger
5397 and a debugger() method to invoke the interactive pdb debugger
5395 after printing exception information. Also added the corresponding
5398 after printing exception information. Also added the corresponding
5396 -pdb option and @pdb magic to control this feature, and updated
5399 -pdb option and @pdb magic to control this feature, and updated
5397 the docs. After a suggestion from Christopher Hart
5400 the docs. After a suggestion from Christopher Hart
5398 (hart-AT-caltech.edu).
5401 (hart-AT-caltech.edu).
5399
5402
5400 2002-04-12 Fernando Perez <fperez@colorado.edu>
5403 2002-04-12 Fernando Perez <fperez@colorado.edu>
5401
5404
5402 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5405 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5403 the exception handlers defined by the user (not the CrashHandler)
5406 the exception handlers defined by the user (not the CrashHandler)
5404 so that user exceptions don't trigger an ipython bug report.
5407 so that user exceptions don't trigger an ipython bug report.
5405
5408
5406 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5409 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5407 configurable (it should have always been so).
5410 configurable (it should have always been so).
5408
5411
5409 2002-03-26 Fernando Perez <fperez@colorado.edu>
5412 2002-03-26 Fernando Perez <fperez@colorado.edu>
5410
5413
5411 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5414 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5412 and there to fix embedding namespace issues. This should all be
5415 and there to fix embedding namespace issues. This should all be
5413 done in a more elegant way.
5416 done in a more elegant way.
5414
5417
5415 2002-03-25 Fernando Perez <fperez@colorado.edu>
5418 2002-03-25 Fernando Perez <fperez@colorado.edu>
5416
5419
5417 * IPython/genutils.py (get_home_dir): Try to make it work under
5420 * IPython/genutils.py (get_home_dir): Try to make it work under
5418 win9x also.
5421 win9x also.
5419
5422
5420 2002-03-20 Fernando Perez <fperez@colorado.edu>
5423 2002-03-20 Fernando Perez <fperez@colorado.edu>
5421
5424
5422 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5425 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5423 sys.displayhook untouched upon __init__.
5426 sys.displayhook untouched upon __init__.
5424
5427
5425 2002-03-19 Fernando Perez <fperez@colorado.edu>
5428 2002-03-19 Fernando Perez <fperez@colorado.edu>
5426
5429
5427 * Released 0.2.9 (for embedding bug, basically).
5430 * Released 0.2.9 (for embedding bug, basically).
5428
5431
5429 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5432 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5430 exceptions so that enclosing shell's state can be restored.
5433 exceptions so that enclosing shell's state can be restored.
5431
5434
5432 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5435 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5433 naming conventions in the .ipython/ dir.
5436 naming conventions in the .ipython/ dir.
5434
5437
5435 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5438 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5436 from delimiters list so filenames with - in them get expanded.
5439 from delimiters list so filenames with - in them get expanded.
5437
5440
5438 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5441 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5439 sys.displayhook not being properly restored after an embedded call.
5442 sys.displayhook not being properly restored after an embedded call.
5440
5443
5441 2002-03-18 Fernando Perez <fperez@colorado.edu>
5444 2002-03-18 Fernando Perez <fperez@colorado.edu>
5442
5445
5443 * Released 0.2.8
5446 * Released 0.2.8
5444
5447
5445 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5448 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5446 some files weren't being included in a -upgrade.
5449 some files weren't being included in a -upgrade.
5447 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5450 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5448 on' so that the first tab completes.
5451 on' so that the first tab completes.
5449 (InteractiveShell.handle_magic): fixed bug with spaces around
5452 (InteractiveShell.handle_magic): fixed bug with spaces around
5450 quotes breaking many magic commands.
5453 quotes breaking many magic commands.
5451
5454
5452 * setup.py: added note about ignoring the syntax error messages at
5455 * setup.py: added note about ignoring the syntax error messages at
5453 installation.
5456 installation.
5454
5457
5455 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5458 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5456 streamlining the gnuplot interface, now there's only one magic @gp.
5459 streamlining the gnuplot interface, now there's only one magic @gp.
5457
5460
5458 2002-03-17 Fernando Perez <fperez@colorado.edu>
5461 2002-03-17 Fernando Perez <fperez@colorado.edu>
5459
5462
5460 * IPython/UserConfig/magic_gnuplot.py: new name for the
5463 * IPython/UserConfig/magic_gnuplot.py: new name for the
5461 example-magic_pm.py file. Much enhanced system, now with a shell
5464 example-magic_pm.py file. Much enhanced system, now with a shell
5462 for communicating directly with gnuplot, one command at a time.
5465 for communicating directly with gnuplot, one command at a time.
5463
5466
5464 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5467 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5465 setting __name__=='__main__'.
5468 setting __name__=='__main__'.
5466
5469
5467 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5470 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5468 mini-shell for accessing gnuplot from inside ipython. Should
5471 mini-shell for accessing gnuplot from inside ipython. Should
5469 extend it later for grace access too. Inspired by Arnd's
5472 extend it later for grace access too. Inspired by Arnd's
5470 suggestion.
5473 suggestion.
5471
5474
5472 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5475 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5473 calling magic functions with () in their arguments. Thanks to Arnd
5476 calling magic functions with () in their arguments. Thanks to Arnd
5474 Baecker for pointing this to me.
5477 Baecker for pointing this to me.
5475
5478
5476 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5479 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5477 infinitely for integer or complex arrays (only worked with floats).
5480 infinitely for integer or complex arrays (only worked with floats).
5478
5481
5479 2002-03-16 Fernando Perez <fperez@colorado.edu>
5482 2002-03-16 Fernando Perez <fperez@colorado.edu>
5480
5483
5481 * setup.py: Merged setup and setup_windows into a single script
5484 * setup.py: Merged setup and setup_windows into a single script
5482 which properly handles things for windows users.
5485 which properly handles things for windows users.
5483
5486
5484 2002-03-15 Fernando Perez <fperez@colorado.edu>
5487 2002-03-15 Fernando Perez <fperez@colorado.edu>
5485
5488
5486 * Big change to the manual: now the magics are all automatically
5489 * Big change to the manual: now the magics are all automatically
5487 documented. This information is generated from their docstrings
5490 documented. This information is generated from their docstrings
5488 and put in a latex file included by the manual lyx file. This way
5491 and put in a latex file included by the manual lyx file. This way
5489 we get always up to date information for the magics. The manual
5492 we get always up to date information for the magics. The manual
5490 now also has proper version information, also auto-synced.
5493 now also has proper version information, also auto-synced.
5491
5494
5492 For this to work, an undocumented --magic_docstrings option was added.
5495 For this to work, an undocumented --magic_docstrings option was added.
5493
5496
5494 2002-03-13 Fernando Perez <fperez@colorado.edu>
5497 2002-03-13 Fernando Perez <fperez@colorado.edu>
5495
5498
5496 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5499 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5497 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5500 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5498
5501
5499 2002-03-12 Fernando Perez <fperez@colorado.edu>
5502 2002-03-12 Fernando Perez <fperez@colorado.edu>
5500
5503
5501 * IPython/ultraTB.py (TermColors): changed color escapes again to
5504 * IPython/ultraTB.py (TermColors): changed color escapes again to
5502 fix the (old, reintroduced) line-wrapping bug. Basically, if
5505 fix the (old, reintroduced) line-wrapping bug. Basically, if
5503 \001..\002 aren't given in the color escapes, lines get wrapped
5506 \001..\002 aren't given in the color escapes, lines get wrapped
5504 weirdly. But giving those screws up old xterms and emacs terms. So
5507 weirdly. But giving those screws up old xterms and emacs terms. So
5505 I added some logic for emacs terms to be ok, but I can't identify old
5508 I added some logic for emacs terms to be ok, but I can't identify old
5506 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5509 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5507
5510
5508 2002-03-10 Fernando Perez <fperez@colorado.edu>
5511 2002-03-10 Fernando Perez <fperez@colorado.edu>
5509
5512
5510 * IPython/usage.py (__doc__): Various documentation cleanups and
5513 * IPython/usage.py (__doc__): Various documentation cleanups and
5511 updates, both in usage docstrings and in the manual.
5514 updates, both in usage docstrings and in the manual.
5512
5515
5513 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5516 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5514 handling of caching. Set minimum acceptabe value for having a
5517 handling of caching. Set minimum acceptabe value for having a
5515 cache at 20 values.
5518 cache at 20 values.
5516
5519
5517 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5520 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5518 install_first_time function to a method, renamed it and added an
5521 install_first_time function to a method, renamed it and added an
5519 'upgrade' mode. Now people can update their config directory with
5522 'upgrade' mode. Now people can update their config directory with
5520 a simple command line switch (-upgrade, also new).
5523 a simple command line switch (-upgrade, also new).
5521
5524
5522 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5525 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5523 @file (convenient for automagic users under Python >= 2.2).
5526 @file (convenient for automagic users under Python >= 2.2).
5524 Removed @files (it seemed more like a plural than an abbrev. of
5527 Removed @files (it seemed more like a plural than an abbrev. of
5525 'file show').
5528 'file show').
5526
5529
5527 * IPython/iplib.py (install_first_time): Fixed crash if there were
5530 * IPython/iplib.py (install_first_time): Fixed crash if there were
5528 backup files ('~') in .ipython/ install directory.
5531 backup files ('~') in .ipython/ install directory.
5529
5532
5530 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5533 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5531 system. Things look fine, but these changes are fairly
5534 system. Things look fine, but these changes are fairly
5532 intrusive. Test them for a few days.
5535 intrusive. Test them for a few days.
5533
5536
5534 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5537 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5535 the prompts system. Now all in/out prompt strings are user
5538 the prompts system. Now all in/out prompt strings are user
5536 controllable. This is particularly useful for embedding, as one
5539 controllable. This is particularly useful for embedding, as one
5537 can tag embedded instances with particular prompts.
5540 can tag embedded instances with particular prompts.
5538
5541
5539 Also removed global use of sys.ps1/2, which now allows nested
5542 Also removed global use of sys.ps1/2, which now allows nested
5540 embeddings without any problems. Added command-line options for
5543 embeddings without any problems. Added command-line options for
5541 the prompt strings.
5544 the prompt strings.
5542
5545
5543 2002-03-08 Fernando Perez <fperez@colorado.edu>
5546 2002-03-08 Fernando Perez <fperez@colorado.edu>
5544
5547
5545 * IPython/UserConfig/example-embed-short.py (ipshell): added
5548 * IPython/UserConfig/example-embed-short.py (ipshell): added
5546 example file with the bare minimum code for embedding.
5549 example file with the bare minimum code for embedding.
5547
5550
5548 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5551 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5549 functionality for the embeddable shell to be activated/deactivated
5552 functionality for the embeddable shell to be activated/deactivated
5550 either globally or at each call.
5553 either globally or at each call.
5551
5554
5552 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5555 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5553 rewriting the prompt with '--->' for auto-inputs with proper
5556 rewriting the prompt with '--->' for auto-inputs with proper
5554 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5557 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5555 this is handled by the prompts class itself, as it should.
5558 this is handled by the prompts class itself, as it should.
5556
5559
5557 2002-03-05 Fernando Perez <fperez@colorado.edu>
5560 2002-03-05 Fernando Perez <fperez@colorado.edu>
5558
5561
5559 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5562 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5560 @logstart to avoid name clashes with the math log function.
5563 @logstart to avoid name clashes with the math log function.
5561
5564
5562 * Big updates to X/Emacs section of the manual.
5565 * Big updates to X/Emacs section of the manual.
5563
5566
5564 * Removed ipython_emacs. Milan explained to me how to pass
5567 * Removed ipython_emacs. Milan explained to me how to pass
5565 arguments to ipython through Emacs. Some day I'm going to end up
5568 arguments to ipython through Emacs. Some day I'm going to end up
5566 learning some lisp...
5569 learning some lisp...
5567
5570
5568 2002-03-04 Fernando Perez <fperez@colorado.edu>
5571 2002-03-04 Fernando Perez <fperez@colorado.edu>
5569
5572
5570 * IPython/ipython_emacs: Created script to be used as the
5573 * IPython/ipython_emacs: Created script to be used as the
5571 py-python-command Emacs variable so we can pass IPython
5574 py-python-command Emacs variable so we can pass IPython
5572 parameters. I can't figure out how to tell Emacs directly to pass
5575 parameters. I can't figure out how to tell Emacs directly to pass
5573 parameters to IPython, so a dummy shell script will do it.
5576 parameters to IPython, so a dummy shell script will do it.
5574
5577
5575 Other enhancements made for things to work better under Emacs'
5578 Other enhancements made for things to work better under Emacs'
5576 various types of terminals. Many thanks to Milan Zamazal
5579 various types of terminals. Many thanks to Milan Zamazal
5577 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5580 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5578
5581
5579 2002-03-01 Fernando Perez <fperez@colorado.edu>
5582 2002-03-01 Fernando Perez <fperez@colorado.edu>
5580
5583
5581 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5584 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5582 that loading of readline is now optional. This gives better
5585 that loading of readline is now optional. This gives better
5583 control to emacs users.
5586 control to emacs users.
5584
5587
5585 * IPython/ultraTB.py (__date__): Modified color escape sequences
5588 * IPython/ultraTB.py (__date__): Modified color escape sequences
5586 and now things work fine under xterm and in Emacs' term buffers
5589 and now things work fine under xterm and in Emacs' term buffers
5587 (though not shell ones). Well, in emacs you get colors, but all
5590 (though not shell ones). Well, in emacs you get colors, but all
5588 seem to be 'light' colors (no difference between dark and light
5591 seem to be 'light' colors (no difference between dark and light
5589 ones). But the garbage chars are gone, and also in xterms. It
5592 ones). But the garbage chars are gone, and also in xterms. It
5590 seems that now I'm using 'cleaner' ansi sequences.
5593 seems that now I'm using 'cleaner' ansi sequences.
5591
5594
5592 2002-02-21 Fernando Perez <fperez@colorado.edu>
5595 2002-02-21 Fernando Perez <fperez@colorado.edu>
5593
5596
5594 * Released 0.2.7 (mainly to publish the scoping fix).
5597 * Released 0.2.7 (mainly to publish the scoping fix).
5595
5598
5596 * IPython/Logger.py (Logger.logstate): added. A corresponding
5599 * IPython/Logger.py (Logger.logstate): added. A corresponding
5597 @logstate magic was created.
5600 @logstate magic was created.
5598
5601
5599 * IPython/Magic.py: fixed nested scoping problem under Python
5602 * IPython/Magic.py: fixed nested scoping problem under Python
5600 2.1.x (automagic wasn't working).
5603 2.1.x (automagic wasn't working).
5601
5604
5602 2002-02-20 Fernando Perez <fperez@colorado.edu>
5605 2002-02-20 Fernando Perez <fperez@colorado.edu>
5603
5606
5604 * Released 0.2.6.
5607 * Released 0.2.6.
5605
5608
5606 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5609 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5607 option so that logs can come out without any headers at all.
5610 option so that logs can come out without any headers at all.
5608
5611
5609 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5612 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5610 SciPy.
5613 SciPy.
5611
5614
5612 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5615 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5613 that embedded IPython calls don't require vars() to be explicitly
5616 that embedded IPython calls don't require vars() to be explicitly
5614 passed. Now they are extracted from the caller's frame (code
5617 passed. Now they are extracted from the caller's frame (code
5615 snatched from Eric Jones' weave). Added better documentation to
5618 snatched from Eric Jones' weave). Added better documentation to
5616 the section on embedding and the example file.
5619 the section on embedding and the example file.
5617
5620
5618 * IPython/genutils.py (page): Changed so that under emacs, it just
5621 * IPython/genutils.py (page): Changed so that under emacs, it just
5619 prints the string. You can then page up and down in the emacs
5622 prints the string. You can then page up and down in the emacs
5620 buffer itself. This is how the builtin help() works.
5623 buffer itself. This is how the builtin help() works.
5621
5624
5622 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5625 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5623 macro scoping: macros need to be executed in the user's namespace
5626 macro scoping: macros need to be executed in the user's namespace
5624 to work as if they had been typed by the user.
5627 to work as if they had been typed by the user.
5625
5628
5626 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5629 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5627 execute automatically (no need to type 'exec...'). They then
5630 execute automatically (no need to type 'exec...'). They then
5628 behave like 'true macros'. The printing system was also modified
5631 behave like 'true macros'. The printing system was also modified
5629 for this to work.
5632 for this to work.
5630
5633
5631 2002-02-19 Fernando Perez <fperez@colorado.edu>
5634 2002-02-19 Fernando Perez <fperez@colorado.edu>
5632
5635
5633 * IPython/genutils.py (page_file): new function for paging files
5636 * IPython/genutils.py (page_file): new function for paging files
5634 in an OS-independent way. Also necessary for file viewing to work
5637 in an OS-independent way. Also necessary for file viewing to work
5635 well inside Emacs buffers.
5638 well inside Emacs buffers.
5636 (page): Added checks for being in an emacs buffer.
5639 (page): Added checks for being in an emacs buffer.
5637 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5640 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5638 same bug in iplib.
5641 same bug in iplib.
5639
5642
5640 2002-02-18 Fernando Perez <fperez@colorado.edu>
5643 2002-02-18 Fernando Perez <fperez@colorado.edu>
5641
5644
5642 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5645 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5643 of readline so that IPython can work inside an Emacs buffer.
5646 of readline so that IPython can work inside an Emacs buffer.
5644
5647
5645 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5648 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5646 method signatures (they weren't really bugs, but it looks cleaner
5649 method signatures (they weren't really bugs, but it looks cleaner
5647 and keeps PyChecker happy).
5650 and keeps PyChecker happy).
5648
5651
5649 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5652 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5650 for implementing various user-defined hooks. Currently only
5653 for implementing various user-defined hooks. Currently only
5651 display is done.
5654 display is done.
5652
5655
5653 * IPython/Prompts.py (CachedOutput._display): changed display
5656 * IPython/Prompts.py (CachedOutput._display): changed display
5654 functions so that they can be dynamically changed by users easily.
5657 functions so that they can be dynamically changed by users easily.
5655
5658
5656 * IPython/Extensions/numeric_formats.py (num_display): added an
5659 * IPython/Extensions/numeric_formats.py (num_display): added an
5657 extension for printing NumPy arrays in flexible manners. It
5660 extension for printing NumPy arrays in flexible manners. It
5658 doesn't do anything yet, but all the structure is in
5661 doesn't do anything yet, but all the structure is in
5659 place. Ultimately the plan is to implement output format control
5662 place. Ultimately the plan is to implement output format control
5660 like in Octave.
5663 like in Octave.
5661
5664
5662 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5665 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5663 methods are found at run-time by all the automatic machinery.
5666 methods are found at run-time by all the automatic machinery.
5664
5667
5665 2002-02-17 Fernando Perez <fperez@colorado.edu>
5668 2002-02-17 Fernando Perez <fperez@colorado.edu>
5666
5669
5667 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5670 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5668 whole file a little.
5671 whole file a little.
5669
5672
5670 * ToDo: closed this document. Now there's a new_design.lyx
5673 * ToDo: closed this document. Now there's a new_design.lyx
5671 document for all new ideas. Added making a pdf of it for the
5674 document for all new ideas. Added making a pdf of it for the
5672 end-user distro.
5675 end-user distro.
5673
5676
5674 * IPython/Logger.py (Logger.switch_log): Created this to replace
5677 * IPython/Logger.py (Logger.switch_log): Created this to replace
5675 logon() and logoff(). It also fixes a nasty crash reported by
5678 logon() and logoff(). It also fixes a nasty crash reported by
5676 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5679 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5677
5680
5678 * IPython/iplib.py (complete): got auto-completion to work with
5681 * IPython/iplib.py (complete): got auto-completion to work with
5679 automagic (I had wanted this for a long time).
5682 automagic (I had wanted this for a long time).
5680
5683
5681 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5684 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5682 to @file, since file() is now a builtin and clashes with automagic
5685 to @file, since file() is now a builtin and clashes with automagic
5683 for @file.
5686 for @file.
5684
5687
5685 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5688 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5686 of this was previously in iplib, which had grown to more than 2000
5689 of this was previously in iplib, which had grown to more than 2000
5687 lines, way too long. No new functionality, but it makes managing
5690 lines, way too long. No new functionality, but it makes managing
5688 the code a bit easier.
5691 the code a bit easier.
5689
5692
5690 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5693 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5691 information to crash reports.
5694 information to crash reports.
5692
5695
5693 2002-02-12 Fernando Perez <fperez@colorado.edu>
5696 2002-02-12 Fernando Perez <fperez@colorado.edu>
5694
5697
5695 * Released 0.2.5.
5698 * Released 0.2.5.
5696
5699
5697 2002-02-11 Fernando Perez <fperez@colorado.edu>
5700 2002-02-11 Fernando Perez <fperez@colorado.edu>
5698
5701
5699 * Wrote a relatively complete Windows installer. It puts
5702 * Wrote a relatively complete Windows installer. It puts
5700 everything in place, creates Start Menu entries and fixes the
5703 everything in place, creates Start Menu entries and fixes the
5701 color issues. Nothing fancy, but it works.
5704 color issues. Nothing fancy, but it works.
5702
5705
5703 2002-02-10 Fernando Perez <fperez@colorado.edu>
5706 2002-02-10 Fernando Perez <fperez@colorado.edu>
5704
5707
5705 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5708 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5706 os.path.expanduser() call so that we can type @run ~/myfile.py and
5709 os.path.expanduser() call so that we can type @run ~/myfile.py and
5707 have thigs work as expected.
5710 have thigs work as expected.
5708
5711
5709 * IPython/genutils.py (page): fixed exception handling so things
5712 * IPython/genutils.py (page): fixed exception handling so things
5710 work both in Unix and Windows correctly. Quitting a pager triggers
5713 work both in Unix and Windows correctly. Quitting a pager triggers
5711 an IOError/broken pipe in Unix, and in windows not finding a pager
5714 an IOError/broken pipe in Unix, and in windows not finding a pager
5712 is also an IOError, so I had to actually look at the return value
5715 is also an IOError, so I had to actually look at the return value
5713 of the exception, not just the exception itself. Should be ok now.
5716 of the exception, not just the exception itself. Should be ok now.
5714
5717
5715 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5718 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5716 modified to allow case-insensitive color scheme changes.
5719 modified to allow case-insensitive color scheme changes.
5717
5720
5718 2002-02-09 Fernando Perez <fperez@colorado.edu>
5721 2002-02-09 Fernando Perez <fperez@colorado.edu>
5719
5722
5720 * IPython/genutils.py (native_line_ends): new function to leave
5723 * IPython/genutils.py (native_line_ends): new function to leave
5721 user config files with os-native line-endings.
5724 user config files with os-native line-endings.
5722
5725
5723 * README and manual updates.
5726 * README and manual updates.
5724
5727
5725 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5728 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5726 instead of StringType to catch Unicode strings.
5729 instead of StringType to catch Unicode strings.
5727
5730
5728 * IPython/genutils.py (filefind): fixed bug for paths with
5731 * IPython/genutils.py (filefind): fixed bug for paths with
5729 embedded spaces (very common in Windows).
5732 embedded spaces (very common in Windows).
5730
5733
5731 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5734 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5732 files under Windows, so that they get automatically associated
5735 files under Windows, so that they get automatically associated
5733 with a text editor. Windows makes it a pain to handle
5736 with a text editor. Windows makes it a pain to handle
5734 extension-less files.
5737 extension-less files.
5735
5738
5736 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5739 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5737 warning about readline only occur for Posix. In Windows there's no
5740 warning about readline only occur for Posix. In Windows there's no
5738 way to get readline, so why bother with the warning.
5741 way to get readline, so why bother with the warning.
5739
5742
5740 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5743 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5741 for __str__ instead of dir(self), since dir() changed in 2.2.
5744 for __str__ instead of dir(self), since dir() changed in 2.2.
5742
5745
5743 * Ported to Windows! Tested on XP, I suspect it should work fine
5746 * Ported to Windows! Tested on XP, I suspect it should work fine
5744 on NT/2000, but I don't think it will work on 98 et al. That
5747 on NT/2000, but I don't think it will work on 98 et al. That
5745 series of Windows is such a piece of junk anyway that I won't try
5748 series of Windows is such a piece of junk anyway that I won't try
5746 porting it there. The XP port was straightforward, showed a few
5749 porting it there. The XP port was straightforward, showed a few
5747 bugs here and there (fixed all), in particular some string
5750 bugs here and there (fixed all), in particular some string
5748 handling stuff which required considering Unicode strings (which
5751 handling stuff which required considering Unicode strings (which
5749 Windows uses). This is good, but hasn't been too tested :) No
5752 Windows uses). This is good, but hasn't been too tested :) No
5750 fancy installer yet, I'll put a note in the manual so people at
5753 fancy installer yet, I'll put a note in the manual so people at
5751 least make manually a shortcut.
5754 least make manually a shortcut.
5752
5755
5753 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5756 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5754 into a single one, "colors". This now controls both prompt and
5757 into a single one, "colors". This now controls both prompt and
5755 exception color schemes, and can be changed both at startup
5758 exception color schemes, and can be changed both at startup
5756 (either via command-line switches or via ipythonrc files) and at
5759 (either via command-line switches or via ipythonrc files) and at
5757 runtime, with @colors.
5760 runtime, with @colors.
5758 (Magic.magic_run): renamed @prun to @run and removed the old
5761 (Magic.magic_run): renamed @prun to @run and removed the old
5759 @run. The two were too similar to warrant keeping both.
5762 @run. The two were too similar to warrant keeping both.
5760
5763
5761 2002-02-03 Fernando Perez <fperez@colorado.edu>
5764 2002-02-03 Fernando Perez <fperez@colorado.edu>
5762
5765
5763 * IPython/iplib.py (install_first_time): Added comment on how to
5766 * IPython/iplib.py (install_first_time): Added comment on how to
5764 configure the color options for first-time users. Put a <return>
5767 configure the color options for first-time users. Put a <return>
5765 request at the end so that small-terminal users get a chance to
5768 request at the end so that small-terminal users get a chance to
5766 read the startup info.
5769 read the startup info.
5767
5770
5768 2002-01-23 Fernando Perez <fperez@colorado.edu>
5771 2002-01-23 Fernando Perez <fperez@colorado.edu>
5769
5772
5770 * IPython/iplib.py (CachedOutput.update): Changed output memory
5773 * IPython/iplib.py (CachedOutput.update): Changed output memory
5771 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5774 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5772 input history we still use _i. Did this b/c these variable are
5775 input history we still use _i. Did this b/c these variable are
5773 very commonly used in interactive work, so the less we need to
5776 very commonly used in interactive work, so the less we need to
5774 type the better off we are.
5777 type the better off we are.
5775 (Magic.magic_prun): updated @prun to better handle the namespaces
5778 (Magic.magic_prun): updated @prun to better handle the namespaces
5776 the file will run in, including a fix for __name__ not being set
5779 the file will run in, including a fix for __name__ not being set
5777 before.
5780 before.
5778
5781
5779 2002-01-20 Fernando Perez <fperez@colorado.edu>
5782 2002-01-20 Fernando Perez <fperez@colorado.edu>
5780
5783
5781 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5784 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5782 extra garbage for Python 2.2. Need to look more carefully into
5785 extra garbage for Python 2.2. Need to look more carefully into
5783 this later.
5786 this later.
5784
5787
5785 2002-01-19 Fernando Perez <fperez@colorado.edu>
5788 2002-01-19 Fernando Perez <fperez@colorado.edu>
5786
5789
5787 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5790 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5788 display SyntaxError exceptions properly formatted when they occur
5791 display SyntaxError exceptions properly formatted when they occur
5789 (they can be triggered by imported code).
5792 (they can be triggered by imported code).
5790
5793
5791 2002-01-18 Fernando Perez <fperez@colorado.edu>
5794 2002-01-18 Fernando Perez <fperez@colorado.edu>
5792
5795
5793 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5796 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5794 SyntaxError exceptions are reported nicely formatted, instead of
5797 SyntaxError exceptions are reported nicely formatted, instead of
5795 spitting out only offset information as before.
5798 spitting out only offset information as before.
5796 (Magic.magic_prun): Added the @prun function for executing
5799 (Magic.magic_prun): Added the @prun function for executing
5797 programs with command line args inside IPython.
5800 programs with command line args inside IPython.
5798
5801
5799 2002-01-16 Fernando Perez <fperez@colorado.edu>
5802 2002-01-16 Fernando Perez <fperez@colorado.edu>
5800
5803
5801 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5804 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5802 to *not* include the last item given in a range. This brings their
5805 to *not* include the last item given in a range. This brings their
5803 behavior in line with Python's slicing:
5806 behavior in line with Python's slicing:
5804 a[n1:n2] -> a[n1]...a[n2-1]
5807 a[n1:n2] -> a[n1]...a[n2-1]
5805 It may be a bit less convenient, but I prefer to stick to Python's
5808 It may be a bit less convenient, but I prefer to stick to Python's
5806 conventions *everywhere*, so users never have to wonder.
5809 conventions *everywhere*, so users never have to wonder.
5807 (Magic.magic_macro): Added @macro function to ease the creation of
5810 (Magic.magic_macro): Added @macro function to ease the creation of
5808 macros.
5811 macros.
5809
5812
5810 2002-01-05 Fernando Perez <fperez@colorado.edu>
5813 2002-01-05 Fernando Perez <fperez@colorado.edu>
5811
5814
5812 * Released 0.2.4.
5815 * Released 0.2.4.
5813
5816
5814 * IPython/iplib.py (Magic.magic_pdef):
5817 * IPython/iplib.py (Magic.magic_pdef):
5815 (InteractiveShell.safe_execfile): report magic lines and error
5818 (InteractiveShell.safe_execfile): report magic lines and error
5816 lines without line numbers so one can easily copy/paste them for
5819 lines without line numbers so one can easily copy/paste them for
5817 re-execution.
5820 re-execution.
5818
5821
5819 * Updated manual with recent changes.
5822 * Updated manual with recent changes.
5820
5823
5821 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5824 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5822 docstring printing when class? is called. Very handy for knowing
5825 docstring printing when class? is called. Very handy for knowing
5823 how to create class instances (as long as __init__ is well
5826 how to create class instances (as long as __init__ is well
5824 documented, of course :)
5827 documented, of course :)
5825 (Magic.magic_doc): print both class and constructor docstrings.
5828 (Magic.magic_doc): print both class and constructor docstrings.
5826 (Magic.magic_pdef): give constructor info if passed a class and
5829 (Magic.magic_pdef): give constructor info if passed a class and
5827 __call__ info for callable object instances.
5830 __call__ info for callable object instances.
5828
5831
5829 2002-01-04 Fernando Perez <fperez@colorado.edu>
5832 2002-01-04 Fernando Perez <fperez@colorado.edu>
5830
5833
5831 * Made deep_reload() off by default. It doesn't always work
5834 * Made deep_reload() off by default. It doesn't always work
5832 exactly as intended, so it's probably safer to have it off. It's
5835 exactly as intended, so it's probably safer to have it off. It's
5833 still available as dreload() anyway, so nothing is lost.
5836 still available as dreload() anyway, so nothing is lost.
5834
5837
5835 2002-01-02 Fernando Perez <fperez@colorado.edu>
5838 2002-01-02 Fernando Perez <fperez@colorado.edu>
5836
5839
5837 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5840 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5838 so I wanted an updated release).
5841 so I wanted an updated release).
5839
5842
5840 2001-12-27 Fernando Perez <fperez@colorado.edu>
5843 2001-12-27 Fernando Perez <fperez@colorado.edu>
5841
5844
5842 * IPython/iplib.py (InteractiveShell.interact): Added the original
5845 * IPython/iplib.py (InteractiveShell.interact): Added the original
5843 code from 'code.py' for this module in order to change the
5846 code from 'code.py' for this module in order to change the
5844 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5847 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5845 the history cache would break when the user hit Ctrl-C, and
5848 the history cache would break when the user hit Ctrl-C, and
5846 interact() offers no way to add any hooks to it.
5849 interact() offers no way to add any hooks to it.
5847
5850
5848 2001-12-23 Fernando Perez <fperez@colorado.edu>
5851 2001-12-23 Fernando Perez <fperez@colorado.edu>
5849
5852
5850 * setup.py: added check for 'MANIFEST' before trying to remove
5853 * setup.py: added check for 'MANIFEST' before trying to remove
5851 it. Thanks to Sean Reifschneider.
5854 it. Thanks to Sean Reifschneider.
5852
5855
5853 2001-12-22 Fernando Perez <fperez@colorado.edu>
5856 2001-12-22 Fernando Perez <fperez@colorado.edu>
5854
5857
5855 * Released 0.2.2.
5858 * Released 0.2.2.
5856
5859
5857 * Finished (reasonably) writing the manual. Later will add the
5860 * Finished (reasonably) writing the manual. Later will add the
5858 python-standard navigation stylesheets, but for the time being
5861 python-standard navigation stylesheets, but for the time being
5859 it's fairly complete. Distribution will include html and pdf
5862 it's fairly complete. Distribution will include html and pdf
5860 versions.
5863 versions.
5861
5864
5862 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5865 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5863 (MayaVi author).
5866 (MayaVi author).
5864
5867
5865 2001-12-21 Fernando Perez <fperez@colorado.edu>
5868 2001-12-21 Fernando Perez <fperez@colorado.edu>
5866
5869
5867 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5870 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5868 good public release, I think (with the manual and the distutils
5871 good public release, I think (with the manual and the distutils
5869 installer). The manual can use some work, but that can go
5872 installer). The manual can use some work, but that can go
5870 slowly. Otherwise I think it's quite nice for end users. Next
5873 slowly. Otherwise I think it's quite nice for end users. Next
5871 summer, rewrite the guts of it...
5874 summer, rewrite the guts of it...
5872
5875
5873 * Changed format of ipythonrc files to use whitespace as the
5876 * Changed format of ipythonrc files to use whitespace as the
5874 separator instead of an explicit '='. Cleaner.
5877 separator instead of an explicit '='. Cleaner.
5875
5878
5876 2001-12-20 Fernando Perez <fperez@colorado.edu>
5879 2001-12-20 Fernando Perez <fperez@colorado.edu>
5877
5880
5878 * Started a manual in LyX. For now it's just a quick merge of the
5881 * Started a manual in LyX. For now it's just a quick merge of the
5879 various internal docstrings and READMEs. Later it may grow into a
5882 various internal docstrings and READMEs. Later it may grow into a
5880 nice, full-blown manual.
5883 nice, full-blown manual.
5881
5884
5882 * Set up a distutils based installer. Installation should now be
5885 * Set up a distutils based installer. Installation should now be
5883 trivially simple for end-users.
5886 trivially simple for end-users.
5884
5887
5885 2001-12-11 Fernando Perez <fperez@colorado.edu>
5888 2001-12-11 Fernando Perez <fperez@colorado.edu>
5886
5889
5887 * Released 0.2.0. First public release, announced it at
5890 * Released 0.2.0. First public release, announced it at
5888 comp.lang.python. From now on, just bugfixes...
5891 comp.lang.python. From now on, just bugfixes...
5889
5892
5890 * Went through all the files, set copyright/license notices and
5893 * Went through all the files, set copyright/license notices and
5891 cleaned up things. Ready for release.
5894 cleaned up things. Ready for release.
5892
5895
5893 2001-12-10 Fernando Perez <fperez@colorado.edu>
5896 2001-12-10 Fernando Perez <fperez@colorado.edu>
5894
5897
5895 * Changed the first-time installer not to use tarfiles. It's more
5898 * Changed the first-time installer not to use tarfiles. It's more
5896 robust now and less unix-dependent. Also makes it easier for
5899 robust now and less unix-dependent. Also makes it easier for
5897 people to later upgrade versions.
5900 people to later upgrade versions.
5898
5901
5899 * Changed @exit to @abort to reflect the fact that it's pretty
5902 * Changed @exit to @abort to reflect the fact that it's pretty
5900 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5903 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5901 becomes significant only when IPyhton is embedded: in that case,
5904 becomes significant only when IPyhton is embedded: in that case,
5902 C-D closes IPython only, but @abort kills the enclosing program
5905 C-D closes IPython only, but @abort kills the enclosing program
5903 too (unless it had called IPython inside a try catching
5906 too (unless it had called IPython inside a try catching
5904 SystemExit).
5907 SystemExit).
5905
5908
5906 * Created Shell module which exposes the actuall IPython Shell
5909 * Created Shell module which exposes the actuall IPython Shell
5907 classes, currently the normal and the embeddable one. This at
5910 classes, currently the normal and the embeddable one. This at
5908 least offers a stable interface we won't need to change when
5911 least offers a stable interface we won't need to change when
5909 (later) the internals are rewritten. That rewrite will be confined
5912 (later) the internals are rewritten. That rewrite will be confined
5910 to iplib and ipmaker, but the Shell interface should remain as is.
5913 to iplib and ipmaker, but the Shell interface should remain as is.
5911
5914
5912 * Added embed module which offers an embeddable IPShell object,
5915 * Added embed module which offers an embeddable IPShell object,
5913 useful to fire up IPython *inside* a running program. Great for
5916 useful to fire up IPython *inside* a running program. Great for
5914 debugging or dynamical data analysis.
5917 debugging or dynamical data analysis.
5915
5918
5916 2001-12-08 Fernando Perez <fperez@colorado.edu>
5919 2001-12-08 Fernando Perez <fperez@colorado.edu>
5917
5920
5918 * Fixed small bug preventing seeing info from methods of defined
5921 * Fixed small bug preventing seeing info from methods of defined
5919 objects (incorrect namespace in _ofind()).
5922 objects (incorrect namespace in _ofind()).
5920
5923
5921 * Documentation cleanup. Moved the main usage docstrings to a
5924 * Documentation cleanup. Moved the main usage docstrings to a
5922 separate file, usage.py (cleaner to maintain, and hopefully in the
5925 separate file, usage.py (cleaner to maintain, and hopefully in the
5923 future some perlpod-like way of producing interactive, man and
5926 future some perlpod-like way of producing interactive, man and
5924 html docs out of it will be found).
5927 html docs out of it will be found).
5925
5928
5926 * Added @profile to see your profile at any time.
5929 * Added @profile to see your profile at any time.
5927
5930
5928 * Added @p as an alias for 'print'. It's especially convenient if
5931 * Added @p as an alias for 'print'. It's especially convenient if
5929 using automagic ('p x' prints x).
5932 using automagic ('p x' prints x).
5930
5933
5931 * Small cleanups and fixes after a pychecker run.
5934 * Small cleanups and fixes after a pychecker run.
5932
5935
5933 * Changed the @cd command to handle @cd - and @cd -<n> for
5936 * Changed the @cd command to handle @cd - and @cd -<n> for
5934 visiting any directory in _dh.
5937 visiting any directory in _dh.
5935
5938
5936 * Introduced _dh, a history of visited directories. @dhist prints
5939 * Introduced _dh, a history of visited directories. @dhist prints
5937 it out with numbers.
5940 it out with numbers.
5938
5941
5939 2001-12-07 Fernando Perez <fperez@colorado.edu>
5942 2001-12-07 Fernando Perez <fperez@colorado.edu>
5940
5943
5941 * Released 0.1.22
5944 * Released 0.1.22
5942
5945
5943 * Made initialization a bit more robust against invalid color
5946 * Made initialization a bit more robust against invalid color
5944 options in user input (exit, not traceback-crash).
5947 options in user input (exit, not traceback-crash).
5945
5948
5946 * Changed the bug crash reporter to write the report only in the
5949 * Changed the bug crash reporter to write the report only in the
5947 user's .ipython directory. That way IPython won't litter people's
5950 user's .ipython directory. That way IPython won't litter people's
5948 hard disks with crash files all over the place. Also print on
5951 hard disks with crash files all over the place. Also print on
5949 screen the necessary mail command.
5952 screen the necessary mail command.
5950
5953
5951 * With the new ultraTB, implemented LightBG color scheme for light
5954 * With the new ultraTB, implemented LightBG color scheme for light
5952 background terminals. A lot of people like white backgrounds, so I
5955 background terminals. A lot of people like white backgrounds, so I
5953 guess we should at least give them something readable.
5956 guess we should at least give them something readable.
5954
5957
5955 2001-12-06 Fernando Perez <fperez@colorado.edu>
5958 2001-12-06 Fernando Perez <fperez@colorado.edu>
5956
5959
5957 * Modified the structure of ultraTB. Now there's a proper class
5960 * Modified the structure of ultraTB. Now there's a proper class
5958 for tables of color schemes which allow adding schemes easily and
5961 for tables of color schemes which allow adding schemes easily and
5959 switching the active scheme without creating a new instance every
5962 switching the active scheme without creating a new instance every
5960 time (which was ridiculous). The syntax for creating new schemes
5963 time (which was ridiculous). The syntax for creating new schemes
5961 is also cleaner. I think ultraTB is finally done, with a clean
5964 is also cleaner. I think ultraTB is finally done, with a clean
5962 class structure. Names are also much cleaner (now there's proper
5965 class structure. Names are also much cleaner (now there's proper
5963 color tables, no need for every variable to also have 'color' in
5966 color tables, no need for every variable to also have 'color' in
5964 its name).
5967 its name).
5965
5968
5966 * Broke down genutils into separate files. Now genutils only
5969 * Broke down genutils into separate files. Now genutils only
5967 contains utility functions, and classes have been moved to their
5970 contains utility functions, and classes have been moved to their
5968 own files (they had enough independent functionality to warrant
5971 own files (they had enough independent functionality to warrant
5969 it): ConfigLoader, OutputTrap, Struct.
5972 it): ConfigLoader, OutputTrap, Struct.
5970
5973
5971 2001-12-05 Fernando Perez <fperez@colorado.edu>
5974 2001-12-05 Fernando Perez <fperez@colorado.edu>
5972
5975
5973 * IPython turns 21! Released version 0.1.21, as a candidate for
5976 * IPython turns 21! Released version 0.1.21, as a candidate for
5974 public consumption. If all goes well, release in a few days.
5977 public consumption. If all goes well, release in a few days.
5975
5978
5976 * Fixed path bug (files in Extensions/ directory wouldn't be found
5979 * Fixed path bug (files in Extensions/ directory wouldn't be found
5977 unless IPython/ was explicitly in sys.path).
5980 unless IPython/ was explicitly in sys.path).
5978
5981
5979 * Extended the FlexCompleter class as MagicCompleter to allow
5982 * Extended the FlexCompleter class as MagicCompleter to allow
5980 completion of @-starting lines.
5983 completion of @-starting lines.
5981
5984
5982 * Created __release__.py file as a central repository for release
5985 * Created __release__.py file as a central repository for release
5983 info that other files can read from.
5986 info that other files can read from.
5984
5987
5985 * Fixed small bug in logging: when logging was turned on in
5988 * Fixed small bug in logging: when logging was turned on in
5986 mid-session, old lines with special meanings (!@?) were being
5989 mid-session, old lines with special meanings (!@?) were being
5987 logged without the prepended comment, which is necessary since
5990 logged without the prepended comment, which is necessary since
5988 they are not truly valid python syntax. This should make session
5991 they are not truly valid python syntax. This should make session
5989 restores produce less errors.
5992 restores produce less errors.
5990
5993
5991 * The namespace cleanup forced me to make a FlexCompleter class
5994 * The namespace cleanup forced me to make a FlexCompleter class
5992 which is nothing but a ripoff of rlcompleter, but with selectable
5995 which is nothing but a ripoff of rlcompleter, but with selectable
5993 namespace (rlcompleter only works in __main__.__dict__). I'll try
5996 namespace (rlcompleter only works in __main__.__dict__). I'll try
5994 to submit a note to the authors to see if this change can be
5997 to submit a note to the authors to see if this change can be
5995 incorporated in future rlcompleter releases (Dec.6: done)
5998 incorporated in future rlcompleter releases (Dec.6: done)
5996
5999
5997 * More fixes to namespace handling. It was a mess! Now all
6000 * More fixes to namespace handling. It was a mess! Now all
5998 explicit references to __main__.__dict__ are gone (except when
6001 explicit references to __main__.__dict__ are gone (except when
5999 really needed) and everything is handled through the namespace
6002 really needed) and everything is handled through the namespace
6000 dicts in the IPython instance. We seem to be getting somewhere
6003 dicts in the IPython instance. We seem to be getting somewhere
6001 with this, finally...
6004 with this, finally...
6002
6005
6003 * Small documentation updates.
6006 * Small documentation updates.
6004
6007
6005 * Created the Extensions directory under IPython (with an
6008 * Created the Extensions directory under IPython (with an
6006 __init__.py). Put the PhysicalQ stuff there. This directory should
6009 __init__.py). Put the PhysicalQ stuff there. This directory should
6007 be used for all special-purpose extensions.
6010 be used for all special-purpose extensions.
6008
6011
6009 * File renaming:
6012 * File renaming:
6010 ipythonlib --> ipmaker
6013 ipythonlib --> ipmaker
6011 ipplib --> iplib
6014 ipplib --> iplib
6012 This makes a bit more sense in terms of what these files actually do.
6015 This makes a bit more sense in terms of what these files actually do.
6013
6016
6014 * Moved all the classes and functions in ipythonlib to ipplib, so
6017 * Moved all the classes and functions in ipythonlib to ipplib, so
6015 now ipythonlib only has make_IPython(). This will ease up its
6018 now ipythonlib only has make_IPython(). This will ease up its
6016 splitting in smaller functional chunks later.
6019 splitting in smaller functional chunks later.
6017
6020
6018 * Cleaned up (done, I think) output of @whos. Better column
6021 * Cleaned up (done, I think) output of @whos. Better column
6019 formatting, and now shows str(var) for as much as it can, which is
6022 formatting, and now shows str(var) for as much as it can, which is
6020 typically what one gets with a 'print var'.
6023 typically what one gets with a 'print var'.
6021
6024
6022 2001-12-04 Fernando Perez <fperez@colorado.edu>
6025 2001-12-04 Fernando Perez <fperez@colorado.edu>
6023
6026
6024 * Fixed namespace problems. Now builtin/IPyhton/user names get
6027 * Fixed namespace problems. Now builtin/IPyhton/user names get
6025 properly reported in their namespace. Internal namespace handling
6028 properly reported in their namespace. Internal namespace handling
6026 is finally getting decent (not perfect yet, but much better than
6029 is finally getting decent (not perfect yet, but much better than
6027 the ad-hoc mess we had).
6030 the ad-hoc mess we had).
6028
6031
6029 * Removed -exit option. If people just want to run a python
6032 * Removed -exit option. If people just want to run a python
6030 script, that's what the normal interpreter is for. Less
6033 script, that's what the normal interpreter is for. Less
6031 unnecessary options, less chances for bugs.
6034 unnecessary options, less chances for bugs.
6032
6035
6033 * Added a crash handler which generates a complete post-mortem if
6036 * Added a crash handler which generates a complete post-mortem if
6034 IPython crashes. This will help a lot in tracking bugs down the
6037 IPython crashes. This will help a lot in tracking bugs down the
6035 road.
6038 road.
6036
6039
6037 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6040 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6038 which were boud to functions being reassigned would bypass the
6041 which were boud to functions being reassigned would bypass the
6039 logger, breaking the sync of _il with the prompt counter. This
6042 logger, breaking the sync of _il with the prompt counter. This
6040 would then crash IPython later when a new line was logged.
6043 would then crash IPython later when a new line was logged.
6041
6044
6042 2001-12-02 Fernando Perez <fperez@colorado.edu>
6045 2001-12-02 Fernando Perez <fperez@colorado.edu>
6043
6046
6044 * Made IPython a package. This means people don't have to clutter
6047 * Made IPython a package. This means people don't have to clutter
6045 their sys.path with yet another directory. Changed the INSTALL
6048 their sys.path with yet another directory. Changed the INSTALL
6046 file accordingly.
6049 file accordingly.
6047
6050
6048 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6051 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6049 sorts its output (so @who shows it sorted) and @whos formats the
6052 sorts its output (so @who shows it sorted) and @whos formats the
6050 table according to the width of the first column. Nicer, easier to
6053 table according to the width of the first column. Nicer, easier to
6051 read. Todo: write a generic table_format() which takes a list of
6054 read. Todo: write a generic table_format() which takes a list of
6052 lists and prints it nicely formatted, with optional row/column
6055 lists and prints it nicely formatted, with optional row/column
6053 separators and proper padding and justification.
6056 separators and proper padding and justification.
6054
6057
6055 * Released 0.1.20
6058 * Released 0.1.20
6056
6059
6057 * Fixed bug in @log which would reverse the inputcache list (a
6060 * Fixed bug in @log which would reverse the inputcache list (a
6058 copy operation was missing).
6061 copy operation was missing).
6059
6062
6060 * Code cleanup. @config was changed to use page(). Better, since
6063 * Code cleanup. @config was changed to use page(). Better, since
6061 its output is always quite long.
6064 its output is always quite long.
6062
6065
6063 * Itpl is back as a dependency. I was having too many problems
6066 * Itpl is back as a dependency. I was having too many problems
6064 getting the parametric aliases to work reliably, and it's just
6067 getting the parametric aliases to work reliably, and it's just
6065 easier to code weird string operations with it than playing %()s
6068 easier to code weird string operations with it than playing %()s
6066 games. It's only ~6k, so I don't think it's too big a deal.
6069 games. It's only ~6k, so I don't think it's too big a deal.
6067
6070
6068 * Found (and fixed) a very nasty bug with history. !lines weren't
6071 * Found (and fixed) a very nasty bug with history. !lines weren't
6069 getting cached, and the out of sync caches would crash
6072 getting cached, and the out of sync caches would crash
6070 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6073 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6071 division of labor a bit better. Bug fixed, cleaner structure.
6074 division of labor a bit better. Bug fixed, cleaner structure.
6072
6075
6073 2001-12-01 Fernando Perez <fperez@colorado.edu>
6076 2001-12-01 Fernando Perez <fperez@colorado.edu>
6074
6077
6075 * Released 0.1.19
6078 * Released 0.1.19
6076
6079
6077 * Added option -n to @hist to prevent line number printing. Much
6080 * Added option -n to @hist to prevent line number printing. Much
6078 easier to copy/paste code this way.
6081 easier to copy/paste code this way.
6079
6082
6080 * Created global _il to hold the input list. Allows easy
6083 * Created global _il to hold the input list. Allows easy
6081 re-execution of blocks of code by slicing it (inspired by Janko's
6084 re-execution of blocks of code by slicing it (inspired by Janko's
6082 comment on 'macros').
6085 comment on 'macros').
6083
6086
6084 * Small fixes and doc updates.
6087 * Small fixes and doc updates.
6085
6088
6086 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6089 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6087 much too fragile with automagic. Handles properly multi-line
6090 much too fragile with automagic. Handles properly multi-line
6088 statements and takes parameters.
6091 statements and takes parameters.
6089
6092
6090 2001-11-30 Fernando Perez <fperez@colorado.edu>
6093 2001-11-30 Fernando Perez <fperez@colorado.edu>
6091
6094
6092 * Version 0.1.18 released.
6095 * Version 0.1.18 released.
6093
6096
6094 * Fixed nasty namespace bug in initial module imports.
6097 * Fixed nasty namespace bug in initial module imports.
6095
6098
6096 * Added copyright/license notes to all code files (except
6099 * Added copyright/license notes to all code files (except
6097 DPyGetOpt). For the time being, LGPL. That could change.
6100 DPyGetOpt). For the time being, LGPL. That could change.
6098
6101
6099 * Rewrote a much nicer README, updated INSTALL, cleaned up
6102 * Rewrote a much nicer README, updated INSTALL, cleaned up
6100 ipythonrc-* samples.
6103 ipythonrc-* samples.
6101
6104
6102 * Overall code/documentation cleanup. Basically ready for
6105 * Overall code/documentation cleanup. Basically ready for
6103 release. Only remaining thing: licence decision (LGPL?).
6106 release. Only remaining thing: licence decision (LGPL?).
6104
6107
6105 * Converted load_config to a class, ConfigLoader. Now recursion
6108 * Converted load_config to a class, ConfigLoader. Now recursion
6106 control is better organized. Doesn't include the same file twice.
6109 control is better organized. Doesn't include the same file twice.
6107
6110
6108 2001-11-29 Fernando Perez <fperez@colorado.edu>
6111 2001-11-29 Fernando Perez <fperez@colorado.edu>
6109
6112
6110 * Got input history working. Changed output history variables from
6113 * Got input history working. Changed output history variables from
6111 _p to _o so that _i is for input and _o for output. Just cleaner
6114 _p to _o so that _i is for input and _o for output. Just cleaner
6112 convention.
6115 convention.
6113
6116
6114 * Implemented parametric aliases. This pretty much allows the
6117 * Implemented parametric aliases. This pretty much allows the
6115 alias system to offer full-blown shell convenience, I think.
6118 alias system to offer full-blown shell convenience, I think.
6116
6119
6117 * Version 0.1.17 released, 0.1.18 opened.
6120 * Version 0.1.17 released, 0.1.18 opened.
6118
6121
6119 * dot_ipython/ipythonrc (alias): added documentation.
6122 * dot_ipython/ipythonrc (alias): added documentation.
6120 (xcolor): Fixed small bug (xcolors -> xcolor)
6123 (xcolor): Fixed small bug (xcolors -> xcolor)
6121
6124
6122 * Changed the alias system. Now alias is a magic command to define
6125 * Changed the alias system. Now alias is a magic command to define
6123 aliases just like the shell. Rationale: the builtin magics should
6126 aliases just like the shell. Rationale: the builtin magics should
6124 be there for things deeply connected to IPython's
6127 be there for things deeply connected to IPython's
6125 architecture. And this is a much lighter system for what I think
6128 architecture. And this is a much lighter system for what I think
6126 is the really important feature: allowing users to define quickly
6129 is the really important feature: allowing users to define quickly
6127 magics that will do shell things for them, so they can customize
6130 magics that will do shell things for them, so they can customize
6128 IPython easily to match their work habits. If someone is really
6131 IPython easily to match their work habits. If someone is really
6129 desperate to have another name for a builtin alias, they can
6132 desperate to have another name for a builtin alias, they can
6130 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6133 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6131 works.
6134 works.
6132
6135
6133 2001-11-28 Fernando Perez <fperez@colorado.edu>
6136 2001-11-28 Fernando Perez <fperez@colorado.edu>
6134
6137
6135 * Changed @file so that it opens the source file at the proper
6138 * Changed @file so that it opens the source file at the proper
6136 line. Since it uses less, if your EDITOR environment is
6139 line. Since it uses less, if your EDITOR environment is
6137 configured, typing v will immediately open your editor of choice
6140 configured, typing v will immediately open your editor of choice
6138 right at the line where the object is defined. Not as quick as
6141 right at the line where the object is defined. Not as quick as
6139 having a direct @edit command, but for all intents and purposes it
6142 having a direct @edit command, but for all intents and purposes it
6140 works. And I don't have to worry about writing @edit to deal with
6143 works. And I don't have to worry about writing @edit to deal with
6141 all the editors, less does that.
6144 all the editors, less does that.
6142
6145
6143 * Version 0.1.16 released, 0.1.17 opened.
6146 * Version 0.1.16 released, 0.1.17 opened.
6144
6147
6145 * Fixed some nasty bugs in the page/page_dumb combo that could
6148 * Fixed some nasty bugs in the page/page_dumb combo that could
6146 crash IPython.
6149 crash IPython.
6147
6150
6148 2001-11-27 Fernando Perez <fperez@colorado.edu>
6151 2001-11-27 Fernando Perez <fperez@colorado.edu>
6149
6152
6150 * Version 0.1.15 released, 0.1.16 opened.
6153 * Version 0.1.15 released, 0.1.16 opened.
6151
6154
6152 * Finally got ? and ?? to work for undefined things: now it's
6155 * Finally got ? and ?? to work for undefined things: now it's
6153 possible to type {}.get? and get information about the get method
6156 possible to type {}.get? and get information about the get method
6154 of dicts, or os.path? even if only os is defined (so technically
6157 of dicts, or os.path? even if only os is defined (so technically
6155 os.path isn't). Works at any level. For example, after import os,
6158 os.path isn't). Works at any level. For example, after import os,
6156 os?, os.path?, os.path.abspath? all work. This is great, took some
6159 os?, os.path?, os.path.abspath? all work. This is great, took some
6157 work in _ofind.
6160 work in _ofind.
6158
6161
6159 * Fixed more bugs with logging. The sanest way to do it was to add
6162 * Fixed more bugs with logging. The sanest way to do it was to add
6160 to @log a 'mode' parameter. Killed two in one shot (this mode
6163 to @log a 'mode' parameter. Killed two in one shot (this mode
6161 option was a request of Janko's). I think it's finally clean
6164 option was a request of Janko's). I think it's finally clean
6162 (famous last words).
6165 (famous last words).
6163
6166
6164 * Added a page_dumb() pager which does a decent job of paging on
6167 * Added a page_dumb() pager which does a decent job of paging on
6165 screen, if better things (like less) aren't available. One less
6168 screen, if better things (like less) aren't available. One less
6166 unix dependency (someday maybe somebody will port this to
6169 unix dependency (someday maybe somebody will port this to
6167 windows).
6170 windows).
6168
6171
6169 * Fixed problem in magic_log: would lock of logging out if log
6172 * Fixed problem in magic_log: would lock of logging out if log
6170 creation failed (because it would still think it had succeeded).
6173 creation failed (because it would still think it had succeeded).
6171
6174
6172 * Improved the page() function using curses to auto-detect screen
6175 * Improved the page() function using curses to auto-detect screen
6173 size. Now it can make a much better decision on whether to print
6176 size. Now it can make a much better decision on whether to print
6174 or page a string. Option screen_length was modified: a value 0
6177 or page a string. Option screen_length was modified: a value 0
6175 means auto-detect, and that's the default now.
6178 means auto-detect, and that's the default now.
6176
6179
6177 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6180 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6178 go out. I'll test it for a few days, then talk to Janko about
6181 go out. I'll test it for a few days, then talk to Janko about
6179 licences and announce it.
6182 licences and announce it.
6180
6183
6181 * Fixed the length of the auto-generated ---> prompt which appears
6184 * Fixed the length of the auto-generated ---> prompt which appears
6182 for auto-parens and auto-quotes. Getting this right isn't trivial,
6185 for auto-parens and auto-quotes. Getting this right isn't trivial,
6183 with all the color escapes, different prompt types and optional
6186 with all the color escapes, different prompt types and optional
6184 separators. But it seems to be working in all the combinations.
6187 separators. But it seems to be working in all the combinations.
6185
6188
6186 2001-11-26 Fernando Perez <fperez@colorado.edu>
6189 2001-11-26 Fernando Perez <fperez@colorado.edu>
6187
6190
6188 * Wrote a regexp filter to get option types from the option names
6191 * Wrote a regexp filter to get option types from the option names
6189 string. This eliminates the need to manually keep two duplicate
6192 string. This eliminates the need to manually keep two duplicate
6190 lists.
6193 lists.
6191
6194
6192 * Removed the unneeded check_option_names. Now options are handled
6195 * Removed the unneeded check_option_names. Now options are handled
6193 in a much saner manner and it's easy to visually check that things
6196 in a much saner manner and it's easy to visually check that things
6194 are ok.
6197 are ok.
6195
6198
6196 * Updated version numbers on all files I modified to carry a
6199 * Updated version numbers on all files I modified to carry a
6197 notice so Janko and Nathan have clear version markers.
6200 notice so Janko and Nathan have clear version markers.
6198
6201
6199 * Updated docstring for ultraTB with my changes. I should send
6202 * Updated docstring for ultraTB with my changes. I should send
6200 this to Nathan.
6203 this to Nathan.
6201
6204
6202 * Lots of small fixes. Ran everything through pychecker again.
6205 * Lots of small fixes. Ran everything through pychecker again.
6203
6206
6204 * Made loading of deep_reload an cmd line option. If it's not too
6207 * Made loading of deep_reload an cmd line option. If it's not too
6205 kosher, now people can just disable it. With -nodeep_reload it's
6208 kosher, now people can just disable it. With -nodeep_reload it's
6206 still available as dreload(), it just won't overwrite reload().
6209 still available as dreload(), it just won't overwrite reload().
6207
6210
6208 * Moved many options to the no| form (-opt and -noopt
6211 * Moved many options to the no| form (-opt and -noopt
6209 accepted). Cleaner.
6212 accepted). Cleaner.
6210
6213
6211 * Changed magic_log so that if called with no parameters, it uses
6214 * Changed magic_log so that if called with no parameters, it uses
6212 'rotate' mode. That way auto-generated logs aren't automatically
6215 'rotate' mode. That way auto-generated logs aren't automatically
6213 over-written. For normal logs, now a backup is made if it exists
6216 over-written. For normal logs, now a backup is made if it exists
6214 (only 1 level of backups). A new 'backup' mode was added to the
6217 (only 1 level of backups). A new 'backup' mode was added to the
6215 Logger class to support this. This was a request by Janko.
6218 Logger class to support this. This was a request by Janko.
6216
6219
6217 * Added @logoff/@logon to stop/restart an active log.
6220 * Added @logoff/@logon to stop/restart an active log.
6218
6221
6219 * Fixed a lot of bugs in log saving/replay. It was pretty
6222 * Fixed a lot of bugs in log saving/replay. It was pretty
6220 broken. Now special lines (!@,/) appear properly in the command
6223 broken. Now special lines (!@,/) appear properly in the command
6221 history after a log replay.
6224 history after a log replay.
6222
6225
6223 * Tried and failed to implement full session saving via pickle. My
6226 * Tried and failed to implement full session saving via pickle. My
6224 idea was to pickle __main__.__dict__, but modules can't be
6227 idea was to pickle __main__.__dict__, but modules can't be
6225 pickled. This would be a better alternative to replaying logs, but
6228 pickled. This would be a better alternative to replaying logs, but
6226 seems quite tricky to get to work. Changed -session to be called
6229 seems quite tricky to get to work. Changed -session to be called
6227 -logplay, which more accurately reflects what it does. And if we
6230 -logplay, which more accurately reflects what it does. And if we
6228 ever get real session saving working, -session is now available.
6231 ever get real session saving working, -session is now available.
6229
6232
6230 * Implemented color schemes for prompts also. As for tracebacks,
6233 * Implemented color schemes for prompts also. As for tracebacks,
6231 currently only NoColor and Linux are supported. But now the
6234 currently only NoColor and Linux are supported. But now the
6232 infrastructure is in place, based on a generic ColorScheme
6235 infrastructure is in place, based on a generic ColorScheme
6233 class. So writing and activating new schemes both for the prompts
6236 class. So writing and activating new schemes both for the prompts
6234 and the tracebacks should be straightforward.
6237 and the tracebacks should be straightforward.
6235
6238
6236 * Version 0.1.13 released, 0.1.14 opened.
6239 * Version 0.1.13 released, 0.1.14 opened.
6237
6240
6238 * Changed handling of options for output cache. Now counter is
6241 * Changed handling of options for output cache. Now counter is
6239 hardwired starting at 1 and one specifies the maximum number of
6242 hardwired starting at 1 and one specifies the maximum number of
6240 entries *in the outcache* (not the max prompt counter). This is
6243 entries *in the outcache* (not the max prompt counter). This is
6241 much better, since many statements won't increase the cache
6244 much better, since many statements won't increase the cache
6242 count. It also eliminated some confusing options, now there's only
6245 count. It also eliminated some confusing options, now there's only
6243 one: cache_size.
6246 one: cache_size.
6244
6247
6245 * Added 'alias' magic function and magic_alias option in the
6248 * Added 'alias' magic function and magic_alias option in the
6246 ipythonrc file. Now the user can easily define whatever names he
6249 ipythonrc file. Now the user can easily define whatever names he
6247 wants for the magic functions without having to play weird
6250 wants for the magic functions without having to play weird
6248 namespace games. This gives IPython a real shell-like feel.
6251 namespace games. This gives IPython a real shell-like feel.
6249
6252
6250 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6253 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6251 @ or not).
6254 @ or not).
6252
6255
6253 This was one of the last remaining 'visible' bugs (that I know
6256 This was one of the last remaining 'visible' bugs (that I know
6254 of). I think if I can clean up the session loading so it works
6257 of). I think if I can clean up the session loading so it works
6255 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6258 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6256 about licensing).
6259 about licensing).
6257
6260
6258 2001-11-25 Fernando Perez <fperez@colorado.edu>
6261 2001-11-25 Fernando Perez <fperez@colorado.edu>
6259
6262
6260 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6263 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6261 there's a cleaner distinction between what ? and ?? show.
6264 there's a cleaner distinction between what ? and ?? show.
6262
6265
6263 * Added screen_length option. Now the user can define his own
6266 * Added screen_length option. Now the user can define his own
6264 screen size for page() operations.
6267 screen size for page() operations.
6265
6268
6266 * Implemented magic shell-like functions with automatic code
6269 * Implemented magic shell-like functions with automatic code
6267 generation. Now adding another function is just a matter of adding
6270 generation. Now adding another function is just a matter of adding
6268 an entry to a dict, and the function is dynamically generated at
6271 an entry to a dict, and the function is dynamically generated at
6269 run-time. Python has some really cool features!
6272 run-time. Python has some really cool features!
6270
6273
6271 * Renamed many options to cleanup conventions a little. Now all
6274 * Renamed many options to cleanup conventions a little. Now all
6272 are lowercase, and only underscores where needed. Also in the code
6275 are lowercase, and only underscores where needed. Also in the code
6273 option name tables are clearer.
6276 option name tables are clearer.
6274
6277
6275 * Changed prompts a little. Now input is 'In [n]:' instead of
6278 * Changed prompts a little. Now input is 'In [n]:' instead of
6276 'In[n]:='. This allows it the numbers to be aligned with the
6279 'In[n]:='. This allows it the numbers to be aligned with the
6277 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6280 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6278 Python (it was a Mathematica thing). The '...' continuation prompt
6281 Python (it was a Mathematica thing). The '...' continuation prompt
6279 was also changed a little to align better.
6282 was also changed a little to align better.
6280
6283
6281 * Fixed bug when flushing output cache. Not all _p<n> variables
6284 * Fixed bug when flushing output cache. Not all _p<n> variables
6282 exist, so their deletion needs to be wrapped in a try:
6285 exist, so their deletion needs to be wrapped in a try:
6283
6286
6284 * Figured out how to properly use inspect.formatargspec() (it
6287 * Figured out how to properly use inspect.formatargspec() (it
6285 requires the args preceded by *). So I removed all the code from
6288 requires the args preceded by *). So I removed all the code from
6286 _get_pdef in Magic, which was just replicating that.
6289 _get_pdef in Magic, which was just replicating that.
6287
6290
6288 * Added test to prefilter to allow redefining magic function names
6291 * Added test to prefilter to allow redefining magic function names
6289 as variables. This is ok, since the @ form is always available,
6292 as variables. This is ok, since the @ form is always available,
6290 but whe should allow the user to define a variable called 'ls' if
6293 but whe should allow the user to define a variable called 'ls' if
6291 he needs it.
6294 he needs it.
6292
6295
6293 * Moved the ToDo information from README into a separate ToDo.
6296 * Moved the ToDo information from README into a separate ToDo.
6294
6297
6295 * General code cleanup and small bugfixes. I think it's close to a
6298 * General code cleanup and small bugfixes. I think it's close to a
6296 state where it can be released, obviously with a big 'beta'
6299 state where it can be released, obviously with a big 'beta'
6297 warning on it.
6300 warning on it.
6298
6301
6299 * Got the magic function split to work. Now all magics are defined
6302 * Got the magic function split to work. Now all magics are defined
6300 in a separate class. It just organizes things a bit, and now
6303 in a separate class. It just organizes things a bit, and now
6301 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6304 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6302 was too long).
6305 was too long).
6303
6306
6304 * Changed @clear to @reset to avoid potential confusions with
6307 * Changed @clear to @reset to avoid potential confusions with
6305 the shell command clear. Also renamed @cl to @clear, which does
6308 the shell command clear. Also renamed @cl to @clear, which does
6306 exactly what people expect it to from their shell experience.
6309 exactly what people expect it to from their shell experience.
6307
6310
6308 Added a check to the @reset command (since it's so
6311 Added a check to the @reset command (since it's so
6309 destructive, it's probably a good idea to ask for confirmation).
6312 destructive, it's probably a good idea to ask for confirmation).
6310 But now reset only works for full namespace resetting. Since the
6313 But now reset only works for full namespace resetting. Since the
6311 del keyword is already there for deleting a few specific
6314 del keyword is already there for deleting a few specific
6312 variables, I don't see the point of having a redundant magic
6315 variables, I don't see the point of having a redundant magic
6313 function for the same task.
6316 function for the same task.
6314
6317
6315 2001-11-24 Fernando Perez <fperez@colorado.edu>
6318 2001-11-24 Fernando Perez <fperez@colorado.edu>
6316
6319
6317 * Updated the builtin docs (esp. the ? ones).
6320 * Updated the builtin docs (esp. the ? ones).
6318
6321
6319 * Ran all the code through pychecker. Not terribly impressed with
6322 * Ran all the code through pychecker. Not terribly impressed with
6320 it: lots of spurious warnings and didn't really find anything of
6323 it: lots of spurious warnings and didn't really find anything of
6321 substance (just a few modules being imported and not used).
6324 substance (just a few modules being imported and not used).
6322
6325
6323 * Implemented the new ultraTB functionality into IPython. New
6326 * Implemented the new ultraTB functionality into IPython. New
6324 option: xcolors. This chooses color scheme. xmode now only selects
6327 option: xcolors. This chooses color scheme. xmode now only selects
6325 between Plain and Verbose. Better orthogonality.
6328 between Plain and Verbose. Better orthogonality.
6326
6329
6327 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6330 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6328 mode and color scheme for the exception handlers. Now it's
6331 mode and color scheme for the exception handlers. Now it's
6329 possible to have the verbose traceback with no coloring.
6332 possible to have the verbose traceback with no coloring.
6330
6333
6331 2001-11-23 Fernando Perez <fperez@colorado.edu>
6334 2001-11-23 Fernando Perez <fperez@colorado.edu>
6332
6335
6333 * Version 0.1.12 released, 0.1.13 opened.
6336 * Version 0.1.12 released, 0.1.13 opened.
6334
6337
6335 * Removed option to set auto-quote and auto-paren escapes by
6338 * Removed option to set auto-quote and auto-paren escapes by
6336 user. The chances of breaking valid syntax are just too high. If
6339 user. The chances of breaking valid syntax are just too high. If
6337 someone *really* wants, they can always dig into the code.
6340 someone *really* wants, they can always dig into the code.
6338
6341
6339 * Made prompt separators configurable.
6342 * Made prompt separators configurable.
6340
6343
6341 2001-11-22 Fernando Perez <fperez@colorado.edu>
6344 2001-11-22 Fernando Perez <fperez@colorado.edu>
6342
6345
6343 * Small bugfixes in many places.
6346 * Small bugfixes in many places.
6344
6347
6345 * Removed the MyCompleter class from ipplib. It seemed redundant
6348 * Removed the MyCompleter class from ipplib. It seemed redundant
6346 with the C-p,C-n history search functionality. Less code to
6349 with the C-p,C-n history search functionality. Less code to
6347 maintain.
6350 maintain.
6348
6351
6349 * Moved all the original ipython.py code into ipythonlib.py. Right
6352 * Moved all the original ipython.py code into ipythonlib.py. Right
6350 now it's just one big dump into a function called make_IPython, so
6353 now it's just one big dump into a function called make_IPython, so
6351 no real modularity has been gained. But at least it makes the
6354 no real modularity has been gained. But at least it makes the
6352 wrapper script tiny, and since ipythonlib is a module, it gets
6355 wrapper script tiny, and since ipythonlib is a module, it gets
6353 compiled and startup is much faster.
6356 compiled and startup is much faster.
6354
6357
6355 This is a reasobably 'deep' change, so we should test it for a
6358 This is a reasobably 'deep' change, so we should test it for a
6356 while without messing too much more with the code.
6359 while without messing too much more with the code.
6357
6360
6358 2001-11-21 Fernando Perez <fperez@colorado.edu>
6361 2001-11-21 Fernando Perez <fperez@colorado.edu>
6359
6362
6360 * Version 0.1.11 released, 0.1.12 opened for further work.
6363 * Version 0.1.11 released, 0.1.12 opened for further work.
6361
6364
6362 * Removed dependency on Itpl. It was only needed in one place. It
6365 * Removed dependency on Itpl. It was only needed in one place. It
6363 would be nice if this became part of python, though. It makes life
6366 would be nice if this became part of python, though. It makes life
6364 *a lot* easier in some cases.
6367 *a lot* easier in some cases.
6365
6368
6366 * Simplified the prefilter code a bit. Now all handlers are
6369 * Simplified the prefilter code a bit. Now all handlers are
6367 expected to explicitly return a value (at least a blank string).
6370 expected to explicitly return a value (at least a blank string).
6368
6371
6369 * Heavy edits in ipplib. Removed the help system altogether. Now
6372 * Heavy edits in ipplib. Removed the help system altogether. Now
6370 obj?/?? is used for inspecting objects, a magic @doc prints
6373 obj?/?? is used for inspecting objects, a magic @doc prints
6371 docstrings, and full-blown Python help is accessed via the 'help'
6374 docstrings, and full-blown Python help is accessed via the 'help'
6372 keyword. This cleans up a lot of code (less to maintain) and does
6375 keyword. This cleans up a lot of code (less to maintain) and does
6373 the job. Since 'help' is now a standard Python component, might as
6376 the job. Since 'help' is now a standard Python component, might as
6374 well use it and remove duplicate functionality.
6377 well use it and remove duplicate functionality.
6375
6378
6376 Also removed the option to use ipplib as a standalone program. By
6379 Also removed the option to use ipplib as a standalone program. By
6377 now it's too dependent on other parts of IPython to function alone.
6380 now it's too dependent on other parts of IPython to function alone.
6378
6381
6379 * Fixed bug in genutils.pager. It would crash if the pager was
6382 * Fixed bug in genutils.pager. It would crash if the pager was
6380 exited immediately after opening (broken pipe).
6383 exited immediately after opening (broken pipe).
6381
6384
6382 * Trimmed down the VerboseTB reporting a little. The header is
6385 * Trimmed down the VerboseTB reporting a little. The header is
6383 much shorter now and the repeated exception arguments at the end
6386 much shorter now and the repeated exception arguments at the end
6384 have been removed. For interactive use the old header seemed a bit
6387 have been removed. For interactive use the old header seemed a bit
6385 excessive.
6388 excessive.
6386
6389
6387 * Fixed small bug in output of @whos for variables with multi-word
6390 * Fixed small bug in output of @whos for variables with multi-word
6388 types (only first word was displayed).
6391 types (only first word was displayed).
6389
6392
6390 2001-11-17 Fernando Perez <fperez@colorado.edu>
6393 2001-11-17 Fernando Perez <fperez@colorado.edu>
6391
6394
6392 * Version 0.1.10 released, 0.1.11 opened for further work.
6395 * Version 0.1.10 released, 0.1.11 opened for further work.
6393
6396
6394 * Modified dirs and friends. dirs now *returns* the stack (not
6397 * Modified dirs and friends. dirs now *returns* the stack (not
6395 prints), so one can manipulate it as a variable. Convenient to
6398 prints), so one can manipulate it as a variable. Convenient to
6396 travel along many directories.
6399 travel along many directories.
6397
6400
6398 * Fixed bug in magic_pdef: would only work with functions with
6401 * Fixed bug in magic_pdef: would only work with functions with
6399 arguments with default values.
6402 arguments with default values.
6400
6403
6401 2001-11-14 Fernando Perez <fperez@colorado.edu>
6404 2001-11-14 Fernando Perez <fperez@colorado.edu>
6402
6405
6403 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6406 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6404 example with IPython. Various other minor fixes and cleanups.
6407 example with IPython. Various other minor fixes and cleanups.
6405
6408
6406 * Version 0.1.9 released, 0.1.10 opened for further work.
6409 * Version 0.1.9 released, 0.1.10 opened for further work.
6407
6410
6408 * Added sys.path to the list of directories searched in the
6411 * Added sys.path to the list of directories searched in the
6409 execfile= option. It used to be the current directory and the
6412 execfile= option. It used to be the current directory and the
6410 user's IPYTHONDIR only.
6413 user's IPYTHONDIR only.
6411
6414
6412 2001-11-13 Fernando Perez <fperez@colorado.edu>
6415 2001-11-13 Fernando Perez <fperez@colorado.edu>
6413
6416
6414 * Reinstated the raw_input/prefilter separation that Janko had
6417 * Reinstated the raw_input/prefilter separation that Janko had
6415 initially. This gives a more convenient setup for extending the
6418 initially. This gives a more convenient setup for extending the
6416 pre-processor from the outside: raw_input always gets a string,
6419 pre-processor from the outside: raw_input always gets a string,
6417 and prefilter has to process it. We can then redefine prefilter
6420 and prefilter has to process it. We can then redefine prefilter
6418 from the outside and implement extensions for special
6421 from the outside and implement extensions for special
6419 purposes.
6422 purposes.
6420
6423
6421 Today I got one for inputting PhysicalQuantity objects
6424 Today I got one for inputting PhysicalQuantity objects
6422 (from Scientific) without needing any function calls at
6425 (from Scientific) without needing any function calls at
6423 all. Extremely convenient, and it's all done as a user-level
6426 all. Extremely convenient, and it's all done as a user-level
6424 extension (no IPython code was touched). Now instead of:
6427 extension (no IPython code was touched). Now instead of:
6425 a = PhysicalQuantity(4.2,'m/s**2')
6428 a = PhysicalQuantity(4.2,'m/s**2')
6426 one can simply say
6429 one can simply say
6427 a = 4.2 m/s**2
6430 a = 4.2 m/s**2
6428 or even
6431 or even
6429 a = 4.2 m/s^2
6432 a = 4.2 m/s^2
6430
6433
6431 I use this, but it's also a proof of concept: IPython really is
6434 I use this, but it's also a proof of concept: IPython really is
6432 fully user-extensible, even at the level of the parsing of the
6435 fully user-extensible, even at the level of the parsing of the
6433 command line. It's not trivial, but it's perfectly doable.
6436 command line. It's not trivial, but it's perfectly doable.
6434
6437
6435 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6438 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6436 the problem of modules being loaded in the inverse order in which
6439 the problem of modules being loaded in the inverse order in which
6437 they were defined in
6440 they were defined in
6438
6441
6439 * Version 0.1.8 released, 0.1.9 opened for further work.
6442 * Version 0.1.8 released, 0.1.9 opened for further work.
6440
6443
6441 * Added magics pdef, source and file. They respectively show the
6444 * Added magics pdef, source and file. They respectively show the
6442 definition line ('prototype' in C), source code and full python
6445 definition line ('prototype' in C), source code and full python
6443 file for any callable object. The object inspector oinfo uses
6446 file for any callable object. The object inspector oinfo uses
6444 these to show the same information.
6447 these to show the same information.
6445
6448
6446 * Version 0.1.7 released, 0.1.8 opened for further work.
6449 * Version 0.1.7 released, 0.1.8 opened for further work.
6447
6450
6448 * Separated all the magic functions into a class called Magic. The
6451 * Separated all the magic functions into a class called Magic. The
6449 InteractiveShell class was becoming too big for Xemacs to handle
6452 InteractiveShell class was becoming too big for Xemacs to handle
6450 (de-indenting a line would lock it up for 10 seconds while it
6453 (de-indenting a line would lock it up for 10 seconds while it
6451 backtracked on the whole class!)
6454 backtracked on the whole class!)
6452
6455
6453 FIXME: didn't work. It can be done, but right now namespaces are
6456 FIXME: didn't work. It can be done, but right now namespaces are
6454 all messed up. Do it later (reverted it for now, so at least
6457 all messed up. Do it later (reverted it for now, so at least
6455 everything works as before).
6458 everything works as before).
6456
6459
6457 * Got the object introspection system (magic_oinfo) working! I
6460 * Got the object introspection system (magic_oinfo) working! I
6458 think this is pretty much ready for release to Janko, so he can
6461 think this is pretty much ready for release to Janko, so he can
6459 test it for a while and then announce it. Pretty much 100% of what
6462 test it for a while and then announce it. Pretty much 100% of what
6460 I wanted for the 'phase 1' release is ready. Happy, tired.
6463 I wanted for the 'phase 1' release is ready. Happy, tired.
6461
6464
6462 2001-11-12 Fernando Perez <fperez@colorado.edu>
6465 2001-11-12 Fernando Perez <fperez@colorado.edu>
6463
6466
6464 * Version 0.1.6 released, 0.1.7 opened for further work.
6467 * Version 0.1.6 released, 0.1.7 opened for further work.
6465
6468
6466 * Fixed bug in printing: it used to test for truth before
6469 * Fixed bug in printing: it used to test for truth before
6467 printing, so 0 wouldn't print. Now checks for None.
6470 printing, so 0 wouldn't print. Now checks for None.
6468
6471
6469 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6472 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6470 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6473 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6471 reaches by hand into the outputcache. Think of a better way to do
6474 reaches by hand into the outputcache. Think of a better way to do
6472 this later.
6475 this later.
6473
6476
6474 * Various small fixes thanks to Nathan's comments.
6477 * Various small fixes thanks to Nathan's comments.
6475
6478
6476 * Changed magic_pprint to magic_Pprint. This way it doesn't
6479 * Changed magic_pprint to magic_Pprint. This way it doesn't
6477 collide with pprint() and the name is consistent with the command
6480 collide with pprint() and the name is consistent with the command
6478 line option.
6481 line option.
6479
6482
6480 * Changed prompt counter behavior to be fully like
6483 * Changed prompt counter behavior to be fully like
6481 Mathematica's. That is, even input that doesn't return a result
6484 Mathematica's. That is, even input that doesn't return a result
6482 raises the prompt counter. The old behavior was kind of confusing
6485 raises the prompt counter. The old behavior was kind of confusing
6483 (getting the same prompt number several times if the operation
6486 (getting the same prompt number several times if the operation
6484 didn't return a result).
6487 didn't return a result).
6485
6488
6486 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6489 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6487
6490
6488 * Fixed -Classic mode (wasn't working anymore).
6491 * Fixed -Classic mode (wasn't working anymore).
6489
6492
6490 * Added colored prompts using Nathan's new code. Colors are
6493 * Added colored prompts using Nathan's new code. Colors are
6491 currently hardwired, they can be user-configurable. For
6494 currently hardwired, they can be user-configurable. For
6492 developers, they can be chosen in file ipythonlib.py, at the
6495 developers, they can be chosen in file ipythonlib.py, at the
6493 beginning of the CachedOutput class def.
6496 beginning of the CachedOutput class def.
6494
6497
6495 2001-11-11 Fernando Perez <fperez@colorado.edu>
6498 2001-11-11 Fernando Perez <fperez@colorado.edu>
6496
6499
6497 * Version 0.1.5 released, 0.1.6 opened for further work.
6500 * Version 0.1.5 released, 0.1.6 opened for further work.
6498
6501
6499 * Changed magic_env to *return* the environment as a dict (not to
6502 * Changed magic_env to *return* the environment as a dict (not to
6500 print it). This way it prints, but it can also be processed.
6503 print it). This way it prints, but it can also be processed.
6501
6504
6502 * Added Verbose exception reporting to interactive
6505 * Added Verbose exception reporting to interactive
6503 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6506 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6504 traceback. Had to make some changes to the ultraTB file. This is
6507 traceback. Had to make some changes to the ultraTB file. This is
6505 probably the last 'big' thing in my mental todo list. This ties
6508 probably the last 'big' thing in my mental todo list. This ties
6506 in with the next entry:
6509 in with the next entry:
6507
6510
6508 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6511 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6509 has to specify is Plain, Color or Verbose for all exception
6512 has to specify is Plain, Color or Verbose for all exception
6510 handling.
6513 handling.
6511
6514
6512 * Removed ShellServices option. All this can really be done via
6515 * Removed ShellServices option. All this can really be done via
6513 the magic system. It's easier to extend, cleaner and has automatic
6516 the magic system. It's easier to extend, cleaner and has automatic
6514 namespace protection and documentation.
6517 namespace protection and documentation.
6515
6518
6516 2001-11-09 Fernando Perez <fperez@colorado.edu>
6519 2001-11-09 Fernando Perez <fperez@colorado.edu>
6517
6520
6518 * Fixed bug in output cache flushing (missing parameter to
6521 * Fixed bug in output cache flushing (missing parameter to
6519 __init__). Other small bugs fixed (found using pychecker).
6522 __init__). Other small bugs fixed (found using pychecker).
6520
6523
6521 * Version 0.1.4 opened for bugfixing.
6524 * Version 0.1.4 opened for bugfixing.
6522
6525
6523 2001-11-07 Fernando Perez <fperez@colorado.edu>
6526 2001-11-07 Fernando Perez <fperez@colorado.edu>
6524
6527
6525 * Version 0.1.3 released, mainly because of the raw_input bug.
6528 * Version 0.1.3 released, mainly because of the raw_input bug.
6526
6529
6527 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6530 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6528 and when testing for whether things were callable, a call could
6531 and when testing for whether things were callable, a call could
6529 actually be made to certain functions. They would get called again
6532 actually be made to certain functions. They would get called again
6530 once 'really' executed, with a resulting double call. A disaster
6533 once 'really' executed, with a resulting double call. A disaster
6531 in many cases (list.reverse() would never work!).
6534 in many cases (list.reverse() would never work!).
6532
6535
6533 * Removed prefilter() function, moved its code to raw_input (which
6536 * Removed prefilter() function, moved its code to raw_input (which
6534 after all was just a near-empty caller for prefilter). This saves
6537 after all was just a near-empty caller for prefilter). This saves
6535 a function call on every prompt, and simplifies the class a tiny bit.
6538 a function call on every prompt, and simplifies the class a tiny bit.
6536
6539
6537 * Fix _ip to __ip name in magic example file.
6540 * Fix _ip to __ip name in magic example file.
6538
6541
6539 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6542 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6540 work with non-gnu versions of tar.
6543 work with non-gnu versions of tar.
6541
6544
6542 2001-11-06 Fernando Perez <fperez@colorado.edu>
6545 2001-11-06 Fernando Perez <fperez@colorado.edu>
6543
6546
6544 * Version 0.1.2. Just to keep track of the recent changes.
6547 * Version 0.1.2. Just to keep track of the recent changes.
6545
6548
6546 * Fixed nasty bug in output prompt routine. It used to check 'if
6549 * Fixed nasty bug in output prompt routine. It used to check 'if
6547 arg != None...'. Problem is, this fails if arg implements a
6550 arg != None...'. Problem is, this fails if arg implements a
6548 special comparison (__cmp__) which disallows comparing to
6551 special comparison (__cmp__) which disallows comparing to
6549 None. Found it when trying to use the PhysicalQuantity module from
6552 None. Found it when trying to use the PhysicalQuantity module from
6550 ScientificPython.
6553 ScientificPython.
6551
6554
6552 2001-11-05 Fernando Perez <fperez@colorado.edu>
6555 2001-11-05 Fernando Perez <fperez@colorado.edu>
6553
6556
6554 * Also added dirs. Now the pushd/popd/dirs family functions
6557 * Also added dirs. Now the pushd/popd/dirs family functions
6555 basically like the shell, with the added convenience of going home
6558 basically like the shell, with the added convenience of going home
6556 when called with no args.
6559 when called with no args.
6557
6560
6558 * pushd/popd slightly modified to mimic shell behavior more
6561 * pushd/popd slightly modified to mimic shell behavior more
6559 closely.
6562 closely.
6560
6563
6561 * Added env,pushd,popd from ShellServices as magic functions. I
6564 * Added env,pushd,popd from ShellServices as magic functions. I
6562 think the cleanest will be to port all desired functions from
6565 think the cleanest will be to port all desired functions from
6563 ShellServices as magics and remove ShellServices altogether. This
6566 ShellServices as magics and remove ShellServices altogether. This
6564 will provide a single, clean way of adding functionality
6567 will provide a single, clean way of adding functionality
6565 (shell-type or otherwise) to IP.
6568 (shell-type or otherwise) to IP.
6566
6569
6567 2001-11-04 Fernando Perez <fperez@colorado.edu>
6570 2001-11-04 Fernando Perez <fperez@colorado.edu>
6568
6571
6569 * Added .ipython/ directory to sys.path. This way users can keep
6572 * Added .ipython/ directory to sys.path. This way users can keep
6570 customizations there and access them via import.
6573 customizations there and access them via import.
6571
6574
6572 2001-11-03 Fernando Perez <fperez@colorado.edu>
6575 2001-11-03 Fernando Perez <fperez@colorado.edu>
6573
6576
6574 * Opened version 0.1.1 for new changes.
6577 * Opened version 0.1.1 for new changes.
6575
6578
6576 * Changed version number to 0.1.0: first 'public' release, sent to
6579 * Changed version number to 0.1.0: first 'public' release, sent to
6577 Nathan and Janko.
6580 Nathan and Janko.
6578
6581
6579 * Lots of small fixes and tweaks.
6582 * Lots of small fixes and tweaks.
6580
6583
6581 * Minor changes to whos format. Now strings are shown, snipped if
6584 * Minor changes to whos format. Now strings are shown, snipped if
6582 too long.
6585 too long.
6583
6586
6584 * Changed ShellServices to work on __main__ so they show up in @who
6587 * Changed ShellServices to work on __main__ so they show up in @who
6585
6588
6586 * Help also works with ? at the end of a line:
6589 * Help also works with ? at the end of a line:
6587 ?sin and sin?
6590 ?sin and sin?
6588 both produce the same effect. This is nice, as often I use the
6591 both produce the same effect. This is nice, as often I use the
6589 tab-complete to find the name of a method, but I used to then have
6592 tab-complete to find the name of a method, but I used to then have
6590 to go to the beginning of the line to put a ? if I wanted more
6593 to go to the beginning of the line to put a ? if I wanted more
6591 info. Now I can just add the ? and hit return. Convenient.
6594 info. Now I can just add the ? and hit return. Convenient.
6592
6595
6593 2001-11-02 Fernando Perez <fperez@colorado.edu>
6596 2001-11-02 Fernando Perez <fperez@colorado.edu>
6594
6597
6595 * Python version check (>=2.1) added.
6598 * Python version check (>=2.1) added.
6596
6599
6597 * Added LazyPython documentation. At this point the docs are quite
6600 * Added LazyPython documentation. At this point the docs are quite
6598 a mess. A cleanup is in order.
6601 a mess. A cleanup is in order.
6599
6602
6600 * Auto-installer created. For some bizarre reason, the zipfiles
6603 * Auto-installer created. For some bizarre reason, the zipfiles
6601 module isn't working on my system. So I made a tar version
6604 module isn't working on my system. So I made a tar version
6602 (hopefully the command line options in various systems won't kill
6605 (hopefully the command line options in various systems won't kill
6603 me).
6606 me).
6604
6607
6605 * Fixes to Struct in genutils. Now all dictionary-like methods are
6608 * Fixes to Struct in genutils. Now all dictionary-like methods are
6606 protected (reasonably).
6609 protected (reasonably).
6607
6610
6608 * Added pager function to genutils and changed ? to print usage
6611 * Added pager function to genutils and changed ? to print usage
6609 note through it (it was too long).
6612 note through it (it was too long).
6610
6613
6611 * Added the LazyPython functionality. Works great! I changed the
6614 * Added the LazyPython functionality. Works great! I changed the
6612 auto-quote escape to ';', it's on home row and next to '. But
6615 auto-quote escape to ';', it's on home row and next to '. But
6613 both auto-quote and auto-paren (still /) escapes are command-line
6616 both auto-quote and auto-paren (still /) escapes are command-line
6614 parameters.
6617 parameters.
6615
6618
6616
6619
6617 2001-11-01 Fernando Perez <fperez@colorado.edu>
6620 2001-11-01 Fernando Perez <fperez@colorado.edu>
6618
6621
6619 * Version changed to 0.0.7. Fairly large change: configuration now
6622 * Version changed to 0.0.7. Fairly large change: configuration now
6620 is all stored in a directory, by default .ipython. There, all
6623 is all stored in a directory, by default .ipython. There, all
6621 config files have normal looking names (not .names)
6624 config files have normal looking names (not .names)
6622
6625
6623 * Version 0.0.6 Released first to Lucas and Archie as a test
6626 * Version 0.0.6 Released first to Lucas and Archie as a test
6624 run. Since it's the first 'semi-public' release, change version to
6627 run. Since it's the first 'semi-public' release, change version to
6625 > 0.0.6 for any changes now.
6628 > 0.0.6 for any changes now.
6626
6629
6627 * Stuff I had put in the ipplib.py changelog:
6630 * Stuff I had put in the ipplib.py changelog:
6628
6631
6629 Changes to InteractiveShell:
6632 Changes to InteractiveShell:
6630
6633
6631 - Made the usage message a parameter.
6634 - Made the usage message a parameter.
6632
6635
6633 - Require the name of the shell variable to be given. It's a bit
6636 - Require the name of the shell variable to be given. It's a bit
6634 of a hack, but allows the name 'shell' not to be hardwired in the
6637 of a hack, but allows the name 'shell' not to be hardwired in the
6635 magic (@) handler, which is problematic b/c it requires
6638 magic (@) handler, which is problematic b/c it requires
6636 polluting the global namespace with 'shell'. This in turn is
6639 polluting the global namespace with 'shell'. This in turn is
6637 fragile: if a user redefines a variable called shell, things
6640 fragile: if a user redefines a variable called shell, things
6638 break.
6641 break.
6639
6642
6640 - magic @: all functions available through @ need to be defined
6643 - magic @: all functions available through @ need to be defined
6641 as magic_<name>, even though they can be called simply as
6644 as magic_<name>, even though they can be called simply as
6642 @<name>. This allows the special command @magic to gather
6645 @<name>. This allows the special command @magic to gather
6643 information automatically about all existing magic functions,
6646 information automatically about all existing magic functions,
6644 even if they are run-time user extensions, by parsing the shell
6647 even if they are run-time user extensions, by parsing the shell
6645 instance __dict__ looking for special magic_ names.
6648 instance __dict__ looking for special magic_ names.
6646
6649
6647 - mainloop: added *two* local namespace parameters. This allows
6650 - mainloop: added *two* local namespace parameters. This allows
6648 the class to differentiate between parameters which were there
6651 the class to differentiate between parameters which were there
6649 before and after command line initialization was processed. This
6652 before and after command line initialization was processed. This
6650 way, later @who can show things loaded at startup by the
6653 way, later @who can show things loaded at startup by the
6651 user. This trick was necessary to make session saving/reloading
6654 user. This trick was necessary to make session saving/reloading
6652 really work: ideally after saving/exiting/reloading a session,
6655 really work: ideally after saving/exiting/reloading a session,
6653 *everything* should look the same, including the output of @who. I
6656 *everything* should look the same, including the output of @who. I
6654 was only able to make this work with this double namespace
6657 was only able to make this work with this double namespace
6655 trick.
6658 trick.
6656
6659
6657 - added a header to the logfile which allows (almost) full
6660 - added a header to the logfile which allows (almost) full
6658 session restoring.
6661 session restoring.
6659
6662
6660 - prepend lines beginning with @ or !, with a and log
6663 - prepend lines beginning with @ or !, with a and log
6661 them. Why? !lines: may be useful to know what you did @lines:
6664 them. Why? !lines: may be useful to know what you did @lines:
6662 they may affect session state. So when restoring a session, at
6665 they may affect session state. So when restoring a session, at
6663 least inform the user of their presence. I couldn't quite get
6666 least inform the user of their presence. I couldn't quite get
6664 them to properly re-execute, but at least the user is warned.
6667 them to properly re-execute, but at least the user is warned.
6665
6668
6666 * Started ChangeLog.
6669 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now