##// END OF EJS Templates
upgrade_dir.py: skip junk files like *.pyc
vivainio -
Show More
@@ -1,94 +1,95 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2 """ A script/util to upgrade all files in a directory
2 """ A script/util to upgrade all files in a directory
3
3
4 This is rather conservative in its approach, only copying/overwriting
4 This is rather conservative in its approach, only copying/overwriting
5 new and unedited files.
5 new and unedited files.
6
6
7 To be used by "upgrade" feature.
7 To be used by "upgrade" feature.
8 """
8 """
9 try:
9 try:
10 from IPython.Extensions.path import path
10 from IPython.Extensions.path import path
11 except ImportError:
11 except ImportError:
12 try:
12 try:
13 from Extensions.path import path
13 from Extensions.path import path
14 except ImportError:
14 except ImportError:
15 from path import path
15 from path import path
16
16
17 import md5,pickle
17 import md5,pickle
18
18
19 def showdiff(old,new):
19 def showdiff(old,new):
20 import difflib
20 import difflib
21 d = difflib.Differ()
21 d = difflib.Differ()
22 lines = d.compare(old.lines(),new.lines())
22 lines = d.compare(old.lines(),new.lines())
23 realdiff = False
23 realdiff = False
24 for l in lines:
24 for l in lines:
25 print l,
25 print l,
26 if not realdiff and not l[0].isspace():
26 if not realdiff and not l[0].isspace():
27 realdiff = True
27 realdiff = True
28 return realdiff
28 return realdiff
29
29
30 def upgrade_dir(srcdir, tgtdir):
30 def upgrade_dir(srcdir, tgtdir):
31 """ Copy over all files in srcdir to tgtdir w/ native line endings
31 """ Copy over all files in srcdir to tgtdir w/ native line endings
32
32
33 Creates .upgrade_report in tgtdir that stores md5sums of all files
33 Creates .upgrade_report in tgtdir that stores md5sums of all files
34 to notice changed files b/w upgrades.
34 to notice changed files b/w upgrades.
35 """
35 """
36
36
37 def pr(s):
37 def pr(s):
38 print s
38 print s
39
39 junk = ['.svn','ipythonrc*','*.pyc', '*~', '.hg']
40
40 def ignorable(p):
41 def ignorable(p):
41 if p.lower().startswith('.svn') or p.startswith('ipythonrc'):
42 for pat in junk:
42 return True
43 if p.startswith(pat) or p.fnmatch(pat):
44 return True
43 return False
45 return False
44
46
45
46 modded = []
47 modded = []
47 files = [path(srcdir).relpathto(p) for p in path(srcdir).walkfiles()]
48 files = [path(srcdir).relpathto(p) for p in path(srcdir).walkfiles()]
48 #print files
49 #print files
49 rep = tgtdir / '.upgrade_report'
50 rep = tgtdir / '.upgrade_report'
50 try:
51 try:
51 rpt = pickle.load(rep.open())
52 rpt = pickle.load(rep.open())
52 except:
53 except:
53 rpt = {}
54 rpt = {}
54
55
55 for f in files:
56 for f in files:
56 if ignorable(f):
57 if ignorable(f):
57 continue
58 continue
58 src = srcdir / f
59 src = srcdir / f
59 tgt = tgtdir / f
60 tgt = tgtdir / f
60 if not tgt.isfile():
61 if not tgt.isfile():
61 pr("Creating %s" % str(tgt))
62 pr("Creating %s" % str(tgt))
62
63
63 tgt.write_text(src.text())
64 tgt.write_text(src.text())
64 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
65 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
65 else:
66 else:
66 cont = tgt.text()
67 cont = tgt.text()
67 sum = rpt.get(str(tgt), None)
68 sum = rpt.get(str(tgt), None)
68 #print sum
69 #print sum
69 if sum and md5.new(cont).hexdigest() == sum:
70 if sum and md5.new(cont).hexdigest() == sum:
70 pr("Unedited, installing new %s" % tgt)
71 pr("%s: Unedited, installing new version" % tgt)
71 tgt.write_text(src.text())
72 tgt.write_text(src.text())
72 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
73 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
73 else:
74 else:
74 pr(' == Modified, skipping %s, diffs below == ' % tgt)
75 pr(' == Modified, skipping %s, diffs below == ' % tgt)
75 #rpt[str(tgt)] = md5.new(tgt.bytes()).hexdigest()
76 #rpt[str(tgt)] = md5.new(tgt.bytes()).hexdigest()
76 real = showdiff(tgt,src)
77 real = showdiff(tgt,src)
77 pr('') # empty line
78 pr('') # empty line
78 if not real:
79 if not real:
79 pr("(Ok, it wasn't that different at all, upgrading checksum)")
80 pr("(Ok, it was identical, only upgrading checksum)")
80 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
81 rpt[str(tgt)] = md5.new(tgt.text()).hexdigest()
81 else:
82 else:
82 modded.append(tgt)
83 modded.append(tgt)
83
84
84 #print rpt
85 #print rpt
85 pickle.dump(rpt, rep.open('w'))
86 pickle.dump(rpt, rep.open('w'))
86 if modded:
87 if modded:
87 print "\n\nDelete the following files manually (and rerun %upgrade)\nif you need a full upgrade:"
88 print "\n\nDelete the following files manually (and rerun %upgrade)\nif you need a full upgrade:"
88 for m in modded:
89 for m in modded:
89 print m
90 print m
90
91
91
92
92 import sys
93 import sys
93 if __name__ == "__main__":
94 if __name__ == "__main__":
94 upgrade_dir(path(sys.argv[1]), path(sys.argv[2]))
95 upgrade_dir(path(sys.argv[1]), path(sys.argv[2]))
@@ -1,6545 +1,6549 b''
1 2007-04-19 Ville Vainio <vivainio@gmail.com>
2
3 * upgrade_dir.py: skip junk files like *.pyc
4
1 2007-04-18 Ville Vainio <vivainio@gmail.com>
5 2007-04-18 Ville Vainio <vivainio@gmail.com>
2
6
3 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
7 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
4 and later on win32.
8 and later on win32.
5
9
6 2007-04-16 Ville Vainio <vivainio@gmail.com>
10 2007-04-16 Ville Vainio <vivainio@gmail.com>
7
11
8 * iplib.py (showtraceback): Do not crash when running w/o readline.
12 * iplib.py (showtraceback): Do not crash when running w/o readline.
9
13
10 2007-04-12 Walter Doerwald <walter@livinglogic.de>
14 2007-04-12 Walter Doerwald <walter@livinglogic.de>
11
15
12 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
16 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
13 sorted (case sensitive with files and dirs mixed).
17 sorted (case sensitive with files and dirs mixed).
14
18
15 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
19 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
16
20
17 * IPython/Release.py (version): Open trunk for 0.8.1 development.
21 * IPython/Release.py (version): Open trunk for 0.8.1 development.
18
22
19 2007-04-10 *** Released version 0.8.0
23 2007-04-10 *** Released version 0.8.0
20
24
21 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
25 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
22
26
23 * Tag 0.8.0 for release.
27 * Tag 0.8.0 for release.
24
28
25 * IPython/iplib.py (reloadhist): add API function to cleanly
29 * IPython/iplib.py (reloadhist): add API function to cleanly
26 reload the readline history, which was growing inappropriately on
30 reload the readline history, which was growing inappropriately on
27 every %run call.
31 every %run call.
28
32
29 * win32_manual_post_install.py (run): apply last part of Nicolas
33 * win32_manual_post_install.py (run): apply last part of Nicolas
30 Pernetty's patch (I'd accidentally applied it in a different
34 Pernetty's patch (I'd accidentally applied it in a different
31 directory and this particular file didn't get patched).
35 directory and this particular file didn't get patched).
32
36
33 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
37 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
34
38
35 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
39 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
36 find the main thread id and use the proper API call. Thanks to
40 find the main thread id and use the proper API call. Thanks to
37 Stefan for the fix.
41 Stefan for the fix.
38
42
39 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
43 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
40 unit tests to reflect fixed ticket #52, and add more tests sent by
44 unit tests to reflect fixed ticket #52, and add more tests sent by
41 him.
45 him.
42
46
43 * IPython/iplib.py (raw_input): restore the readline completer
47 * IPython/iplib.py (raw_input): restore the readline completer
44 state on every input, in case third-party code messed it up.
48 state on every input, in case third-party code messed it up.
45 (_prefilter): revert recent addition of early-escape checks which
49 (_prefilter): revert recent addition of early-escape checks which
46 prevent many valid alias calls from working.
50 prevent many valid alias calls from working.
47
51
48 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
52 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
49 flag for sigint handler so we don't run a full signal() call on
53 flag for sigint handler so we don't run a full signal() call on
50 each runcode access.
54 each runcode access.
51
55
52 * IPython/Magic.py (magic_whos): small improvement to diagnostic
56 * IPython/Magic.py (magic_whos): small improvement to diagnostic
53 message.
57 message.
54
58
55 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
59 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
56
60
57 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
61 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
58 asynchronous exceptions working, i.e., Ctrl-C can actually
62 asynchronous exceptions working, i.e., Ctrl-C can actually
59 interrupt long-running code in the multithreaded shells.
63 interrupt long-running code in the multithreaded shells.
60
64
61 This is using Tomer Filiba's great ctypes-based trick:
65 This is using Tomer Filiba's great ctypes-based trick:
62 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
66 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
63 this in the past, but hadn't been able to make it work before. So
67 this in the past, but hadn't been able to make it work before. So
64 far it looks like it's actually running, but this needs more
68 far it looks like it's actually running, but this needs more
65 testing. If it really works, I'll be *very* happy, and we'll owe
69 testing. If it really works, I'll be *very* happy, and we'll owe
66 a huge thank you to Tomer. My current implementation is ugly,
70 a huge thank you to Tomer. My current implementation is ugly,
67 hackish and uses nasty globals, but I don't want to try and clean
71 hackish and uses nasty globals, but I don't want to try and clean
68 anything up until we know if it actually works.
72 anything up until we know if it actually works.
69
73
70 NOTE: this feature needs ctypes to work. ctypes is included in
74 NOTE: this feature needs ctypes to work. ctypes is included in
71 Python2.5, but 2.4 users will need to manually install it. This
75 Python2.5, but 2.4 users will need to manually install it. This
72 feature makes multi-threaded shells so much more usable that it's
76 feature makes multi-threaded shells so much more usable that it's
73 a minor price to pay (ctypes is very easy to install, already a
77 a minor price to pay (ctypes is very easy to install, already a
74 requirement for win32 and available in major linux distros).
78 requirement for win32 and available in major linux distros).
75
79
76 2007-04-04 Ville Vainio <vivainio@gmail.com>
80 2007-04-04 Ville Vainio <vivainio@gmail.com>
77
81
78 * Extensions/ipy_completers.py, ipy_stock_completers.py:
82 * Extensions/ipy_completers.py, ipy_stock_completers.py:
79 Moved implementations of 'bundled' completers to ipy_completers.py,
83 Moved implementations of 'bundled' completers to ipy_completers.py,
80 they are only enabled in ipy_stock_completers.py.
84 they are only enabled in ipy_stock_completers.py.
81
85
82 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
86 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
83
87
84 * IPython/PyColorize.py (Parser.format2): Fix identation of
88 * IPython/PyColorize.py (Parser.format2): Fix identation of
85 colorzied output and return early if color scheme is NoColor, to
89 colorzied output and return early if color scheme is NoColor, to
86 avoid unnecessary and expensive tokenization. Closes #131.
90 avoid unnecessary and expensive tokenization. Closes #131.
87
91
88 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
92 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
89
93
90 * IPython/Debugger.py: disable the use of pydb version 1.17. It
94 * IPython/Debugger.py: disable the use of pydb version 1.17. It
91 has a critical bug (a missing import that makes post-mortem not
95 has a critical bug (a missing import that makes post-mortem not
92 work at all). Unfortunately as of this time, this is the version
96 work at all). Unfortunately as of this time, this is the version
93 shipped with Ubuntu Edgy, so quite a few people have this one. I
97 shipped with Ubuntu Edgy, so quite a few people have this one. I
94 hope Edgy will update to a more recent package.
98 hope Edgy will update to a more recent package.
95
99
96 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
100 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
97
101
98 * IPython/iplib.py (_prefilter): close #52, second part of a patch
102 * IPython/iplib.py (_prefilter): close #52, second part of a patch
99 set by Stefan (only the first part had been applied before).
103 set by Stefan (only the first part had been applied before).
100
104
101 * IPython/Extensions/ipy_stock_completers.py (module_completer):
105 * IPython/Extensions/ipy_stock_completers.py (module_completer):
102 remove usage of the dangerous pkgutil.walk_packages(). See
106 remove usage of the dangerous pkgutil.walk_packages(). See
103 details in comments left in the code.
107 details in comments left in the code.
104
108
105 * IPython/Magic.py (magic_whos): add support for numpy arrays
109 * IPython/Magic.py (magic_whos): add support for numpy arrays
106 similar to what we had for Numeric.
110 similar to what we had for Numeric.
107
111
108 * IPython/completer.py (IPCompleter.complete): extend the
112 * IPython/completer.py (IPCompleter.complete): extend the
109 complete() call API to support completions by other mechanisms
113 complete() call API to support completions by other mechanisms
110 than readline. Closes #109.
114 than readline. Closes #109.
111
115
112 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
116 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
113 protect against a bug in Python's execfile(). Closes #123.
117 protect against a bug in Python's execfile(). Closes #123.
114
118
115 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
119 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
116
120
117 * IPython/iplib.py (split_user_input): ensure that when splitting
121 * IPython/iplib.py (split_user_input): ensure that when splitting
118 user input, the part that can be treated as a python name is pure
122 user input, the part that can be treated as a python name is pure
119 ascii (Python identifiers MUST be pure ascii). Part of the
123 ascii (Python identifiers MUST be pure ascii). Part of the
120 ongoing Unicode support work.
124 ongoing Unicode support work.
121
125
122 * IPython/Prompts.py (prompt_specials_color): Add \N for the
126 * IPython/Prompts.py (prompt_specials_color): Add \N for the
123 actual prompt number, without any coloring. This allows users to
127 actual prompt number, without any coloring. This allows users to
124 produce numbered prompts with their own colors. Added after a
128 produce numbered prompts with their own colors. Added after a
125 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
129 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
126
130
127 2007-03-31 Walter Doerwald <walter@livinglogic.de>
131 2007-03-31 Walter Doerwald <walter@livinglogic.de>
128
132
129 * IPython/Extensions/igrid.py: Map the return key
133 * IPython/Extensions/igrid.py: Map the return key
130 to enter() and shift-return to enterattr().
134 to enter() and shift-return to enterattr().
131
135
132 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
136 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
133
137
134 * IPython/Magic.py (magic_psearch): add unicode support by
138 * IPython/Magic.py (magic_psearch): add unicode support by
135 encoding to ascii the input, since this routine also only deals
139 encoding to ascii the input, since this routine also only deals
136 with valid Python names. Fixes a bug reported by Stefan.
140 with valid Python names. Fixes a bug reported by Stefan.
137
141
138 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
142 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
139
143
140 * IPython/Magic.py (_inspect): convert unicode input into ascii
144 * IPython/Magic.py (_inspect): convert unicode input into ascii
141 before trying to evaluate it as a Python identifier. This fixes a
145 before trying to evaluate it as a Python identifier. This fixes a
142 problem that the new unicode support had introduced when analyzing
146 problem that the new unicode support had introduced when analyzing
143 long definition lines for functions.
147 long definition lines for functions.
144
148
145 2007-03-24 Walter Doerwald <walter@livinglogic.de>
149 2007-03-24 Walter Doerwald <walter@livinglogic.de>
146
150
147 * IPython/Extensions/igrid.py: Fix picking. Using
151 * IPython/Extensions/igrid.py: Fix picking. Using
148 igrid with wxPython 2.6 and -wthread should work now.
152 igrid with wxPython 2.6 and -wthread should work now.
149 igrid.display() simply tries to create a frame without
153 igrid.display() simply tries to create a frame without
150 an application. Only if this fails an application is created.
154 an application. Only if this fails an application is created.
151
155
152 2007-03-23 Walter Doerwald <walter@livinglogic.de>
156 2007-03-23 Walter Doerwald <walter@livinglogic.de>
153
157
154 * IPython/Extensions/path.py: Updated to version 2.2.
158 * IPython/Extensions/path.py: Updated to version 2.2.
155
159
156 2007-03-23 Ville Vainio <vivainio@gmail.com>
160 2007-03-23 Ville Vainio <vivainio@gmail.com>
157
161
158 * iplib.py: recursive alias expansion now works better, so that
162 * iplib.py: recursive alias expansion now works better, so that
159 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
163 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
160 doesn't trip up the process, if 'd' has been aliased to 'ls'.
164 doesn't trip up the process, if 'd' has been aliased to 'ls'.
161
165
162 * Extensions/ipy_gnuglobal.py added, provides %global magic
166 * Extensions/ipy_gnuglobal.py added, provides %global magic
163 for users of http://www.gnu.org/software/global
167 for users of http://www.gnu.org/software/global
164
168
165 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
169 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
166 Closes #52. Patch by Stefan van der Walt.
170 Closes #52. Patch by Stefan van der Walt.
167
171
168 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
172 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
169
173
170 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
174 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
171 respect the __file__ attribute when using %run. Thanks to a bug
175 respect the __file__ attribute when using %run. Thanks to a bug
172 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
176 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
173
177
174 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
178 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
175
179
176 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
180 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
177 input. Patch sent by Stefan.
181 input. Patch sent by Stefan.
178
182
179 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
183 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
180 * IPython/Extensions/ipy_stock_completer.py
184 * IPython/Extensions/ipy_stock_completer.py
181 shlex_split, fix bug in shlex_split. len function
185 shlex_split, fix bug in shlex_split. len function
182 call was missing an if statement. Caused shlex_split to
186 call was missing an if statement. Caused shlex_split to
183 sometimes return "" as last element.
187 sometimes return "" as last element.
184
188
185 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
189 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
186
190
187 * IPython/completer.py
191 * IPython/completer.py
188 (IPCompleter.file_matches.single_dir_expand): fix a problem
192 (IPCompleter.file_matches.single_dir_expand): fix a problem
189 reported by Stefan, where directories containign a single subdir
193 reported by Stefan, where directories containign a single subdir
190 would be completed too early.
194 would be completed too early.
191
195
192 * IPython/Shell.py (_load_pylab): Make the execution of 'from
196 * IPython/Shell.py (_load_pylab): Make the execution of 'from
193 pylab import *' when -pylab is given be optional. A new flag,
197 pylab import *' when -pylab is given be optional. A new flag,
194 pylab_import_all controls this behavior, the default is True for
198 pylab_import_all controls this behavior, the default is True for
195 backwards compatibility.
199 backwards compatibility.
196
200
197 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
201 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
198 modified) R. Bernstein's patch for fully syntax highlighted
202 modified) R. Bernstein's patch for fully syntax highlighted
199 tracebacks. The functionality is also available under ultraTB for
203 tracebacks. The functionality is also available under ultraTB for
200 non-ipython users (someone using ultraTB but outside an ipython
204 non-ipython users (someone using ultraTB but outside an ipython
201 session). They can select the color scheme by setting the
205 session). They can select the color scheme by setting the
202 module-level global DEFAULT_SCHEME. The highlight functionality
206 module-level global DEFAULT_SCHEME. The highlight functionality
203 also works when debugging.
207 also works when debugging.
204
208
205 * IPython/genutils.py (IOStream.close): small patch by
209 * IPython/genutils.py (IOStream.close): small patch by
206 R. Bernstein for improved pydb support.
210 R. Bernstein for improved pydb support.
207
211
208 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
212 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
209 DaveS <davls@telus.net> to improve support of debugging under
213 DaveS <davls@telus.net> to improve support of debugging under
210 NTEmacs, including improved pydb behavior.
214 NTEmacs, including improved pydb behavior.
211
215
212 * IPython/Magic.py (magic_prun): Fix saving of profile info for
216 * IPython/Magic.py (magic_prun): Fix saving of profile info for
213 Python 2.5, where the stats object API changed a little. Thanks
217 Python 2.5, where the stats object API changed a little. Thanks
214 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
218 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
215
219
216 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
220 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
217 Pernetty's patch to improve support for (X)Emacs under Win32.
221 Pernetty's patch to improve support for (X)Emacs under Win32.
218
222
219 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
223 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
220
224
221 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
225 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
222 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
226 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
223 a report by Nik Tautenhahn.
227 a report by Nik Tautenhahn.
224
228
225 2007-03-16 Walter Doerwald <walter@livinglogic.de>
229 2007-03-16 Walter Doerwald <walter@livinglogic.de>
226
230
227 * setup.py: Add the igrid help files to the list of data files
231 * setup.py: Add the igrid help files to the list of data files
228 to be installed alongside igrid.
232 to be installed alongside igrid.
229 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
233 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
230 Show the input object of the igrid browser as the window tile.
234 Show the input object of the igrid browser as the window tile.
231 Show the object the cursor is on in the statusbar.
235 Show the object the cursor is on in the statusbar.
232
236
233 2007-03-15 Ville Vainio <vivainio@gmail.com>
237 2007-03-15 Ville Vainio <vivainio@gmail.com>
234
238
235 * Extensions/ipy_stock_completers.py: Fixed exception
239 * Extensions/ipy_stock_completers.py: Fixed exception
236 on mismatching quotes in %run completer. Patch by
240 on mismatching quotes in %run completer. Patch by
237 JοΏ½rgen Stenarson. Closes #127.
241 JοΏ½rgen Stenarson. Closes #127.
238
242
239 2007-03-14 Ville Vainio <vivainio@gmail.com>
243 2007-03-14 Ville Vainio <vivainio@gmail.com>
240
244
241 * Extensions/ext_rehashdir.py: Do not do auto_alias
245 * Extensions/ext_rehashdir.py: Do not do auto_alias
242 in %rehashdir, it clobbers %store'd aliases.
246 in %rehashdir, it clobbers %store'd aliases.
243
247
244 * UserConfig/ipy_profile_sh.py: envpersist.py extension
248 * UserConfig/ipy_profile_sh.py: envpersist.py extension
245 (beefed up %env) imported for sh profile.
249 (beefed up %env) imported for sh profile.
246
250
247 2007-03-10 Walter Doerwald <walter@livinglogic.de>
251 2007-03-10 Walter Doerwald <walter@livinglogic.de>
248
252
249 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
253 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
250 as the default browser.
254 as the default browser.
251 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
255 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
252 As igrid displays all attributes it ever encounters, fetch() (which has
256 As igrid displays all attributes it ever encounters, fetch() (which has
253 been renamed to _fetch()) doesn't have to recalculate the display attributes
257 been renamed to _fetch()) doesn't have to recalculate the display attributes
254 every time a new item is fetched. This should speed up scrolling.
258 every time a new item is fetched. This should speed up scrolling.
255
259
256 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
260 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
257
261
258 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
262 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
259 Schmolck's recently reported tab-completion bug (my previous one
263 Schmolck's recently reported tab-completion bug (my previous one
260 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
264 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
261
265
262 2007-03-09 Walter Doerwald <walter@livinglogic.de>
266 2007-03-09 Walter Doerwald <walter@livinglogic.de>
263
267
264 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
268 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
265 Close help window if exiting igrid.
269 Close help window if exiting igrid.
266
270
267 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
271 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
268
272
269 * IPython/Extensions/ipy_defaults.py: Check if readline is available
273 * IPython/Extensions/ipy_defaults.py: Check if readline is available
270 before calling functions from readline.
274 before calling functions from readline.
271
275
272 2007-03-02 Walter Doerwald <walter@livinglogic.de>
276 2007-03-02 Walter Doerwald <walter@livinglogic.de>
273
277
274 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
278 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
275 igrid is a wxPython-based display object for ipipe. If your system has
279 igrid is a wxPython-based display object for ipipe. If your system has
276 wx installed igrid will be the default display. Without wx ipipe falls
280 wx installed igrid will be the default display. Without wx ipipe falls
277 back to ibrowse (which needs curses). If no curses is installed ipipe
281 back to ibrowse (which needs curses). If no curses is installed ipipe
278 falls back to idump.
282 falls back to idump.
279
283
280 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
284 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
281
285
282 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
286 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
283 my changes from yesterday, they introduced bugs. Will reactivate
287 my changes from yesterday, they introduced bugs. Will reactivate
284 once I get a correct solution, which will be much easier thanks to
288 once I get a correct solution, which will be much easier thanks to
285 Dan Milstein's new prefilter test suite.
289 Dan Milstein's new prefilter test suite.
286
290
287 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
291 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
288
292
289 * IPython/iplib.py (split_user_input): fix input splitting so we
293 * IPython/iplib.py (split_user_input): fix input splitting so we
290 don't attempt attribute accesses on things that can't possibly be
294 don't attempt attribute accesses on things that can't possibly be
291 valid Python attributes. After a bug report by Alex Schmolck.
295 valid Python attributes. After a bug report by Alex Schmolck.
292 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
296 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
293 %magic with explicit % prefix.
297 %magic with explicit % prefix.
294
298
295 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
299 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
296
300
297 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
301 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
298 avoid a DeprecationWarning from GTK.
302 avoid a DeprecationWarning from GTK.
299
303
300 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
304 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
301
305
302 * IPython/genutils.py (clock): I modified clock() to return total
306 * IPython/genutils.py (clock): I modified clock() to return total
303 time, user+system. This is a more commonly needed metric. I also
307 time, user+system. This is a more commonly needed metric. I also
304 introduced the new clocku/clocks to get only user/system time if
308 introduced the new clocku/clocks to get only user/system time if
305 one wants those instead.
309 one wants those instead.
306
310
307 ***WARNING: API CHANGE*** clock() used to return only user time,
311 ***WARNING: API CHANGE*** clock() used to return only user time,
308 so if you want exactly the same results as before, use clocku
312 so if you want exactly the same results as before, use clocku
309 instead.
313 instead.
310
314
311 2007-02-22 Ville Vainio <vivainio@gmail.com>
315 2007-02-22 Ville Vainio <vivainio@gmail.com>
312
316
313 * IPython/Extensions/ipy_p4.py: Extension for improved
317 * IPython/Extensions/ipy_p4.py: Extension for improved
314 p4 (perforce version control system) experience.
318 p4 (perforce version control system) experience.
315 Adds %p4 magic with p4 command completion and
319 Adds %p4 magic with p4 command completion and
316 automatic -G argument (marshall output as python dict)
320 automatic -G argument (marshall output as python dict)
317
321
318 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
322 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
319
323
320 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
324 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
321 stop marks.
325 stop marks.
322 (ClearingMixin): a simple mixin to easily make a Demo class clear
326 (ClearingMixin): a simple mixin to easily make a Demo class clear
323 the screen in between blocks and have empty marquees. The
327 the screen in between blocks and have empty marquees. The
324 ClearDemo and ClearIPDemo classes that use it are included.
328 ClearDemo and ClearIPDemo classes that use it are included.
325
329
326 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
330 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
327
331
328 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
332 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
329 protect against exceptions at Python shutdown time. Patch
333 protect against exceptions at Python shutdown time. Patch
330 sumbmitted to upstream.
334 sumbmitted to upstream.
331
335
332 2007-02-14 Walter Doerwald <walter@livinglogic.de>
336 2007-02-14 Walter Doerwald <walter@livinglogic.de>
333
337
334 * IPython/Extensions/ibrowse.py: If entering the first object level
338 * IPython/Extensions/ibrowse.py: If entering the first object level
335 (i.e. the object for which the browser has been started) fails,
339 (i.e. the object for which the browser has been started) fails,
336 now the error is raised directly (aborting the browser) instead of
340 now the error is raised directly (aborting the browser) instead of
337 running into an empty levels list later.
341 running into an empty levels list later.
338
342
339 2007-02-03 Walter Doerwald <walter@livinglogic.de>
343 2007-02-03 Walter Doerwald <walter@livinglogic.de>
340
344
341 * IPython/Extensions/ipipe.py: Add an xrepr implementation
345 * IPython/Extensions/ipipe.py: Add an xrepr implementation
342 for the noitem object.
346 for the noitem object.
343
347
344 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
348 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
345
349
346 * IPython/completer.py (Completer.attr_matches): Fix small
350 * IPython/completer.py (Completer.attr_matches): Fix small
347 tab-completion bug with Enthought Traits objects with units.
351 tab-completion bug with Enthought Traits objects with units.
348 Thanks to a bug report by Tom Denniston
352 Thanks to a bug report by Tom Denniston
349 <tom.denniston-AT-alum.dartmouth.org>.
353 <tom.denniston-AT-alum.dartmouth.org>.
350
354
351 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
355 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
352
356
353 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
357 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
354 bug where only .ipy or .py would be completed. Once the first
358 bug where only .ipy or .py would be completed. Once the first
355 argument to %run has been given, all completions are valid because
359 argument to %run has been given, all completions are valid because
356 they are the arguments to the script, which may well be non-python
360 they are the arguments to the script, which may well be non-python
357 filenames.
361 filenames.
358
362
359 * IPython/irunner.py (InteractiveRunner.run_source): major updates
363 * IPython/irunner.py (InteractiveRunner.run_source): major updates
360 to irunner to allow it to correctly support real doctesting of
364 to irunner to allow it to correctly support real doctesting of
361 out-of-process ipython code.
365 out-of-process ipython code.
362
366
363 * IPython/Magic.py (magic_cd): Make the setting of the terminal
367 * IPython/Magic.py (magic_cd): Make the setting of the terminal
364 title an option (-noterm_title) because it completely breaks
368 title an option (-noterm_title) because it completely breaks
365 doctesting.
369 doctesting.
366
370
367 * IPython/demo.py: fix IPythonDemo class that was not actually working.
371 * IPython/demo.py: fix IPythonDemo class that was not actually working.
368
372
369 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
373 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
370
374
371 * IPython/irunner.py (main): fix small bug where extensions were
375 * IPython/irunner.py (main): fix small bug where extensions were
372 not being correctly recognized.
376 not being correctly recognized.
373
377
374 2007-01-23 Walter Doerwald <walter@livinglogic.de>
378 2007-01-23 Walter Doerwald <walter@livinglogic.de>
375
379
376 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
380 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
377 a string containing a single line yields the string itself as the
381 a string containing a single line yields the string itself as the
378 only item.
382 only item.
379
383
380 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
384 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
381 object if it's the same as the one on the last level (This avoids
385 object if it's the same as the one on the last level (This avoids
382 infinite recursion for one line strings).
386 infinite recursion for one line strings).
383
387
384 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
388 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
385
389
386 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
390 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
387 all output streams before printing tracebacks. This ensures that
391 all output streams before printing tracebacks. This ensures that
388 user output doesn't end up interleaved with traceback output.
392 user output doesn't end up interleaved with traceback output.
389
393
390 2007-01-10 Ville Vainio <vivainio@gmail.com>
394 2007-01-10 Ville Vainio <vivainio@gmail.com>
391
395
392 * Extensions/envpersist.py: Turbocharged %env that remembers
396 * Extensions/envpersist.py: Turbocharged %env that remembers
393 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
397 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
394 "%env VISUAL=jed".
398 "%env VISUAL=jed".
395
399
396 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
400 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
397
401
398 * IPython/iplib.py (showtraceback): ensure that we correctly call
402 * IPython/iplib.py (showtraceback): ensure that we correctly call
399 custom handlers in all cases (some with pdb were slipping through,
403 custom handlers in all cases (some with pdb were slipping through,
400 but I'm not exactly sure why).
404 but I'm not exactly sure why).
401
405
402 * IPython/Debugger.py (Tracer.__init__): added new class to
406 * IPython/Debugger.py (Tracer.__init__): added new class to
403 support set_trace-like usage of IPython's enhanced debugger.
407 support set_trace-like usage of IPython's enhanced debugger.
404
408
405 2006-12-24 Ville Vainio <vivainio@gmail.com>
409 2006-12-24 Ville Vainio <vivainio@gmail.com>
406
410
407 * ipmaker.py: more informative message when ipy_user_conf
411 * ipmaker.py: more informative message when ipy_user_conf
408 import fails (suggest running %upgrade).
412 import fails (suggest running %upgrade).
409
413
410 * tools/run_ipy_in_profiler.py: Utility to see where
414 * tools/run_ipy_in_profiler.py: Utility to see where
411 the time during IPython startup is spent.
415 the time during IPython startup is spent.
412
416
413 2006-12-20 Ville Vainio <vivainio@gmail.com>
417 2006-12-20 Ville Vainio <vivainio@gmail.com>
414
418
415 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
419 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
416
420
417 * ipapi.py: Add new ipapi method, expand_alias.
421 * ipapi.py: Add new ipapi method, expand_alias.
418
422
419 * Release.py: Bump up version to 0.7.4.svn
423 * Release.py: Bump up version to 0.7.4.svn
420
424
421 2006-12-17 Ville Vainio <vivainio@gmail.com>
425 2006-12-17 Ville Vainio <vivainio@gmail.com>
422
426
423 * Extensions/jobctrl.py: Fixed &cmd arg arg...
427 * Extensions/jobctrl.py: Fixed &cmd arg arg...
424 to work properly on posix too
428 to work properly on posix too
425
429
426 * Release.py: Update revnum (version is still just 0.7.3).
430 * Release.py: Update revnum (version is still just 0.7.3).
427
431
428 2006-12-15 Ville Vainio <vivainio@gmail.com>
432 2006-12-15 Ville Vainio <vivainio@gmail.com>
429
433
430 * scripts/ipython_win_post_install: create ipython.py in
434 * scripts/ipython_win_post_install: create ipython.py in
431 prefix + "/scripts".
435 prefix + "/scripts".
432
436
433 * Release.py: Update version to 0.7.3.
437 * Release.py: Update version to 0.7.3.
434
438
435 2006-12-14 Ville Vainio <vivainio@gmail.com>
439 2006-12-14 Ville Vainio <vivainio@gmail.com>
436
440
437 * scripts/ipython_win_post_install: Overwrite old shortcuts
441 * scripts/ipython_win_post_install: Overwrite old shortcuts
438 if they already exist
442 if they already exist
439
443
440 * Release.py: release 0.7.3rc2
444 * Release.py: release 0.7.3rc2
441
445
442 2006-12-13 Ville Vainio <vivainio@gmail.com>
446 2006-12-13 Ville Vainio <vivainio@gmail.com>
443
447
444 * Branch and update Release.py for 0.7.3rc1
448 * Branch and update Release.py for 0.7.3rc1
445
449
446 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
447
451
448 * IPython/Shell.py (IPShellWX): update for current WX naming
452 * IPython/Shell.py (IPShellWX): update for current WX naming
449 conventions, to avoid a deprecation warning with current WX
453 conventions, to avoid a deprecation warning with current WX
450 versions. Thanks to a report by Danny Shevitz.
454 versions. Thanks to a report by Danny Shevitz.
451
455
452 2006-12-12 Ville Vainio <vivainio@gmail.com>
456 2006-12-12 Ville Vainio <vivainio@gmail.com>
453
457
454 * ipmaker.py: apply david cournapeau's patch to make
458 * ipmaker.py: apply david cournapeau's patch to make
455 import_some work properly even when ipythonrc does
459 import_some work properly even when ipythonrc does
456 import_some on empty list (it was an old bug!).
460 import_some on empty list (it was an old bug!).
457
461
458 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
462 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
459 Add deprecation note to ipythonrc and a url to wiki
463 Add deprecation note to ipythonrc and a url to wiki
460 in ipy_user_conf.py
464 in ipy_user_conf.py
461
465
462
466
463 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
467 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
464 as if it was typed on IPython command prompt, i.e.
468 as if it was typed on IPython command prompt, i.e.
465 as IPython script.
469 as IPython script.
466
470
467 * example-magic.py, magic_grepl.py: remove outdated examples
471 * example-magic.py, magic_grepl.py: remove outdated examples
468
472
469 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
473 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
470
474
471 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
475 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
472 is called before any exception has occurred.
476 is called before any exception has occurred.
473
477
474 2006-12-08 Ville Vainio <vivainio@gmail.com>
478 2006-12-08 Ville Vainio <vivainio@gmail.com>
475
479
476 * Extensions/ipy_stock_completers.py: fix cd completer
480 * Extensions/ipy_stock_completers.py: fix cd completer
477 to translate /'s to \'s again.
481 to translate /'s to \'s again.
478
482
479 * completer.py: prevent traceback on file completions w/
483 * completer.py: prevent traceback on file completions w/
480 backslash.
484 backslash.
481
485
482 * Release.py: Update release number to 0.7.3b3 for release
486 * Release.py: Update release number to 0.7.3b3 for release
483
487
484 2006-12-07 Ville Vainio <vivainio@gmail.com>
488 2006-12-07 Ville Vainio <vivainio@gmail.com>
485
489
486 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
490 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
487 while executing external code. Provides more shell-like behaviour
491 while executing external code. Provides more shell-like behaviour
488 and overall better response to ctrl + C / ctrl + break.
492 and overall better response to ctrl + C / ctrl + break.
489
493
490 * tools/make_tarball.py: new script to create tarball straight from svn
494 * tools/make_tarball.py: new script to create tarball straight from svn
491 (setup.py sdist doesn't work on win32).
495 (setup.py sdist doesn't work on win32).
492
496
493 * Extensions/ipy_stock_completers.py: fix cd completer to give up
497 * Extensions/ipy_stock_completers.py: fix cd completer to give up
494 on dirnames with spaces and use the default completer instead.
498 on dirnames with spaces and use the default completer instead.
495
499
496 * Revision.py: Change version to 0.7.3b2 for release.
500 * Revision.py: Change version to 0.7.3b2 for release.
497
501
498 2006-12-05 Ville Vainio <vivainio@gmail.com>
502 2006-12-05 Ville Vainio <vivainio@gmail.com>
499
503
500 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
504 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
501 pydb patch 4 (rm debug printing, py 2.5 checking)
505 pydb patch 4 (rm debug printing, py 2.5 checking)
502
506
503 2006-11-30 Walter Doerwald <walter@livinglogic.de>
507 2006-11-30 Walter Doerwald <walter@livinglogic.de>
504 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
508 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
505 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
509 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
506 "refreshfind" (mapped to "R") does the same but tries to go back to the same
510 "refreshfind" (mapped to "R") does the same but tries to go back to the same
507 object the cursor was on before the refresh. The command "markrange" is
511 object the cursor was on before the refresh. The command "markrange" is
508 mapped to "%" now.
512 mapped to "%" now.
509 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
513 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
510
514
511 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
515 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
512
516
513 * IPython/Magic.py (magic_debug): new %debug magic to activate the
517 * IPython/Magic.py (magic_debug): new %debug magic to activate the
514 interactive debugger on the last traceback, without having to call
518 interactive debugger on the last traceback, without having to call
515 %pdb and rerun your code. Made minor changes in various modules,
519 %pdb and rerun your code. Made minor changes in various modules,
516 should automatically recognize pydb if available.
520 should automatically recognize pydb if available.
517
521
518 2006-11-28 Ville Vainio <vivainio@gmail.com>
522 2006-11-28 Ville Vainio <vivainio@gmail.com>
519
523
520 * completer.py: If the text start with !, show file completions
524 * completer.py: If the text start with !, show file completions
521 properly. This helps when trying to complete command name
525 properly. This helps when trying to complete command name
522 for shell escapes.
526 for shell escapes.
523
527
524 2006-11-27 Ville Vainio <vivainio@gmail.com>
528 2006-11-27 Ville Vainio <vivainio@gmail.com>
525
529
526 * ipy_stock_completers.py: bzr completer submitted by Stefan van
530 * ipy_stock_completers.py: bzr completer submitted by Stefan van
527 der Walt. Clean up svn and hg completers by using a common
531 der Walt. Clean up svn and hg completers by using a common
528 vcs_completer.
532 vcs_completer.
529
533
530 2006-11-26 Ville Vainio <vivainio@gmail.com>
534 2006-11-26 Ville Vainio <vivainio@gmail.com>
531
535
532 * Remove ipconfig and %config; you should use _ip.options structure
536 * Remove ipconfig and %config; you should use _ip.options structure
533 directly instead!
537 directly instead!
534
538
535 * genutils.py: add wrap_deprecated function for deprecating callables
539 * genutils.py: add wrap_deprecated function for deprecating callables
536
540
537 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
541 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
538 _ip.system instead. ipalias is redundant.
542 _ip.system instead. ipalias is redundant.
539
543
540 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
544 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
541 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
545 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
542 explicit.
546 explicit.
543
547
544 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
548 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
545 completer. Try it by entering 'hg ' and pressing tab.
549 completer. Try it by entering 'hg ' and pressing tab.
546
550
547 * macro.py: Give Macro a useful __repr__ method
551 * macro.py: Give Macro a useful __repr__ method
548
552
549 * Magic.py: %whos abbreviates the typename of Macro for brevity.
553 * Magic.py: %whos abbreviates the typename of Macro for brevity.
550
554
551 2006-11-24 Walter Doerwald <walter@livinglogic.de>
555 2006-11-24 Walter Doerwald <walter@livinglogic.de>
552 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
556 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
553 we don't get a duplicate ipipe module, where registration of the xrepr
557 we don't get a duplicate ipipe module, where registration of the xrepr
554 implementation for Text is useless.
558 implementation for Text is useless.
555
559
556 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
560 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
557
561
558 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
562 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
559
563
560 2006-11-24 Ville Vainio <vivainio@gmail.com>
564 2006-11-24 Ville Vainio <vivainio@gmail.com>
561
565
562 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
566 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
563 try to use "cProfile" instead of the slower pure python
567 try to use "cProfile" instead of the slower pure python
564 "profile"
568 "profile"
565
569
566 2006-11-23 Ville Vainio <vivainio@gmail.com>
570 2006-11-23 Ville Vainio <vivainio@gmail.com>
567
571
568 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
572 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
569 Qt+IPython+Designer link in documentation.
573 Qt+IPython+Designer link in documentation.
570
574
571 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
575 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
572 correct Pdb object to %pydb.
576 correct Pdb object to %pydb.
573
577
574
578
575 2006-11-22 Walter Doerwald <walter@livinglogic.de>
579 2006-11-22 Walter Doerwald <walter@livinglogic.de>
576 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
580 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
577 generic xrepr(), otherwise the list implementation would kick in.
581 generic xrepr(), otherwise the list implementation would kick in.
578
582
579 2006-11-21 Ville Vainio <vivainio@gmail.com>
583 2006-11-21 Ville Vainio <vivainio@gmail.com>
580
584
581 * upgrade_dir.py: Now actually overwrites a nonmodified user file
585 * upgrade_dir.py: Now actually overwrites a nonmodified user file
582 with one from UserConfig.
586 with one from UserConfig.
583
587
584 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
588 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
585 it was missing which broke the sh profile.
589 it was missing which broke the sh profile.
586
590
587 * completer.py: file completer now uses explicit '/' instead
591 * completer.py: file completer now uses explicit '/' instead
588 of os.path.join, expansion of 'foo' was broken on win32
592 of os.path.join, expansion of 'foo' was broken on win32
589 if there was one directory with name 'foobar'.
593 if there was one directory with name 'foobar'.
590
594
591 * A bunch of patches from Kirill Smelkov:
595 * A bunch of patches from Kirill Smelkov:
592
596
593 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
597 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
594
598
595 * [patch 7/9] Implement %page -r (page in raw mode) -
599 * [patch 7/9] Implement %page -r (page in raw mode) -
596
600
597 * [patch 5/9] ScientificPython webpage has moved
601 * [patch 5/9] ScientificPython webpage has moved
598
602
599 * [patch 4/9] The manual mentions %ds, should be %dhist
603 * [patch 4/9] The manual mentions %ds, should be %dhist
600
604
601 * [patch 3/9] Kill old bits from %prun doc.
605 * [patch 3/9] Kill old bits from %prun doc.
602
606
603 * [patch 1/9] Fix typos here and there.
607 * [patch 1/9] Fix typos here and there.
604
608
605 2006-11-08 Ville Vainio <vivainio@gmail.com>
609 2006-11-08 Ville Vainio <vivainio@gmail.com>
606
610
607 * completer.py (attr_matches): catch all exceptions raised
611 * completer.py (attr_matches): catch all exceptions raised
608 by eval of expr with dots.
612 by eval of expr with dots.
609
613
610 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
614 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
611
615
612 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
616 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
613 input if it starts with whitespace. This allows you to paste
617 input if it starts with whitespace. This allows you to paste
614 indented input from any editor without manually having to type in
618 indented input from any editor without manually having to type in
615 the 'if 1:', which is convenient when working interactively.
619 the 'if 1:', which is convenient when working interactively.
616 Slightly modifed version of a patch by Bo Peng
620 Slightly modifed version of a patch by Bo Peng
617 <bpeng-AT-rice.edu>.
621 <bpeng-AT-rice.edu>.
618
622
619 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
623 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
620
624
621 * IPython/irunner.py (main): modified irunner so it automatically
625 * IPython/irunner.py (main): modified irunner so it automatically
622 recognizes the right runner to use based on the extension (.py for
626 recognizes the right runner to use based on the extension (.py for
623 python, .ipy for ipython and .sage for sage).
627 python, .ipy for ipython and .sage for sage).
624
628
625 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
629 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
626 visible in ipapi as ip.config(), to programatically control the
630 visible in ipapi as ip.config(), to programatically control the
627 internal rc object. There's an accompanying %config magic for
631 internal rc object. There's an accompanying %config magic for
628 interactive use, which has been enhanced to match the
632 interactive use, which has been enhanced to match the
629 funtionality in ipconfig.
633 funtionality in ipconfig.
630
634
631 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
635 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
632 so it's not just a toggle, it now takes an argument. Add support
636 so it's not just a toggle, it now takes an argument. Add support
633 for a customizable header when making system calls, as the new
637 for a customizable header when making system calls, as the new
634 system_header variable in the ipythonrc file.
638 system_header variable in the ipythonrc file.
635
639
636 2006-11-03 Walter Doerwald <walter@livinglogic.de>
640 2006-11-03 Walter Doerwald <walter@livinglogic.de>
637
641
638 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
642 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
639 generic functions (using Philip J. Eby's simplegeneric package).
643 generic functions (using Philip J. Eby's simplegeneric package).
640 This makes it possible to customize the display of third-party classes
644 This makes it possible to customize the display of third-party classes
641 without having to monkeypatch them. xiter() no longer supports a mode
645 without having to monkeypatch them. xiter() no longer supports a mode
642 argument and the XMode class has been removed. The same functionality can
646 argument and the XMode class has been removed. The same functionality can
643 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
647 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
644 One consequence of the switch to generic functions is that xrepr() and
648 One consequence of the switch to generic functions is that xrepr() and
645 xattrs() implementation must define the default value for the mode
649 xattrs() implementation must define the default value for the mode
646 argument themselves and xattrs() implementations must return real
650 argument themselves and xattrs() implementations must return real
647 descriptors.
651 descriptors.
648
652
649 * IPython/external: This new subpackage will contain all third-party
653 * IPython/external: This new subpackage will contain all third-party
650 packages that are bundled with IPython. (The first one is simplegeneric).
654 packages that are bundled with IPython. (The first one is simplegeneric).
651
655
652 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
656 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
653 directory which as been dropped in r1703.
657 directory which as been dropped in r1703.
654
658
655 * IPython/Extensions/ipipe.py (iless): Fixed.
659 * IPython/Extensions/ipipe.py (iless): Fixed.
656
660
657 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
661 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
658
662
659 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
663 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
660
664
661 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
665 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
662 handling in variable expansion so that shells and magics recognize
666 handling in variable expansion so that shells and magics recognize
663 function local scopes correctly. Bug reported by Brian.
667 function local scopes correctly. Bug reported by Brian.
664
668
665 * scripts/ipython: remove the very first entry in sys.path which
669 * scripts/ipython: remove the very first entry in sys.path which
666 Python auto-inserts for scripts, so that sys.path under IPython is
670 Python auto-inserts for scripts, so that sys.path under IPython is
667 as similar as possible to that under plain Python.
671 as similar as possible to that under plain Python.
668
672
669 * IPython/completer.py (IPCompleter.file_matches): Fix
673 * IPython/completer.py (IPCompleter.file_matches): Fix
670 tab-completion so that quotes are not closed unless the completion
674 tab-completion so that quotes are not closed unless the completion
671 is unambiguous. After a request by Stefan. Minor cleanups in
675 is unambiguous. After a request by Stefan. Minor cleanups in
672 ipy_stock_completers.
676 ipy_stock_completers.
673
677
674 2006-11-02 Ville Vainio <vivainio@gmail.com>
678 2006-11-02 Ville Vainio <vivainio@gmail.com>
675
679
676 * ipy_stock_completers.py: Add %run and %cd completers.
680 * ipy_stock_completers.py: Add %run and %cd completers.
677
681
678 * completer.py: Try running custom completer for both
682 * completer.py: Try running custom completer for both
679 "foo" and "%foo" if the command is just "foo". Ignore case
683 "foo" and "%foo" if the command is just "foo". Ignore case
680 when filtering possible completions.
684 when filtering possible completions.
681
685
682 * UserConfig/ipy_user_conf.py: install stock completers as default
686 * UserConfig/ipy_user_conf.py: install stock completers as default
683
687
684 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
688 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
685 simplified readline history save / restore through a wrapper
689 simplified readline history save / restore through a wrapper
686 function
690 function
687
691
688
692
689 2006-10-31 Ville Vainio <vivainio@gmail.com>
693 2006-10-31 Ville Vainio <vivainio@gmail.com>
690
694
691 * strdispatch.py, completer.py, ipy_stock_completers.py:
695 * strdispatch.py, completer.py, ipy_stock_completers.py:
692 Allow str_key ("command") in completer hooks. Implement
696 Allow str_key ("command") in completer hooks. Implement
693 trivial completer for 'import' (stdlib modules only). Rename
697 trivial completer for 'import' (stdlib modules only). Rename
694 ipy_linux_package_managers.py to ipy_stock_completers.py.
698 ipy_linux_package_managers.py to ipy_stock_completers.py.
695 SVN completer.
699 SVN completer.
696
700
697 * Extensions/ledit.py: %magic line editor for easily and
701 * Extensions/ledit.py: %magic line editor for easily and
698 incrementally manipulating lists of strings. The magic command
702 incrementally manipulating lists of strings. The magic command
699 name is %led.
703 name is %led.
700
704
701 2006-10-30 Ville Vainio <vivainio@gmail.com>
705 2006-10-30 Ville Vainio <vivainio@gmail.com>
702
706
703 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
707 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
704 Bernsteins's patches for pydb integration.
708 Bernsteins's patches for pydb integration.
705 http://bashdb.sourceforge.net/pydb/
709 http://bashdb.sourceforge.net/pydb/
706
710
707 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
711 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
708 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
712 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
709 custom completer hook to allow the users to implement their own
713 custom completer hook to allow the users to implement their own
710 completers. See ipy_linux_package_managers.py for example. The
714 completers. See ipy_linux_package_managers.py for example. The
711 hook name is 'complete_command'.
715 hook name is 'complete_command'.
712
716
713 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
717 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
714
718
715 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
719 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
716 Numeric leftovers.
720 Numeric leftovers.
717
721
718 * ipython.el (py-execute-region): apply Stefan's patch to fix
722 * ipython.el (py-execute-region): apply Stefan's patch to fix
719 garbled results if the python shell hasn't been previously started.
723 garbled results if the python shell hasn't been previously started.
720
724
721 * IPython/genutils.py (arg_split): moved to genutils, since it's a
725 * IPython/genutils.py (arg_split): moved to genutils, since it's a
722 pretty generic function and useful for other things.
726 pretty generic function and useful for other things.
723
727
724 * IPython/OInspect.py (getsource): Add customizable source
728 * IPython/OInspect.py (getsource): Add customizable source
725 extractor. After a request/patch form W. Stein (SAGE).
729 extractor. After a request/patch form W. Stein (SAGE).
726
730
727 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
731 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
728 window size to a more reasonable value from what pexpect does,
732 window size to a more reasonable value from what pexpect does,
729 since their choice causes wrapping bugs with long input lines.
733 since their choice causes wrapping bugs with long input lines.
730
734
731 2006-10-28 Ville Vainio <vivainio@gmail.com>
735 2006-10-28 Ville Vainio <vivainio@gmail.com>
732
736
733 * Magic.py (%run): Save and restore the readline history from
737 * Magic.py (%run): Save and restore the readline history from
734 file around %run commands to prevent side effects from
738 file around %run commands to prevent side effects from
735 %runned programs that might use readline (e.g. pydb).
739 %runned programs that might use readline (e.g. pydb).
736
740
737 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
741 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
738 invoking the pydb enhanced debugger.
742 invoking the pydb enhanced debugger.
739
743
740 2006-10-23 Walter Doerwald <walter@livinglogic.de>
744 2006-10-23 Walter Doerwald <walter@livinglogic.de>
741
745
742 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
746 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
743 call the base class method and propagate the return value to
747 call the base class method and propagate the return value to
744 ifile. This is now done by path itself.
748 ifile. This is now done by path itself.
745
749
746 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
750 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
747
751
748 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
752 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
749 api: set_crash_handler(), to expose the ability to change the
753 api: set_crash_handler(), to expose the ability to change the
750 internal crash handler.
754 internal crash handler.
751
755
752 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
756 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
753 the various parameters of the crash handler so that apps using
757 the various parameters of the crash handler so that apps using
754 IPython as their engine can customize crash handling. Ipmlemented
758 IPython as their engine can customize crash handling. Ipmlemented
755 at the request of SAGE.
759 at the request of SAGE.
756
760
757 2006-10-14 Ville Vainio <vivainio@gmail.com>
761 2006-10-14 Ville Vainio <vivainio@gmail.com>
758
762
759 * Magic.py, ipython.el: applied first "safe" part of Rocky
763 * Magic.py, ipython.el: applied first "safe" part of Rocky
760 Bernstein's patch set for pydb integration.
764 Bernstein's patch set for pydb integration.
761
765
762 * Magic.py (%unalias, %alias): %store'd aliases can now be
766 * Magic.py (%unalias, %alias): %store'd aliases can now be
763 removed with '%unalias'. %alias w/o args now shows most
767 removed with '%unalias'. %alias w/o args now shows most
764 interesting (stored / manually defined) aliases last
768 interesting (stored / manually defined) aliases last
765 where they catch the eye w/o scrolling.
769 where they catch the eye w/o scrolling.
766
770
767 * Magic.py (%rehashx), ext_rehashdir.py: files with
771 * Magic.py (%rehashx), ext_rehashdir.py: files with
768 'py' extension are always considered executable, even
772 'py' extension are always considered executable, even
769 when not in PATHEXT environment variable.
773 when not in PATHEXT environment variable.
770
774
771 2006-10-12 Ville Vainio <vivainio@gmail.com>
775 2006-10-12 Ville Vainio <vivainio@gmail.com>
772
776
773 * jobctrl.py: Add new "jobctrl" extension for spawning background
777 * jobctrl.py: Add new "jobctrl" extension for spawning background
774 processes with "&find /". 'import jobctrl' to try it out. Requires
778 processes with "&find /". 'import jobctrl' to try it out. Requires
775 'subprocess' module, standard in python 2.4+.
779 'subprocess' module, standard in python 2.4+.
776
780
777 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
781 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
778 so if foo -> bar and bar -> baz, then foo -> baz.
782 so if foo -> bar and bar -> baz, then foo -> baz.
779
783
780 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
784 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
781
785
782 * IPython/Magic.py (Magic.parse_options): add a new posix option
786 * IPython/Magic.py (Magic.parse_options): add a new posix option
783 to allow parsing of input args in magics that doesn't strip quotes
787 to allow parsing of input args in magics that doesn't strip quotes
784 (if posix=False). This also closes %timeit bug reported by
788 (if posix=False). This also closes %timeit bug reported by
785 Stefan.
789 Stefan.
786
790
787 2006-10-03 Ville Vainio <vivainio@gmail.com>
791 2006-10-03 Ville Vainio <vivainio@gmail.com>
788
792
789 * iplib.py (raw_input, interact): Return ValueError catching for
793 * iplib.py (raw_input, interact): Return ValueError catching for
790 raw_input. Fixes infinite loop for sys.stdin.close() or
794 raw_input. Fixes infinite loop for sys.stdin.close() or
791 sys.stdout.close().
795 sys.stdout.close().
792
796
793 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
797 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
794
798
795 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
799 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
796 to help in handling doctests. irunner is now pretty useful for
800 to help in handling doctests. irunner is now pretty useful for
797 running standalone scripts and simulate a full interactive session
801 running standalone scripts and simulate a full interactive session
798 in a format that can be then pasted as a doctest.
802 in a format that can be then pasted as a doctest.
799
803
800 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
804 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
801 on top of the default (useless) ones. This also fixes the nasty
805 on top of the default (useless) ones. This also fixes the nasty
802 way in which 2.5's Quitter() exits (reverted [1785]).
806 way in which 2.5's Quitter() exits (reverted [1785]).
803
807
804 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
808 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
805 2.5.
809 2.5.
806
810
807 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
811 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
808 color scheme is updated as well when color scheme is changed
812 color scheme is updated as well when color scheme is changed
809 interactively.
813 interactively.
810
814
811 2006-09-27 Ville Vainio <vivainio@gmail.com>
815 2006-09-27 Ville Vainio <vivainio@gmail.com>
812
816
813 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
817 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
814 infinite loop and just exit. It's a hack, but will do for a while.
818 infinite loop and just exit. It's a hack, but will do for a while.
815
819
816 2006-08-25 Walter Doerwald <walter@livinglogic.de>
820 2006-08-25 Walter Doerwald <walter@livinglogic.de>
817
821
818 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
822 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
819 the constructor, this makes it possible to get a list of only directories
823 the constructor, this makes it possible to get a list of only directories
820 or only files.
824 or only files.
821
825
822 2006-08-12 Ville Vainio <vivainio@gmail.com>
826 2006-08-12 Ville Vainio <vivainio@gmail.com>
823
827
824 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
828 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
825 they broke unittest
829 they broke unittest
826
830
827 2006-08-11 Ville Vainio <vivainio@gmail.com>
831 2006-08-11 Ville Vainio <vivainio@gmail.com>
828
832
829 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
833 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
830 by resolving issue properly, i.e. by inheriting FakeModule
834 by resolving issue properly, i.e. by inheriting FakeModule
831 from types.ModuleType. Pickling ipython interactive data
835 from types.ModuleType. Pickling ipython interactive data
832 should still work as usual (testing appreciated).
836 should still work as usual (testing appreciated).
833
837
834 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
838 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
835
839
836 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
840 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
837 running under python 2.3 with code from 2.4 to fix a bug with
841 running under python 2.3 with code from 2.4 to fix a bug with
838 help(). Reported by the Debian maintainers, Norbert Tretkowski
842 help(). Reported by the Debian maintainers, Norbert Tretkowski
839 <norbert-AT-tretkowski.de> and Alexandre Fayolle
843 <norbert-AT-tretkowski.de> and Alexandre Fayolle
840 <afayolle-AT-debian.org>.
844 <afayolle-AT-debian.org>.
841
845
842 2006-08-04 Walter Doerwald <walter@livinglogic.de>
846 2006-08-04 Walter Doerwald <walter@livinglogic.de>
843
847
844 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
848 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
845 (which was displaying "quit" twice).
849 (which was displaying "quit" twice).
846
850
847 2006-07-28 Walter Doerwald <walter@livinglogic.de>
851 2006-07-28 Walter Doerwald <walter@livinglogic.de>
848
852
849 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
853 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
850 the mode argument).
854 the mode argument).
851
855
852 2006-07-27 Walter Doerwald <walter@livinglogic.de>
856 2006-07-27 Walter Doerwald <walter@livinglogic.de>
853
857
854 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
858 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
855 not running under IPython.
859 not running under IPython.
856
860
857 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
861 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
858 and make it iterable (iterating over the attribute itself). Add two new
862 and make it iterable (iterating over the attribute itself). Add two new
859 magic strings for __xattrs__(): If the string starts with "-", the attribute
863 magic strings for __xattrs__(): If the string starts with "-", the attribute
860 will not be displayed in ibrowse's detail view (but it can still be
864 will not be displayed in ibrowse's detail view (but it can still be
861 iterated over). This makes it possible to add attributes that are large
865 iterated over). This makes it possible to add attributes that are large
862 lists or generator methods to the detail view. Replace magic attribute names
866 lists or generator methods to the detail view. Replace magic attribute names
863 and _attrname() and _getattr() with "descriptors": For each type of magic
867 and _attrname() and _getattr() with "descriptors": For each type of magic
864 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
868 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
865 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
869 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
866 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
870 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
867 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
871 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
868 are still supported.
872 are still supported.
869
873
870 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
874 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
871 fails in ibrowse.fetch(), the exception object is added as the last item
875 fails in ibrowse.fetch(), the exception object is added as the last item
872 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
876 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
873 a generator throws an exception midway through execution.
877 a generator throws an exception midway through execution.
874
878
875 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
879 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
876 encoding into methods.
880 encoding into methods.
877
881
878 2006-07-26 Ville Vainio <vivainio@gmail.com>
882 2006-07-26 Ville Vainio <vivainio@gmail.com>
879
883
880 * iplib.py: history now stores multiline input as single
884 * iplib.py: history now stores multiline input as single
881 history entries. Patch by Jorgen Cederlof.
885 history entries. Patch by Jorgen Cederlof.
882
886
883 2006-07-18 Walter Doerwald <walter@livinglogic.de>
887 2006-07-18 Walter Doerwald <walter@livinglogic.de>
884
888
885 * IPython/Extensions/ibrowse.py: Make cursor visible over
889 * IPython/Extensions/ibrowse.py: Make cursor visible over
886 non existing attributes.
890 non existing attributes.
887
891
888 2006-07-14 Walter Doerwald <walter@livinglogic.de>
892 2006-07-14 Walter Doerwald <walter@livinglogic.de>
889
893
890 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
894 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
891 error output of the running command doesn't mess up the screen.
895 error output of the running command doesn't mess up the screen.
892
896
893 2006-07-13 Walter Doerwald <walter@livinglogic.de>
897 2006-07-13 Walter Doerwald <walter@livinglogic.de>
894
898
895 * IPython/Extensions/ipipe.py (isort): Make isort usable without
899 * IPython/Extensions/ipipe.py (isort): Make isort usable without
896 argument. This sorts the items themselves.
900 argument. This sorts the items themselves.
897
901
898 2006-07-12 Walter Doerwald <walter@livinglogic.de>
902 2006-07-12 Walter Doerwald <walter@livinglogic.de>
899
903
900 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
904 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
901 Compile expression strings into code objects. This should speed
905 Compile expression strings into code objects. This should speed
902 up ifilter and friends somewhat.
906 up ifilter and friends somewhat.
903
907
904 2006-07-08 Ville Vainio <vivainio@gmail.com>
908 2006-07-08 Ville Vainio <vivainio@gmail.com>
905
909
906 * Magic.py: %cpaste now strips > from the beginning of lines
910 * Magic.py: %cpaste now strips > from the beginning of lines
907 to ease pasting quoted code from emails. Contributed by
911 to ease pasting quoted code from emails. Contributed by
908 Stefan van der Walt.
912 Stefan van der Walt.
909
913
910 2006-06-29 Ville Vainio <vivainio@gmail.com>
914 2006-06-29 Ville Vainio <vivainio@gmail.com>
911
915
912 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
916 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
913 mode, patch contributed by Darren Dale. NEEDS TESTING!
917 mode, patch contributed by Darren Dale. NEEDS TESTING!
914
918
915 2006-06-28 Walter Doerwald <walter@livinglogic.de>
919 2006-06-28 Walter Doerwald <walter@livinglogic.de>
916
920
917 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
921 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
918 a blue background. Fix fetching new display rows when the browser
922 a blue background. Fix fetching new display rows when the browser
919 scrolls more than a screenful (e.g. by using the goto command).
923 scrolls more than a screenful (e.g. by using the goto command).
920
924
921 2006-06-27 Ville Vainio <vivainio@gmail.com>
925 2006-06-27 Ville Vainio <vivainio@gmail.com>
922
926
923 * Magic.py (_inspect, _ofind) Apply David Huard's
927 * Magic.py (_inspect, _ofind) Apply David Huard's
924 patch for displaying the correct docstring for 'property'
928 patch for displaying the correct docstring for 'property'
925 attributes.
929 attributes.
926
930
927 2006-06-23 Walter Doerwald <walter@livinglogic.de>
931 2006-06-23 Walter Doerwald <walter@livinglogic.de>
928
932
929 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
933 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
930 commands into the methods implementing them.
934 commands into the methods implementing them.
931
935
932 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
936 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
933
937
934 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
938 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
935 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
939 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
936 autoindent support was authored by Jin Liu.
940 autoindent support was authored by Jin Liu.
937
941
938 2006-06-22 Walter Doerwald <walter@livinglogic.de>
942 2006-06-22 Walter Doerwald <walter@livinglogic.de>
939
943
940 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
944 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
941 for keymaps with a custom class that simplifies handling.
945 for keymaps with a custom class that simplifies handling.
942
946
943 2006-06-19 Walter Doerwald <walter@livinglogic.de>
947 2006-06-19 Walter Doerwald <walter@livinglogic.de>
944
948
945 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
949 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
946 resizing. This requires Python 2.5 to work.
950 resizing. This requires Python 2.5 to work.
947
951
948 2006-06-16 Walter Doerwald <walter@livinglogic.de>
952 2006-06-16 Walter Doerwald <walter@livinglogic.de>
949
953
950 * IPython/Extensions/ibrowse.py: Add two new commands to
954 * IPython/Extensions/ibrowse.py: Add two new commands to
951 ibrowse: "hideattr" (mapped to "h") hides the attribute under
955 ibrowse: "hideattr" (mapped to "h") hides the attribute under
952 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
956 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
953 attributes again. Remapped the help command to "?". Display
957 attributes again. Remapped the help command to "?". Display
954 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
958 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
955 as keys for the "home" and "end" commands. Add three new commands
959 as keys for the "home" and "end" commands. Add three new commands
956 to the input mode for "find" and friends: "delend" (CTRL-K)
960 to the input mode for "find" and friends: "delend" (CTRL-K)
957 deletes to the end of line. "incsearchup" searches upwards in the
961 deletes to the end of line. "incsearchup" searches upwards in the
958 command history for an input that starts with the text before the cursor.
962 command history for an input that starts with the text before the cursor.
959 "incsearchdown" does the same downwards. Removed a bogus mapping of
963 "incsearchdown" does the same downwards. Removed a bogus mapping of
960 the x key to "delete".
964 the x key to "delete".
961
965
962 2006-06-15 Ville Vainio <vivainio@gmail.com>
966 2006-06-15 Ville Vainio <vivainio@gmail.com>
963
967
964 * iplib.py, hooks.py: Added new generate_prompt hook that can be
968 * iplib.py, hooks.py: Added new generate_prompt hook that can be
965 used to create prompts dynamically, instead of the "old" way of
969 used to create prompts dynamically, instead of the "old" way of
966 assigning "magic" strings to prompt_in1 and prompt_in2. The old
970 assigning "magic" strings to prompt_in1 and prompt_in2. The old
967 way still works (it's invoked by the default hook), of course.
971 way still works (it's invoked by the default hook), of course.
968
972
969 * Prompts.py: added generate_output_prompt hook for altering output
973 * Prompts.py: added generate_output_prompt hook for altering output
970 prompt
974 prompt
971
975
972 * Release.py: Changed version string to 0.7.3.svn.
976 * Release.py: Changed version string to 0.7.3.svn.
973
977
974 2006-06-15 Walter Doerwald <walter@livinglogic.de>
978 2006-06-15 Walter Doerwald <walter@livinglogic.de>
975
979
976 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
980 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
977 the call to fetch() always tries to fetch enough data for at least one
981 the call to fetch() always tries to fetch enough data for at least one
978 full screen. This makes it possible to simply call moveto(0,0,True) in
982 full screen. This makes it possible to simply call moveto(0,0,True) in
979 the constructor. Fix typos and removed the obsolete goto attribute.
983 the constructor. Fix typos and removed the obsolete goto attribute.
980
984
981 2006-06-12 Ville Vainio <vivainio@gmail.com>
985 2006-06-12 Ville Vainio <vivainio@gmail.com>
982
986
983 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
987 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
984 allowing $variable interpolation within multiline statements,
988 allowing $variable interpolation within multiline statements,
985 though so far only with "sh" profile for a testing period.
989 though so far only with "sh" profile for a testing period.
986 The patch also enables splitting long commands with \ but it
990 The patch also enables splitting long commands with \ but it
987 doesn't work properly yet.
991 doesn't work properly yet.
988
992
989 2006-06-12 Walter Doerwald <walter@livinglogic.de>
993 2006-06-12 Walter Doerwald <walter@livinglogic.de>
990
994
991 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
995 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
992 input history and the position of the cursor in the input history for
996 input history and the position of the cursor in the input history for
993 the find, findbackwards and goto command.
997 the find, findbackwards and goto command.
994
998
995 2006-06-10 Walter Doerwald <walter@livinglogic.de>
999 2006-06-10 Walter Doerwald <walter@livinglogic.de>
996
1000
997 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1001 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
998 implements the basic functionality of browser commands that require
1002 implements the basic functionality of browser commands that require
999 input. Reimplement the goto, find and findbackwards commands as
1003 input. Reimplement the goto, find and findbackwards commands as
1000 subclasses of _CommandInput. Add an input history and keymaps to those
1004 subclasses of _CommandInput. Add an input history and keymaps to those
1001 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1005 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1002 execute commands.
1006 execute commands.
1003
1007
1004 2006-06-07 Ville Vainio <vivainio@gmail.com>
1008 2006-06-07 Ville Vainio <vivainio@gmail.com>
1005
1009
1006 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1010 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1007 running the batch files instead of leaving the session open.
1011 running the batch files instead of leaving the session open.
1008
1012
1009 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1013 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1010
1014
1011 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1015 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1012 the original fix was incomplete. Patch submitted by W. Maier.
1016 the original fix was incomplete. Patch submitted by W. Maier.
1013
1017
1014 2006-06-07 Ville Vainio <vivainio@gmail.com>
1018 2006-06-07 Ville Vainio <vivainio@gmail.com>
1015
1019
1016 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1020 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1017 Confirmation prompts can be supressed by 'quiet' option.
1021 Confirmation prompts can be supressed by 'quiet' option.
1018 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1022 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1019
1023
1020 2006-06-06 *** Released version 0.7.2
1024 2006-06-06 *** Released version 0.7.2
1021
1025
1022 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1026 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1023
1027
1024 * IPython/Release.py (version): Made 0.7.2 final for release.
1028 * IPython/Release.py (version): Made 0.7.2 final for release.
1025 Repo tagged and release cut.
1029 Repo tagged and release cut.
1026
1030
1027 2006-06-05 Ville Vainio <vivainio@gmail.com>
1031 2006-06-05 Ville Vainio <vivainio@gmail.com>
1028
1032
1029 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1033 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1030 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1034 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1031
1035
1032 * upgrade_dir.py: try import 'path' module a bit harder
1036 * upgrade_dir.py: try import 'path' module a bit harder
1033 (for %upgrade)
1037 (for %upgrade)
1034
1038
1035 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1039 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1036
1040
1037 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1041 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1038 instead of looping 20 times.
1042 instead of looping 20 times.
1039
1043
1040 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1044 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1041 correctly at initialization time. Bug reported by Krishna Mohan
1045 correctly at initialization time. Bug reported by Krishna Mohan
1042 Gundu <gkmohan-AT-gmail.com> on the user list.
1046 Gundu <gkmohan-AT-gmail.com> on the user list.
1043
1047
1044 * IPython/Release.py (version): Mark 0.7.2 version to start
1048 * IPython/Release.py (version): Mark 0.7.2 version to start
1045 testing for release on 06/06.
1049 testing for release on 06/06.
1046
1050
1047 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1051 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1048
1052
1049 * scripts/irunner: thin script interface so users don't have to
1053 * scripts/irunner: thin script interface so users don't have to
1050 find the module and call it as an executable, since modules rarely
1054 find the module and call it as an executable, since modules rarely
1051 live in people's PATH.
1055 live in people's PATH.
1052
1056
1053 * IPython/irunner.py (InteractiveRunner.__init__): added
1057 * IPython/irunner.py (InteractiveRunner.__init__): added
1054 delaybeforesend attribute to control delays with newer versions of
1058 delaybeforesend attribute to control delays with newer versions of
1055 pexpect. Thanks to detailed help from pexpect's author, Noah
1059 pexpect. Thanks to detailed help from pexpect's author, Noah
1056 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1060 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1057 correctly (it works in NoColor mode).
1061 correctly (it works in NoColor mode).
1058
1062
1059 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1063 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1060 SAGE list, from improper log() calls.
1064 SAGE list, from improper log() calls.
1061
1065
1062 2006-05-31 Ville Vainio <vivainio@gmail.com>
1066 2006-05-31 Ville Vainio <vivainio@gmail.com>
1063
1067
1064 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1068 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1065 with args in parens to work correctly with dirs that have spaces.
1069 with args in parens to work correctly with dirs that have spaces.
1066
1070
1067 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1071 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1068
1072
1069 * IPython/Logger.py (Logger.logstart): add option to log raw input
1073 * IPython/Logger.py (Logger.logstart): add option to log raw input
1070 instead of the processed one. A -r flag was added to the
1074 instead of the processed one. A -r flag was added to the
1071 %logstart magic used for controlling logging.
1075 %logstart magic used for controlling logging.
1072
1076
1073 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1077 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1074
1078
1075 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1079 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1076 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1080 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1077 recognize the option. After a bug report by Will Maier. This
1081 recognize the option. After a bug report by Will Maier. This
1078 closes #64 (will do it after confirmation from W. Maier).
1082 closes #64 (will do it after confirmation from W. Maier).
1079
1083
1080 * IPython/irunner.py: New module to run scripts as if manually
1084 * IPython/irunner.py: New module to run scripts as if manually
1081 typed into an interactive environment, based on pexpect. After a
1085 typed into an interactive environment, based on pexpect. After a
1082 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1086 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1083 ipython-user list. Simple unittests in the tests/ directory.
1087 ipython-user list. Simple unittests in the tests/ directory.
1084
1088
1085 * tools/release: add Will Maier, OpenBSD port maintainer, to
1089 * tools/release: add Will Maier, OpenBSD port maintainer, to
1086 recepients list. We are now officially part of the OpenBSD ports:
1090 recepients list. We are now officially part of the OpenBSD ports:
1087 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1091 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1088 work.
1092 work.
1089
1093
1090 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1094 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1091
1095
1092 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1096 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1093 so that it doesn't break tkinter apps.
1097 so that it doesn't break tkinter apps.
1094
1098
1095 * IPython/iplib.py (_prefilter): fix bug where aliases would
1099 * IPython/iplib.py (_prefilter): fix bug where aliases would
1096 shadow variables when autocall was fully off. Reported by SAGE
1100 shadow variables when autocall was fully off. Reported by SAGE
1097 author William Stein.
1101 author William Stein.
1098
1102
1099 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1103 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1100 at what detail level strings are computed when foo? is requested.
1104 at what detail level strings are computed when foo? is requested.
1101 This allows users to ask for example that the string form of an
1105 This allows users to ask for example that the string form of an
1102 object is only computed when foo?? is called, or even never, by
1106 object is only computed when foo?? is called, or even never, by
1103 setting the object_info_string_level >= 2 in the configuration
1107 setting the object_info_string_level >= 2 in the configuration
1104 file. This new option has been added and documented. After a
1108 file. This new option has been added and documented. After a
1105 request by SAGE to be able to control the printing of very large
1109 request by SAGE to be able to control the printing of very large
1106 objects more easily.
1110 objects more easily.
1107
1111
1108 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1112 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1109
1113
1110 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1114 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1111 from sys.argv, to be 100% consistent with how Python itself works
1115 from sys.argv, to be 100% consistent with how Python itself works
1112 (as seen for example with python -i file.py). After a bug report
1116 (as seen for example with python -i file.py). After a bug report
1113 by Jeffrey Collins.
1117 by Jeffrey Collins.
1114
1118
1115 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1119 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1116 nasty bug which was preventing custom namespaces with -pylab,
1120 nasty bug which was preventing custom namespaces with -pylab,
1117 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1121 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1118 compatibility (long gone from mpl).
1122 compatibility (long gone from mpl).
1119
1123
1120 * IPython/ipapi.py (make_session): name change: create->make. We
1124 * IPython/ipapi.py (make_session): name change: create->make. We
1121 use make in other places (ipmaker,...), it's shorter and easier to
1125 use make in other places (ipmaker,...), it's shorter and easier to
1122 type and say, etc. I'm trying to clean things before 0.7.2 so
1126 type and say, etc. I'm trying to clean things before 0.7.2 so
1123 that I can keep things stable wrt to ipapi in the chainsaw branch.
1127 that I can keep things stable wrt to ipapi in the chainsaw branch.
1124
1128
1125 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1129 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1126 python-mode recognizes our debugger mode. Add support for
1130 python-mode recognizes our debugger mode. Add support for
1127 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1131 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1128 <m.liu.jin-AT-gmail.com> originally written by
1132 <m.liu.jin-AT-gmail.com> originally written by
1129 doxgen-AT-newsmth.net (with minor modifications for xemacs
1133 doxgen-AT-newsmth.net (with minor modifications for xemacs
1130 compatibility)
1134 compatibility)
1131
1135
1132 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1136 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1133 tracebacks when walking the stack so that the stack tracking system
1137 tracebacks when walking the stack so that the stack tracking system
1134 in emacs' python-mode can identify the frames correctly.
1138 in emacs' python-mode can identify the frames correctly.
1135
1139
1136 * IPython/ipmaker.py (make_IPython): make the internal (and
1140 * IPython/ipmaker.py (make_IPython): make the internal (and
1137 default config) autoedit_syntax value false by default. Too many
1141 default config) autoedit_syntax value false by default. Too many
1138 users have complained to me (both on and off-list) about problems
1142 users have complained to me (both on and off-list) about problems
1139 with this option being on by default, so I'm making it default to
1143 with this option being on by default, so I'm making it default to
1140 off. It can still be enabled by anyone via the usual mechanisms.
1144 off. It can still be enabled by anyone via the usual mechanisms.
1141
1145
1142 * IPython/completer.py (Completer.attr_matches): add support for
1146 * IPython/completer.py (Completer.attr_matches): add support for
1143 PyCrust-style _getAttributeNames magic method. Patch contributed
1147 PyCrust-style _getAttributeNames magic method. Patch contributed
1144 by <mscott-AT-goldenspud.com>. Closes #50.
1148 by <mscott-AT-goldenspud.com>. Closes #50.
1145
1149
1146 * IPython/iplib.py (InteractiveShell.__init__): remove the
1150 * IPython/iplib.py (InteractiveShell.__init__): remove the
1147 deletion of exit/quit from __builtin__, which can break
1151 deletion of exit/quit from __builtin__, which can break
1148 third-party tools like the Zope debugging console. The
1152 third-party tools like the Zope debugging console. The
1149 %exit/%quit magics remain. In general, it's probably a good idea
1153 %exit/%quit magics remain. In general, it's probably a good idea
1150 not to delete anything from __builtin__, since we never know what
1154 not to delete anything from __builtin__, since we never know what
1151 that will break. In any case, python now (for 2.5) will support
1155 that will break. In any case, python now (for 2.5) will support
1152 'real' exit/quit, so this issue is moot. Closes #55.
1156 'real' exit/quit, so this issue is moot. Closes #55.
1153
1157
1154 * IPython/genutils.py (with_obj): rename the 'with' function to
1158 * IPython/genutils.py (with_obj): rename the 'with' function to
1155 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1159 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1156 becomes a language keyword. Closes #53.
1160 becomes a language keyword. Closes #53.
1157
1161
1158 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1162 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1159 __file__ attribute to this so it fools more things into thinking
1163 __file__ attribute to this so it fools more things into thinking
1160 it is a real module. Closes #59.
1164 it is a real module. Closes #59.
1161
1165
1162 * IPython/Magic.py (magic_edit): add -n option to open the editor
1166 * IPython/Magic.py (magic_edit): add -n option to open the editor
1163 at a specific line number. After a patch by Stefan van der Walt.
1167 at a specific line number. After a patch by Stefan van der Walt.
1164
1168
1165 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1169 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1166
1170
1167 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1171 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1168 reason the file could not be opened. After automatic crash
1172 reason the file could not be opened. After automatic crash
1169 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1173 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1170 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1174 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1171 (_should_recompile): Don't fire editor if using %bg, since there
1175 (_should_recompile): Don't fire editor if using %bg, since there
1172 is no file in the first place. From the same report as above.
1176 is no file in the first place. From the same report as above.
1173 (raw_input): protect against faulty third-party prefilters. After
1177 (raw_input): protect against faulty third-party prefilters. After
1174 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1178 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1175 while running under SAGE.
1179 while running under SAGE.
1176
1180
1177 2006-05-23 Ville Vainio <vivainio@gmail.com>
1181 2006-05-23 Ville Vainio <vivainio@gmail.com>
1178
1182
1179 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1183 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1180 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1184 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1181 now returns None (again), unless dummy is specifically allowed by
1185 now returns None (again), unless dummy is specifically allowed by
1182 ipapi.get(allow_dummy=True).
1186 ipapi.get(allow_dummy=True).
1183
1187
1184 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1188 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1185
1189
1186 * IPython: remove all 2.2-compatibility objects and hacks from
1190 * IPython: remove all 2.2-compatibility objects and hacks from
1187 everywhere, since we only support 2.3 at this point. Docs
1191 everywhere, since we only support 2.3 at this point. Docs
1188 updated.
1192 updated.
1189
1193
1190 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1194 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1191 Anything requiring extra validation can be turned into a Python
1195 Anything requiring extra validation can be turned into a Python
1192 property in the future. I used a property for the db one b/c
1196 property in the future. I used a property for the db one b/c
1193 there was a nasty circularity problem with the initialization
1197 there was a nasty circularity problem with the initialization
1194 order, which right now I don't have time to clean up.
1198 order, which right now I don't have time to clean up.
1195
1199
1196 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1200 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1197 another locking bug reported by Jorgen. I'm not 100% sure though,
1201 another locking bug reported by Jorgen. I'm not 100% sure though,
1198 so more testing is needed...
1202 so more testing is needed...
1199
1203
1200 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1201
1205
1202 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1206 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1203 local variables from any routine in user code (typically executed
1207 local variables from any routine in user code (typically executed
1204 with %run) directly into the interactive namespace. Very useful
1208 with %run) directly into the interactive namespace. Very useful
1205 when doing complex debugging.
1209 when doing complex debugging.
1206 (IPythonNotRunning): Changed the default None object to a dummy
1210 (IPythonNotRunning): Changed the default None object to a dummy
1207 whose attributes can be queried as well as called without
1211 whose attributes can be queried as well as called without
1208 exploding, to ease writing code which works transparently both in
1212 exploding, to ease writing code which works transparently both in
1209 and out of ipython and uses some of this API.
1213 and out of ipython and uses some of this API.
1210
1214
1211 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1212
1216
1213 * IPython/hooks.py (result_display): Fix the fact that our display
1217 * IPython/hooks.py (result_display): Fix the fact that our display
1214 hook was using str() instead of repr(), as the default python
1218 hook was using str() instead of repr(), as the default python
1215 console does. This had gone unnoticed b/c it only happened if
1219 console does. This had gone unnoticed b/c it only happened if
1216 %Pprint was off, but the inconsistency was there.
1220 %Pprint was off, but the inconsistency was there.
1217
1221
1218 2006-05-15 Ville Vainio <vivainio@gmail.com>
1222 2006-05-15 Ville Vainio <vivainio@gmail.com>
1219
1223
1220 * Oinspect.py: Only show docstring for nonexisting/binary files
1224 * Oinspect.py: Only show docstring for nonexisting/binary files
1221 when doing object??, closing ticket #62
1225 when doing object??, closing ticket #62
1222
1226
1223 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1227 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1224
1228
1225 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1229 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1226 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1230 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1227 was being released in a routine which hadn't checked if it had
1231 was being released in a routine which hadn't checked if it had
1228 been the one to acquire it.
1232 been the one to acquire it.
1229
1233
1230 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1234 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1231
1235
1232 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1236 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1233
1237
1234 2006-04-11 Ville Vainio <vivainio@gmail.com>
1238 2006-04-11 Ville Vainio <vivainio@gmail.com>
1235
1239
1236 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1240 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1237 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1241 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1238 prefilters, allowing stuff like magics and aliases in the file.
1242 prefilters, allowing stuff like magics and aliases in the file.
1239
1243
1240 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1244 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1241 added. Supported now are "%clear in" and "%clear out" (clear input and
1245 added. Supported now are "%clear in" and "%clear out" (clear input and
1242 output history, respectively). Also fixed CachedOutput.flush to
1246 output history, respectively). Also fixed CachedOutput.flush to
1243 properly flush the output cache.
1247 properly flush the output cache.
1244
1248
1245 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1249 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1246 half-success (and fail explicitly).
1250 half-success (and fail explicitly).
1247
1251
1248 2006-03-28 Ville Vainio <vivainio@gmail.com>
1252 2006-03-28 Ville Vainio <vivainio@gmail.com>
1249
1253
1250 * iplib.py: Fix quoting of aliases so that only argless ones
1254 * iplib.py: Fix quoting of aliases so that only argless ones
1251 are quoted
1255 are quoted
1252
1256
1253 2006-03-28 Ville Vainio <vivainio@gmail.com>
1257 2006-03-28 Ville Vainio <vivainio@gmail.com>
1254
1258
1255 * iplib.py: Quote aliases with spaces in the name.
1259 * iplib.py: Quote aliases with spaces in the name.
1256 "c:\program files\blah\bin" is now legal alias target.
1260 "c:\program files\blah\bin" is now legal alias target.
1257
1261
1258 * ext_rehashdir.py: Space no longer allowed as arg
1262 * ext_rehashdir.py: Space no longer allowed as arg
1259 separator, since space is legal in path names.
1263 separator, since space is legal in path names.
1260
1264
1261 2006-03-16 Ville Vainio <vivainio@gmail.com>
1265 2006-03-16 Ville Vainio <vivainio@gmail.com>
1262
1266
1263 * upgrade_dir.py: Take path.py from Extensions, correcting
1267 * upgrade_dir.py: Take path.py from Extensions, correcting
1264 %upgrade magic
1268 %upgrade magic
1265
1269
1266 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1270 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1267
1271
1268 * hooks.py: Only enclose editor binary in quotes if legal and
1272 * hooks.py: Only enclose editor binary in quotes if legal and
1269 necessary (space in the name, and is an existing file). Fixes a bug
1273 necessary (space in the name, and is an existing file). Fixes a bug
1270 reported by Zachary Pincus.
1274 reported by Zachary Pincus.
1271
1275
1272 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1276 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1273
1277
1274 * Manual: thanks to a tip on proper color handling for Emacs, by
1278 * Manual: thanks to a tip on proper color handling for Emacs, by
1275 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1279 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1276
1280
1277 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1281 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1278 by applying the provided patch. Thanks to Liu Jin
1282 by applying the provided patch. Thanks to Liu Jin
1279 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1283 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1280 XEmacs/Linux, I'm trusting the submitter that it actually helps
1284 XEmacs/Linux, I'm trusting the submitter that it actually helps
1281 under win32/GNU Emacs. Will revisit if any problems are reported.
1285 under win32/GNU Emacs. Will revisit if any problems are reported.
1282
1286
1283 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1284
1288
1285 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1289 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1286 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1290 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1287
1291
1288 2006-03-12 Ville Vainio <vivainio@gmail.com>
1292 2006-03-12 Ville Vainio <vivainio@gmail.com>
1289
1293
1290 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1294 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1291 Torsten Marek.
1295 Torsten Marek.
1292
1296
1293 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1294
1298
1295 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1299 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1296 line ranges works again.
1300 line ranges works again.
1297
1301
1298 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1302 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1299
1303
1300 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1304 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1301 and friends, after a discussion with Zach Pincus on ipython-user.
1305 and friends, after a discussion with Zach Pincus on ipython-user.
1302 I'm not 100% sure, but after thinking about it quite a bit, it may
1306 I'm not 100% sure, but after thinking about it quite a bit, it may
1303 be OK. Testing with the multithreaded shells didn't reveal any
1307 be OK. Testing with the multithreaded shells didn't reveal any
1304 problems, but let's keep an eye out.
1308 problems, but let's keep an eye out.
1305
1309
1306 In the process, I fixed a few things which were calling
1310 In the process, I fixed a few things which were calling
1307 self.InteractiveTB() directly (like safe_execfile), which is a
1311 self.InteractiveTB() directly (like safe_execfile), which is a
1308 mistake: ALL exception reporting should be done by calling
1312 mistake: ALL exception reporting should be done by calling
1309 self.showtraceback(), which handles state and tab-completion and
1313 self.showtraceback(), which handles state and tab-completion and
1310 more.
1314 more.
1311
1315
1312 2006-03-01 Ville Vainio <vivainio@gmail.com>
1316 2006-03-01 Ville Vainio <vivainio@gmail.com>
1313
1317
1314 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1318 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1315 To use, do "from ipipe import *".
1319 To use, do "from ipipe import *".
1316
1320
1317 2006-02-24 Ville Vainio <vivainio@gmail.com>
1321 2006-02-24 Ville Vainio <vivainio@gmail.com>
1318
1322
1319 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1323 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1320 "cleanly" and safely than the older upgrade mechanism.
1324 "cleanly" and safely than the older upgrade mechanism.
1321
1325
1322 2006-02-21 Ville Vainio <vivainio@gmail.com>
1326 2006-02-21 Ville Vainio <vivainio@gmail.com>
1323
1327
1324 * Magic.py: %save works again.
1328 * Magic.py: %save works again.
1325
1329
1326 2006-02-15 Ville Vainio <vivainio@gmail.com>
1330 2006-02-15 Ville Vainio <vivainio@gmail.com>
1327
1331
1328 * Magic.py: %Pprint works again
1332 * Magic.py: %Pprint works again
1329
1333
1330 * Extensions/ipy_sane_defaults.py: Provide everything provided
1334 * Extensions/ipy_sane_defaults.py: Provide everything provided
1331 in default ipythonrc, to make it possible to have a completely empty
1335 in default ipythonrc, to make it possible to have a completely empty
1332 ipythonrc (and thus completely rc-file free configuration)
1336 ipythonrc (and thus completely rc-file free configuration)
1333
1337
1334 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1338 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1335
1339
1336 * IPython/hooks.py (editor): quote the call to the editor command,
1340 * IPython/hooks.py (editor): quote the call to the editor command,
1337 to allow commands with spaces in them. Problem noted by watching
1341 to allow commands with spaces in them. Problem noted by watching
1338 Ian Oswald's video about textpad under win32 at
1342 Ian Oswald's video about textpad under win32 at
1339 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1343 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1340
1344
1341 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1345 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1342 describing magics (we haven't used @ for a loong time).
1346 describing magics (we haven't used @ for a loong time).
1343
1347
1344 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1348 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1345 contributed by marienz to close
1349 contributed by marienz to close
1346 http://www.scipy.net/roundup/ipython/issue53.
1350 http://www.scipy.net/roundup/ipython/issue53.
1347
1351
1348 2006-02-10 Ville Vainio <vivainio@gmail.com>
1352 2006-02-10 Ville Vainio <vivainio@gmail.com>
1349
1353
1350 * genutils.py: getoutput now works in win32 too
1354 * genutils.py: getoutput now works in win32 too
1351
1355
1352 * completer.py: alias and magic completion only invoked
1356 * completer.py: alias and magic completion only invoked
1353 at the first "item" in the line, to avoid "cd %store"
1357 at the first "item" in the line, to avoid "cd %store"
1354 nonsense.
1358 nonsense.
1355
1359
1356 2006-02-09 Ville Vainio <vivainio@gmail.com>
1360 2006-02-09 Ville Vainio <vivainio@gmail.com>
1357
1361
1358 * test/*: Added a unit testing framework (finally).
1362 * test/*: Added a unit testing framework (finally).
1359 '%run runtests.py' to run test_*.
1363 '%run runtests.py' to run test_*.
1360
1364
1361 * ipapi.py: Exposed runlines and set_custom_exc
1365 * ipapi.py: Exposed runlines and set_custom_exc
1362
1366
1363 2006-02-07 Ville Vainio <vivainio@gmail.com>
1367 2006-02-07 Ville Vainio <vivainio@gmail.com>
1364
1368
1365 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1369 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1366 instead use "f(1 2)" as before.
1370 instead use "f(1 2)" as before.
1367
1371
1368 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1372 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1369
1373
1370 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1374 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1371 facilities, for demos processed by the IPython input filter
1375 facilities, for demos processed by the IPython input filter
1372 (IPythonDemo), and for running a script one-line-at-a-time as a
1376 (IPythonDemo), and for running a script one-line-at-a-time as a
1373 demo, both for pure Python (LineDemo) and for IPython-processed
1377 demo, both for pure Python (LineDemo) and for IPython-processed
1374 input (IPythonLineDemo). After a request by Dave Kohel, from the
1378 input (IPythonLineDemo). After a request by Dave Kohel, from the
1375 SAGE team.
1379 SAGE team.
1376 (Demo.edit): added an edit() method to the demo objects, to edit
1380 (Demo.edit): added an edit() method to the demo objects, to edit
1377 the in-memory copy of the last executed block.
1381 the in-memory copy of the last executed block.
1378
1382
1379 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1383 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1380 processing to %edit, %macro and %save. These commands can now be
1384 processing to %edit, %macro and %save. These commands can now be
1381 invoked on the unprocessed input as it was typed by the user
1385 invoked on the unprocessed input as it was typed by the user
1382 (without any prefilters applied). After requests by the SAGE team
1386 (without any prefilters applied). After requests by the SAGE team
1383 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1387 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1384
1388
1385 2006-02-01 Ville Vainio <vivainio@gmail.com>
1389 2006-02-01 Ville Vainio <vivainio@gmail.com>
1386
1390
1387 * setup.py, eggsetup.py: easy_install ipython==dev works
1391 * setup.py, eggsetup.py: easy_install ipython==dev works
1388 correctly now (on Linux)
1392 correctly now (on Linux)
1389
1393
1390 * ipy_user_conf,ipmaker: user config changes, removed spurious
1394 * ipy_user_conf,ipmaker: user config changes, removed spurious
1391 warnings
1395 warnings
1392
1396
1393 * iplib: if rc.banner is string, use it as is.
1397 * iplib: if rc.banner is string, use it as is.
1394
1398
1395 * Magic: %pycat accepts a string argument and pages it's contents.
1399 * Magic: %pycat accepts a string argument and pages it's contents.
1396
1400
1397
1401
1398 2006-01-30 Ville Vainio <vivainio@gmail.com>
1402 2006-01-30 Ville Vainio <vivainio@gmail.com>
1399
1403
1400 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1404 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1401 Now %store and bookmarks work through PickleShare, meaning that
1405 Now %store and bookmarks work through PickleShare, meaning that
1402 concurrent access is possible and all ipython sessions see the
1406 concurrent access is possible and all ipython sessions see the
1403 same database situation all the time, instead of snapshot of
1407 same database situation all the time, instead of snapshot of
1404 the situation when the session was started. Hence, %bookmark
1408 the situation when the session was started. Hence, %bookmark
1405 results are immediately accessible from othes sessions. The database
1409 results are immediately accessible from othes sessions. The database
1406 is also available for use by user extensions. See:
1410 is also available for use by user extensions. See:
1407 http://www.python.org/pypi/pickleshare
1411 http://www.python.org/pypi/pickleshare
1408
1412
1409 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1413 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1410
1414
1411 * aliases can now be %store'd
1415 * aliases can now be %store'd
1412
1416
1413 * path.py moved to Extensions so that pickleshare does not need
1417 * path.py moved to Extensions so that pickleshare does not need
1414 IPython-specific import. Extensions added to pythonpath right
1418 IPython-specific import. Extensions added to pythonpath right
1415 at __init__.
1419 at __init__.
1416
1420
1417 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1421 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1418 called with _ip.system and the pre-transformed command string.
1422 called with _ip.system and the pre-transformed command string.
1419
1423
1420 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1424 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1421
1425
1422 * IPython/iplib.py (interact): Fix that we were not catching
1426 * IPython/iplib.py (interact): Fix that we were not catching
1423 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1427 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1424 logic here had to change, but it's fixed now.
1428 logic here had to change, but it's fixed now.
1425
1429
1426 2006-01-29 Ville Vainio <vivainio@gmail.com>
1430 2006-01-29 Ville Vainio <vivainio@gmail.com>
1427
1431
1428 * iplib.py: Try to import pyreadline on Windows.
1432 * iplib.py: Try to import pyreadline on Windows.
1429
1433
1430 2006-01-27 Ville Vainio <vivainio@gmail.com>
1434 2006-01-27 Ville Vainio <vivainio@gmail.com>
1431
1435
1432 * iplib.py: Expose ipapi as _ip in builtin namespace.
1436 * iplib.py: Expose ipapi as _ip in builtin namespace.
1433 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1437 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1434 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1438 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1435 syntax now produce _ip.* variant of the commands.
1439 syntax now produce _ip.* variant of the commands.
1436
1440
1437 * "_ip.options().autoedit_syntax = 2" automatically throws
1441 * "_ip.options().autoedit_syntax = 2" automatically throws
1438 user to editor for syntax error correction without prompting.
1442 user to editor for syntax error correction without prompting.
1439
1443
1440 2006-01-27 Ville Vainio <vivainio@gmail.com>
1444 2006-01-27 Ville Vainio <vivainio@gmail.com>
1441
1445
1442 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1446 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1443 'ipython' at argv[0]) executed through command line.
1447 'ipython' at argv[0]) executed through command line.
1444 NOTE: this DEPRECATES calling ipython with multiple scripts
1448 NOTE: this DEPRECATES calling ipython with multiple scripts
1445 ("ipython a.py b.py c.py")
1449 ("ipython a.py b.py c.py")
1446
1450
1447 * iplib.py, hooks.py: Added configurable input prefilter,
1451 * iplib.py, hooks.py: Added configurable input prefilter,
1448 named 'input_prefilter'. See ext_rescapture.py for example
1452 named 'input_prefilter'. See ext_rescapture.py for example
1449 usage.
1453 usage.
1450
1454
1451 * ext_rescapture.py, Magic.py: Better system command output capture
1455 * ext_rescapture.py, Magic.py: Better system command output capture
1452 through 'var = !ls' (deprecates user-visible %sc). Same notation
1456 through 'var = !ls' (deprecates user-visible %sc). Same notation
1453 applies for magics, 'var = %alias' assigns alias list to var.
1457 applies for magics, 'var = %alias' assigns alias list to var.
1454
1458
1455 * ipapi.py: added meta() for accessing extension-usable data store.
1459 * ipapi.py: added meta() for accessing extension-usable data store.
1456
1460
1457 * iplib.py: added InteractiveShell.getapi(). New magics should be
1461 * iplib.py: added InteractiveShell.getapi(). New magics should be
1458 written doing self.getapi() instead of using the shell directly.
1462 written doing self.getapi() instead of using the shell directly.
1459
1463
1460 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1464 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1461 %store foo >> ~/myfoo.txt to store variables to files (in clean
1465 %store foo >> ~/myfoo.txt to store variables to files (in clean
1462 textual form, not a restorable pickle).
1466 textual form, not a restorable pickle).
1463
1467
1464 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1468 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1465
1469
1466 * usage.py, Magic.py: added %quickref
1470 * usage.py, Magic.py: added %quickref
1467
1471
1468 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1472 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1469
1473
1470 * GetoptErrors when invoking magics etc. with wrong args
1474 * GetoptErrors when invoking magics etc. with wrong args
1471 are now more helpful:
1475 are now more helpful:
1472 GetoptError: option -l not recognized (allowed: "qb" )
1476 GetoptError: option -l not recognized (allowed: "qb" )
1473
1477
1474 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1478 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1475
1479
1476 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1480 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1477 computationally intensive blocks don't appear to stall the demo.
1481 computationally intensive blocks don't appear to stall the demo.
1478
1482
1479 2006-01-24 Ville Vainio <vivainio@gmail.com>
1483 2006-01-24 Ville Vainio <vivainio@gmail.com>
1480
1484
1481 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1485 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1482 value to manipulate resulting history entry.
1486 value to manipulate resulting history entry.
1483
1487
1484 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1488 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1485 to instance methods of IPApi class, to make extending an embedded
1489 to instance methods of IPApi class, to make extending an embedded
1486 IPython feasible. See ext_rehashdir.py for example usage.
1490 IPython feasible. See ext_rehashdir.py for example usage.
1487
1491
1488 * Merged 1071-1076 from branches/0.7.1
1492 * Merged 1071-1076 from branches/0.7.1
1489
1493
1490
1494
1491 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1495 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1492
1496
1493 * tools/release (daystamp): Fix build tools to use the new
1497 * tools/release (daystamp): Fix build tools to use the new
1494 eggsetup.py script to build lightweight eggs.
1498 eggsetup.py script to build lightweight eggs.
1495
1499
1496 * Applied changesets 1062 and 1064 before 0.7.1 release.
1500 * Applied changesets 1062 and 1064 before 0.7.1 release.
1497
1501
1498 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1502 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1499 see the raw input history (without conversions like %ls ->
1503 see the raw input history (without conversions like %ls ->
1500 ipmagic("ls")). After a request from W. Stein, SAGE
1504 ipmagic("ls")). After a request from W. Stein, SAGE
1501 (http://modular.ucsd.edu/sage) developer. This information is
1505 (http://modular.ucsd.edu/sage) developer. This information is
1502 stored in the input_hist_raw attribute of the IPython instance, so
1506 stored in the input_hist_raw attribute of the IPython instance, so
1503 developers can access it if needed (it's an InputList instance).
1507 developers can access it if needed (it's an InputList instance).
1504
1508
1505 * Versionstring = 0.7.2.svn
1509 * Versionstring = 0.7.2.svn
1506
1510
1507 * eggsetup.py: A separate script for constructing eggs, creates
1511 * eggsetup.py: A separate script for constructing eggs, creates
1508 proper launch scripts even on Windows (an .exe file in
1512 proper launch scripts even on Windows (an .exe file in
1509 \python24\scripts).
1513 \python24\scripts).
1510
1514
1511 * ipapi.py: launch_new_instance, launch entry point needed for the
1515 * ipapi.py: launch_new_instance, launch entry point needed for the
1512 egg.
1516 egg.
1513
1517
1514 2006-01-23 Ville Vainio <vivainio@gmail.com>
1518 2006-01-23 Ville Vainio <vivainio@gmail.com>
1515
1519
1516 * Added %cpaste magic for pasting python code
1520 * Added %cpaste magic for pasting python code
1517
1521
1518 2006-01-22 Ville Vainio <vivainio@gmail.com>
1522 2006-01-22 Ville Vainio <vivainio@gmail.com>
1519
1523
1520 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1524 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1521
1525
1522 * Versionstring = 0.7.2.svn
1526 * Versionstring = 0.7.2.svn
1523
1527
1524 * eggsetup.py: A separate script for constructing eggs, creates
1528 * eggsetup.py: A separate script for constructing eggs, creates
1525 proper launch scripts even on Windows (an .exe file in
1529 proper launch scripts even on Windows (an .exe file in
1526 \python24\scripts).
1530 \python24\scripts).
1527
1531
1528 * ipapi.py: launch_new_instance, launch entry point needed for the
1532 * ipapi.py: launch_new_instance, launch entry point needed for the
1529 egg.
1533 egg.
1530
1534
1531 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1535 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1532
1536
1533 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1537 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1534 %pfile foo would print the file for foo even if it was a binary.
1538 %pfile foo would print the file for foo even if it was a binary.
1535 Now, extensions '.so' and '.dll' are skipped.
1539 Now, extensions '.so' and '.dll' are skipped.
1536
1540
1537 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1541 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1538 bug, where macros would fail in all threaded modes. I'm not 100%
1542 bug, where macros would fail in all threaded modes. I'm not 100%
1539 sure, so I'm going to put out an rc instead of making a release
1543 sure, so I'm going to put out an rc instead of making a release
1540 today, and wait for feedback for at least a few days.
1544 today, and wait for feedback for at least a few days.
1541
1545
1542 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1546 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1543 it...) the handling of pasting external code with autoindent on.
1547 it...) the handling of pasting external code with autoindent on.
1544 To get out of a multiline input, the rule will appear for most
1548 To get out of a multiline input, the rule will appear for most
1545 users unchanged: two blank lines or change the indent level
1549 users unchanged: two blank lines or change the indent level
1546 proposed by IPython. But there is a twist now: you can
1550 proposed by IPython. But there is a twist now: you can
1547 add/subtract only *one or two spaces*. If you add/subtract three
1551 add/subtract only *one or two spaces*. If you add/subtract three
1548 or more (unless you completely delete the line), IPython will
1552 or more (unless you completely delete the line), IPython will
1549 accept that line, and you'll need to enter a second one of pure
1553 accept that line, and you'll need to enter a second one of pure
1550 whitespace. I know it sounds complicated, but I can't find a
1554 whitespace. I know it sounds complicated, but I can't find a
1551 different solution that covers all the cases, with the right
1555 different solution that covers all the cases, with the right
1552 heuristics. Hopefully in actual use, nobody will really notice
1556 heuristics. Hopefully in actual use, nobody will really notice
1553 all these strange rules and things will 'just work'.
1557 all these strange rules and things will 'just work'.
1554
1558
1555 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1559 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1556
1560
1557 * IPython/iplib.py (interact): catch exceptions which can be
1561 * IPython/iplib.py (interact): catch exceptions which can be
1558 triggered asynchronously by signal handlers. Thanks to an
1562 triggered asynchronously by signal handlers. Thanks to an
1559 automatic crash report, submitted by Colin Kingsley
1563 automatic crash report, submitted by Colin Kingsley
1560 <tercel-AT-gentoo.org>.
1564 <tercel-AT-gentoo.org>.
1561
1565
1562 2006-01-20 Ville Vainio <vivainio@gmail.com>
1566 2006-01-20 Ville Vainio <vivainio@gmail.com>
1563
1567
1564 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1568 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1565 (%rehashdir, very useful, try it out) of how to extend ipython
1569 (%rehashdir, very useful, try it out) of how to extend ipython
1566 with new magics. Also added Extensions dir to pythonpath to make
1570 with new magics. Also added Extensions dir to pythonpath to make
1567 importing extensions easy.
1571 importing extensions easy.
1568
1572
1569 * %store now complains when trying to store interactively declared
1573 * %store now complains when trying to store interactively declared
1570 classes / instances of those classes.
1574 classes / instances of those classes.
1571
1575
1572 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1576 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1573 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1577 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1574 if they exist, and ipy_user_conf.py with some defaults is created for
1578 if they exist, and ipy_user_conf.py with some defaults is created for
1575 the user.
1579 the user.
1576
1580
1577 * Startup rehashing done by the config file, not InterpreterExec.
1581 * Startup rehashing done by the config file, not InterpreterExec.
1578 This means system commands are available even without selecting the
1582 This means system commands are available even without selecting the
1579 pysh profile. It's the sensible default after all.
1583 pysh profile. It's the sensible default after all.
1580
1584
1581 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1585 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1582
1586
1583 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1587 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1584 multiline code with autoindent on working. But I am really not
1588 multiline code with autoindent on working. But I am really not
1585 sure, so this needs more testing. Will commit a debug-enabled
1589 sure, so this needs more testing. Will commit a debug-enabled
1586 version for now, while I test it some more, so that Ville and
1590 version for now, while I test it some more, so that Ville and
1587 others may also catch any problems. Also made
1591 others may also catch any problems. Also made
1588 self.indent_current_str() a method, to ensure that there's no
1592 self.indent_current_str() a method, to ensure that there's no
1589 chance of the indent space count and the corresponding string
1593 chance of the indent space count and the corresponding string
1590 falling out of sync. All code needing the string should just call
1594 falling out of sync. All code needing the string should just call
1591 the method.
1595 the method.
1592
1596
1593 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1597 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1594
1598
1595 * IPython/Magic.py (magic_edit): fix check for when users don't
1599 * IPython/Magic.py (magic_edit): fix check for when users don't
1596 save their output files, the try/except was in the wrong section.
1600 save their output files, the try/except was in the wrong section.
1597
1601
1598 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1602 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1599
1603
1600 * IPython/Magic.py (magic_run): fix __file__ global missing from
1604 * IPython/Magic.py (magic_run): fix __file__ global missing from
1601 script's namespace when executed via %run. After a report by
1605 script's namespace when executed via %run. After a report by
1602 Vivian.
1606 Vivian.
1603
1607
1604 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1608 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1605 when using python 2.4. The parent constructor changed in 2.4, and
1609 when using python 2.4. The parent constructor changed in 2.4, and
1606 we need to track it directly (we can't call it, as it messes up
1610 we need to track it directly (we can't call it, as it messes up
1607 readline and tab-completion inside our pdb would stop working).
1611 readline and tab-completion inside our pdb would stop working).
1608 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1612 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1609
1613
1610 2006-01-16 Ville Vainio <vivainio@gmail.com>
1614 2006-01-16 Ville Vainio <vivainio@gmail.com>
1611
1615
1612 * Ipython/magic.py: Reverted back to old %edit functionality
1616 * Ipython/magic.py: Reverted back to old %edit functionality
1613 that returns file contents on exit.
1617 that returns file contents on exit.
1614
1618
1615 * IPython/path.py: Added Jason Orendorff's "path" module to
1619 * IPython/path.py: Added Jason Orendorff's "path" module to
1616 IPython tree, http://www.jorendorff.com/articles/python/path/.
1620 IPython tree, http://www.jorendorff.com/articles/python/path/.
1617 You can get path objects conveniently through %sc, and !!, e.g.:
1621 You can get path objects conveniently through %sc, and !!, e.g.:
1618 sc files=ls
1622 sc files=ls
1619 for p in files.paths: # or files.p
1623 for p in files.paths: # or files.p
1620 print p,p.mtime
1624 print p,p.mtime
1621
1625
1622 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1626 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1623 now work again without considering the exclusion regexp -
1627 now work again without considering the exclusion regexp -
1624 hence, things like ',foo my/path' turn to 'foo("my/path")'
1628 hence, things like ',foo my/path' turn to 'foo("my/path")'
1625 instead of syntax error.
1629 instead of syntax error.
1626
1630
1627
1631
1628 2006-01-14 Ville Vainio <vivainio@gmail.com>
1632 2006-01-14 Ville Vainio <vivainio@gmail.com>
1629
1633
1630 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1634 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1631 ipapi decorators for python 2.4 users, options() provides access to rc
1635 ipapi decorators for python 2.4 users, options() provides access to rc
1632 data.
1636 data.
1633
1637
1634 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1638 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1635 as path separators (even on Linux ;-). Space character after
1639 as path separators (even on Linux ;-). Space character after
1636 backslash (as yielded by tab completer) is still space;
1640 backslash (as yielded by tab completer) is still space;
1637 "%cd long\ name" works as expected.
1641 "%cd long\ name" works as expected.
1638
1642
1639 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1643 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1640 as "chain of command", with priority. API stays the same,
1644 as "chain of command", with priority. API stays the same,
1641 TryNext exception raised by a hook function signals that
1645 TryNext exception raised by a hook function signals that
1642 current hook failed and next hook should try handling it, as
1646 current hook failed and next hook should try handling it, as
1643 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1647 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1644 requested configurable display hook, which is now implemented.
1648 requested configurable display hook, which is now implemented.
1645
1649
1646 2006-01-13 Ville Vainio <vivainio@gmail.com>
1650 2006-01-13 Ville Vainio <vivainio@gmail.com>
1647
1651
1648 * IPython/platutils*.py: platform specific utility functions,
1652 * IPython/platutils*.py: platform specific utility functions,
1649 so far only set_term_title is implemented (change terminal
1653 so far only set_term_title is implemented (change terminal
1650 label in windowing systems). %cd now changes the title to
1654 label in windowing systems). %cd now changes the title to
1651 current dir.
1655 current dir.
1652
1656
1653 * IPython/Release.py: Added myself to "authors" list,
1657 * IPython/Release.py: Added myself to "authors" list,
1654 had to create new files.
1658 had to create new files.
1655
1659
1656 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1660 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1657 shell escape; not a known bug but had potential to be one in the
1661 shell escape; not a known bug but had potential to be one in the
1658 future.
1662 future.
1659
1663
1660 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1664 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1661 extension API for IPython! See the module for usage example. Fix
1665 extension API for IPython! See the module for usage example. Fix
1662 OInspect for docstring-less magic functions.
1666 OInspect for docstring-less magic functions.
1663
1667
1664
1668
1665 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1669 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1666
1670
1667 * IPython/iplib.py (raw_input): temporarily deactivate all
1671 * IPython/iplib.py (raw_input): temporarily deactivate all
1668 attempts at allowing pasting of code with autoindent on. It
1672 attempts at allowing pasting of code with autoindent on. It
1669 introduced bugs (reported by Prabhu) and I can't seem to find a
1673 introduced bugs (reported by Prabhu) and I can't seem to find a
1670 robust combination which works in all cases. Will have to revisit
1674 robust combination which works in all cases. Will have to revisit
1671 later.
1675 later.
1672
1676
1673 * IPython/genutils.py: remove isspace() function. We've dropped
1677 * IPython/genutils.py: remove isspace() function. We've dropped
1674 2.2 compatibility, so it's OK to use the string method.
1678 2.2 compatibility, so it's OK to use the string method.
1675
1679
1676 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1680 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1677
1681
1678 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1682 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1679 matching what NOT to autocall on, to include all python binary
1683 matching what NOT to autocall on, to include all python binary
1680 operators (including things like 'and', 'or', 'is' and 'in').
1684 operators (including things like 'and', 'or', 'is' and 'in').
1681 Prompted by a bug report on 'foo & bar', but I realized we had
1685 Prompted by a bug report on 'foo & bar', but I realized we had
1682 many more potential bug cases with other operators. The regexp is
1686 many more potential bug cases with other operators. The regexp is
1683 self.re_exclude_auto, it's fairly commented.
1687 self.re_exclude_auto, it's fairly commented.
1684
1688
1685 2006-01-12 Ville Vainio <vivainio@gmail.com>
1689 2006-01-12 Ville Vainio <vivainio@gmail.com>
1686
1690
1687 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1691 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1688 Prettified and hardened string/backslash quoting with ipsystem(),
1692 Prettified and hardened string/backslash quoting with ipsystem(),
1689 ipalias() and ipmagic(). Now even \ characters are passed to
1693 ipalias() and ipmagic(). Now even \ characters are passed to
1690 %magics, !shell escapes and aliases exactly as they are in the
1694 %magics, !shell escapes and aliases exactly as they are in the
1691 ipython command line. Should improve backslash experience,
1695 ipython command line. Should improve backslash experience,
1692 particularly in Windows (path delimiter for some commands that
1696 particularly in Windows (path delimiter for some commands that
1693 won't understand '/'), but Unix benefits as well (regexps). %cd
1697 won't understand '/'), but Unix benefits as well (regexps). %cd
1694 magic still doesn't support backslash path delimiters, though. Also
1698 magic still doesn't support backslash path delimiters, though. Also
1695 deleted all pretense of supporting multiline command strings in
1699 deleted all pretense of supporting multiline command strings in
1696 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1700 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1697
1701
1698 * doc/build_doc_instructions.txt added. Documentation on how to
1702 * doc/build_doc_instructions.txt added. Documentation on how to
1699 use doc/update_manual.py, added yesterday. Both files contributed
1703 use doc/update_manual.py, added yesterday. Both files contributed
1700 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1704 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1701 doc/*.sh for deprecation at a later date.
1705 doc/*.sh for deprecation at a later date.
1702
1706
1703 * /ipython.py Added ipython.py to root directory for
1707 * /ipython.py Added ipython.py to root directory for
1704 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1708 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1705 ipython.py) and development convenience (no need to keep doing
1709 ipython.py) and development convenience (no need to keep doing
1706 "setup.py install" between changes).
1710 "setup.py install" between changes).
1707
1711
1708 * Made ! and !! shell escapes work (again) in multiline expressions:
1712 * Made ! and !! shell escapes work (again) in multiline expressions:
1709 if 1:
1713 if 1:
1710 !ls
1714 !ls
1711 !!ls
1715 !!ls
1712
1716
1713 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1717 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1714
1718
1715 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1719 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1716 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1720 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1717 module in case-insensitive installation. Was causing crashes
1721 module in case-insensitive installation. Was causing crashes
1718 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1722 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1719
1723
1720 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1724 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1721 <marienz-AT-gentoo.org>, closes
1725 <marienz-AT-gentoo.org>, closes
1722 http://www.scipy.net/roundup/ipython/issue51.
1726 http://www.scipy.net/roundup/ipython/issue51.
1723
1727
1724 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1728 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1725
1729
1726 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1730 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1727 problem of excessive CPU usage under *nix and keyboard lag under
1731 problem of excessive CPU usage under *nix and keyboard lag under
1728 win32.
1732 win32.
1729
1733
1730 2006-01-10 *** Released version 0.7.0
1734 2006-01-10 *** Released version 0.7.0
1731
1735
1732 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1736 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1733
1737
1734 * IPython/Release.py (revision): tag version number to 0.7.0,
1738 * IPython/Release.py (revision): tag version number to 0.7.0,
1735 ready for release.
1739 ready for release.
1736
1740
1737 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1741 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1738 it informs the user of the name of the temp. file used. This can
1742 it informs the user of the name of the temp. file used. This can
1739 help if you decide later to reuse that same file, so you know
1743 help if you decide later to reuse that same file, so you know
1740 where to copy the info from.
1744 where to copy the info from.
1741
1745
1742 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1746 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1743
1747
1744 * setup_bdist_egg.py: little script to build an egg. Added
1748 * setup_bdist_egg.py: little script to build an egg. Added
1745 support in the release tools as well.
1749 support in the release tools as well.
1746
1750
1747 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1751 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1748
1752
1749 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1753 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1750 version selection (new -wxversion command line and ipythonrc
1754 version selection (new -wxversion command line and ipythonrc
1751 parameter). Patch contributed by Arnd Baecker
1755 parameter). Patch contributed by Arnd Baecker
1752 <arnd.baecker-AT-web.de>.
1756 <arnd.baecker-AT-web.de>.
1753
1757
1754 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1758 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1755 embedded instances, for variables defined at the interactive
1759 embedded instances, for variables defined at the interactive
1756 prompt of the embedded ipython. Reported by Arnd.
1760 prompt of the embedded ipython. Reported by Arnd.
1757
1761
1758 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1762 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1759 it can be used as a (stateful) toggle, or with a direct parameter.
1763 it can be used as a (stateful) toggle, or with a direct parameter.
1760
1764
1761 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1765 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1762 could be triggered in certain cases and cause the traceback
1766 could be triggered in certain cases and cause the traceback
1763 printer not to work.
1767 printer not to work.
1764
1768
1765 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1769 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1766
1770
1767 * IPython/iplib.py (_should_recompile): Small fix, closes
1771 * IPython/iplib.py (_should_recompile): Small fix, closes
1768 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1772 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1769
1773
1770 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1774 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1771
1775
1772 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1776 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1773 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1777 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1774 Moad for help with tracking it down.
1778 Moad for help with tracking it down.
1775
1779
1776 * IPython/iplib.py (handle_auto): fix autocall handling for
1780 * IPython/iplib.py (handle_auto): fix autocall handling for
1777 objects which support BOTH __getitem__ and __call__ (so that f [x]
1781 objects which support BOTH __getitem__ and __call__ (so that f [x]
1778 is left alone, instead of becoming f([x]) automatically).
1782 is left alone, instead of becoming f([x]) automatically).
1779
1783
1780 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1784 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1781 Ville's patch.
1785 Ville's patch.
1782
1786
1783 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1784
1788
1785 * IPython/iplib.py (handle_auto): changed autocall semantics to
1789 * IPython/iplib.py (handle_auto): changed autocall semantics to
1786 include 'smart' mode, where the autocall transformation is NOT
1790 include 'smart' mode, where the autocall transformation is NOT
1787 applied if there are no arguments on the line. This allows you to
1791 applied if there are no arguments on the line. This allows you to
1788 just type 'foo' if foo is a callable to see its internal form,
1792 just type 'foo' if foo is a callable to see its internal form,
1789 instead of having it called with no arguments (typically a
1793 instead of having it called with no arguments (typically a
1790 mistake). The old 'full' autocall still exists: for that, you
1794 mistake). The old 'full' autocall still exists: for that, you
1791 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1795 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1792
1796
1793 * IPython/completer.py (Completer.attr_matches): add
1797 * IPython/completer.py (Completer.attr_matches): add
1794 tab-completion support for Enthoughts' traits. After a report by
1798 tab-completion support for Enthoughts' traits. After a report by
1795 Arnd and a patch by Prabhu.
1799 Arnd and a patch by Prabhu.
1796
1800
1797 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1801 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1798
1802
1799 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1803 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1800 Schmolck's patch to fix inspect.getinnerframes().
1804 Schmolck's patch to fix inspect.getinnerframes().
1801
1805
1802 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1806 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1803 for embedded instances, regarding handling of namespaces and items
1807 for embedded instances, regarding handling of namespaces and items
1804 added to the __builtin__ one. Multiple embedded instances and
1808 added to the __builtin__ one. Multiple embedded instances and
1805 recursive embeddings should work better now (though I'm not sure
1809 recursive embeddings should work better now (though I'm not sure
1806 I've got all the corner cases fixed, that code is a bit of a brain
1810 I've got all the corner cases fixed, that code is a bit of a brain
1807 twister).
1811 twister).
1808
1812
1809 * IPython/Magic.py (magic_edit): added support to edit in-memory
1813 * IPython/Magic.py (magic_edit): added support to edit in-memory
1810 macros (automatically creates the necessary temp files). %edit
1814 macros (automatically creates the necessary temp files). %edit
1811 also doesn't return the file contents anymore, it's just noise.
1815 also doesn't return the file contents anymore, it's just noise.
1812
1816
1813 * IPython/completer.py (Completer.attr_matches): revert change to
1817 * IPython/completer.py (Completer.attr_matches): revert change to
1814 complete only on attributes listed in __all__. I realized it
1818 complete only on attributes listed in __all__. I realized it
1815 cripples the tab-completion system as a tool for exploring the
1819 cripples the tab-completion system as a tool for exploring the
1816 internals of unknown libraries (it renders any non-__all__
1820 internals of unknown libraries (it renders any non-__all__
1817 attribute off-limits). I got bit by this when trying to see
1821 attribute off-limits). I got bit by this when trying to see
1818 something inside the dis module.
1822 something inside the dis module.
1819
1823
1820 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1824 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1821
1825
1822 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1826 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1823 namespace for users and extension writers to hold data in. This
1827 namespace for users and extension writers to hold data in. This
1824 follows the discussion in
1828 follows the discussion in
1825 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1829 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1826
1830
1827 * IPython/completer.py (IPCompleter.complete): small patch to help
1831 * IPython/completer.py (IPCompleter.complete): small patch to help
1828 tab-completion under Emacs, after a suggestion by John Barnard
1832 tab-completion under Emacs, after a suggestion by John Barnard
1829 <barnarj-AT-ccf.org>.
1833 <barnarj-AT-ccf.org>.
1830
1834
1831 * IPython/Magic.py (Magic.extract_input_slices): added support for
1835 * IPython/Magic.py (Magic.extract_input_slices): added support for
1832 the slice notation in magics to use N-M to represent numbers N...M
1836 the slice notation in magics to use N-M to represent numbers N...M
1833 (closed endpoints). This is used by %macro and %save.
1837 (closed endpoints). This is used by %macro and %save.
1834
1838
1835 * IPython/completer.py (Completer.attr_matches): for modules which
1839 * IPython/completer.py (Completer.attr_matches): for modules which
1836 define __all__, complete only on those. After a patch by Jeffrey
1840 define __all__, complete only on those. After a patch by Jeffrey
1837 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1841 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1838 speed up this routine.
1842 speed up this routine.
1839
1843
1840 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1844 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1841 don't know if this is the end of it, but the behavior now is
1845 don't know if this is the end of it, but the behavior now is
1842 certainly much more correct. Note that coupled with macros,
1846 certainly much more correct. Note that coupled with macros,
1843 slightly surprising (at first) behavior may occur: a macro will in
1847 slightly surprising (at first) behavior may occur: a macro will in
1844 general expand to multiple lines of input, so upon exiting, the
1848 general expand to multiple lines of input, so upon exiting, the
1845 in/out counters will both be bumped by the corresponding amount
1849 in/out counters will both be bumped by the corresponding amount
1846 (as if the macro's contents had been typed interactively). Typing
1850 (as if the macro's contents had been typed interactively). Typing
1847 %hist will reveal the intermediate (silently processed) lines.
1851 %hist will reveal the intermediate (silently processed) lines.
1848
1852
1849 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1853 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1850 pickle to fail (%run was overwriting __main__ and not restoring
1854 pickle to fail (%run was overwriting __main__ and not restoring
1851 it, but pickle relies on __main__ to operate).
1855 it, but pickle relies on __main__ to operate).
1852
1856
1853 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1857 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1854 using properties, but forgot to make the main InteractiveShell
1858 using properties, but forgot to make the main InteractiveShell
1855 class a new-style class. Properties fail silently, and
1859 class a new-style class. Properties fail silently, and
1856 mysteriously, with old-style class (getters work, but
1860 mysteriously, with old-style class (getters work, but
1857 setters don't do anything).
1861 setters don't do anything).
1858
1862
1859 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1863 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1860
1864
1861 * IPython/Magic.py (magic_history): fix history reporting bug (I
1865 * IPython/Magic.py (magic_history): fix history reporting bug (I
1862 know some nasties are still there, I just can't seem to find a
1866 know some nasties are still there, I just can't seem to find a
1863 reproducible test case to track them down; the input history is
1867 reproducible test case to track them down; the input history is
1864 falling out of sync...)
1868 falling out of sync...)
1865
1869
1866 * IPython/iplib.py (handle_shell_escape): fix bug where both
1870 * IPython/iplib.py (handle_shell_escape): fix bug where both
1867 aliases and system accesses where broken for indented code (such
1871 aliases and system accesses where broken for indented code (such
1868 as loops).
1872 as loops).
1869
1873
1870 * IPython/genutils.py (shell): fix small but critical bug for
1874 * IPython/genutils.py (shell): fix small but critical bug for
1871 win32 system access.
1875 win32 system access.
1872
1876
1873 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1877 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1874
1878
1875 * IPython/iplib.py (showtraceback): remove use of the
1879 * IPython/iplib.py (showtraceback): remove use of the
1876 sys.last_{type/value/traceback} structures, which are non
1880 sys.last_{type/value/traceback} structures, which are non
1877 thread-safe.
1881 thread-safe.
1878 (_prefilter): change control flow to ensure that we NEVER
1882 (_prefilter): change control flow to ensure that we NEVER
1879 introspect objects when autocall is off. This will guarantee that
1883 introspect objects when autocall is off. This will guarantee that
1880 having an input line of the form 'x.y', where access to attribute
1884 having an input line of the form 'x.y', where access to attribute
1881 'y' has side effects, doesn't trigger the side effect TWICE. It
1885 'y' has side effects, doesn't trigger the side effect TWICE. It
1882 is important to note that, with autocall on, these side effects
1886 is important to note that, with autocall on, these side effects
1883 can still happen.
1887 can still happen.
1884 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1888 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1885 trio. IPython offers these three kinds of special calls which are
1889 trio. IPython offers these three kinds of special calls which are
1886 not python code, and it's a good thing to have their call method
1890 not python code, and it's a good thing to have their call method
1887 be accessible as pure python functions (not just special syntax at
1891 be accessible as pure python functions (not just special syntax at
1888 the command line). It gives us a better internal implementation
1892 the command line). It gives us a better internal implementation
1889 structure, as well as exposing these for user scripting more
1893 structure, as well as exposing these for user scripting more
1890 cleanly.
1894 cleanly.
1891
1895
1892 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1896 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1893 file. Now that they'll be more likely to be used with the
1897 file. Now that they'll be more likely to be used with the
1894 persistance system (%store), I want to make sure their module path
1898 persistance system (%store), I want to make sure their module path
1895 doesn't change in the future, so that we don't break things for
1899 doesn't change in the future, so that we don't break things for
1896 users' persisted data.
1900 users' persisted data.
1897
1901
1898 * IPython/iplib.py (autoindent_update): move indentation
1902 * IPython/iplib.py (autoindent_update): move indentation
1899 management into the _text_ processing loop, not the keyboard
1903 management into the _text_ processing loop, not the keyboard
1900 interactive one. This is necessary to correctly process non-typed
1904 interactive one. This is necessary to correctly process non-typed
1901 multiline input (such as macros).
1905 multiline input (such as macros).
1902
1906
1903 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1907 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1904 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1908 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1905 which was producing problems in the resulting manual.
1909 which was producing problems in the resulting manual.
1906 (magic_whos): improve reporting of instances (show their class,
1910 (magic_whos): improve reporting of instances (show their class,
1907 instead of simply printing 'instance' which isn't terribly
1911 instead of simply printing 'instance' which isn't terribly
1908 informative).
1912 informative).
1909
1913
1910 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1914 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1911 (minor mods) to support network shares under win32.
1915 (minor mods) to support network shares under win32.
1912
1916
1913 * IPython/winconsole.py (get_console_size): add new winconsole
1917 * IPython/winconsole.py (get_console_size): add new winconsole
1914 module and fixes to page_dumb() to improve its behavior under
1918 module and fixes to page_dumb() to improve its behavior under
1915 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1919 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1916
1920
1917 * IPython/Magic.py (Macro): simplified Macro class to just
1921 * IPython/Magic.py (Macro): simplified Macro class to just
1918 subclass list. We've had only 2.2 compatibility for a very long
1922 subclass list. We've had only 2.2 compatibility for a very long
1919 time, yet I was still avoiding subclassing the builtin types. No
1923 time, yet I was still avoiding subclassing the builtin types. No
1920 more (I'm also starting to use properties, though I won't shift to
1924 more (I'm also starting to use properties, though I won't shift to
1921 2.3-specific features quite yet).
1925 2.3-specific features quite yet).
1922 (magic_store): added Ville's patch for lightweight variable
1926 (magic_store): added Ville's patch for lightweight variable
1923 persistence, after a request on the user list by Matt Wilkie
1927 persistence, after a request on the user list by Matt Wilkie
1924 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1928 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1925 details.
1929 details.
1926
1930
1927 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1931 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1928 changed the default logfile name from 'ipython.log' to
1932 changed the default logfile name from 'ipython.log' to
1929 'ipython_log.py'. These logs are real python files, and now that
1933 'ipython_log.py'. These logs are real python files, and now that
1930 we have much better multiline support, people are more likely to
1934 we have much better multiline support, people are more likely to
1931 want to use them as such. Might as well name them correctly.
1935 want to use them as such. Might as well name them correctly.
1932
1936
1933 * IPython/Magic.py: substantial cleanup. While we can't stop
1937 * IPython/Magic.py: substantial cleanup. While we can't stop
1934 using magics as mixins, due to the existing customizations 'out
1938 using magics as mixins, due to the existing customizations 'out
1935 there' which rely on the mixin naming conventions, at least I
1939 there' which rely on the mixin naming conventions, at least I
1936 cleaned out all cross-class name usage. So once we are OK with
1940 cleaned out all cross-class name usage. So once we are OK with
1937 breaking compatibility, the two systems can be separated.
1941 breaking compatibility, the two systems can be separated.
1938
1942
1939 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1943 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1940 anymore, and the class is a fair bit less hideous as well. New
1944 anymore, and the class is a fair bit less hideous as well. New
1941 features were also introduced: timestamping of input, and logging
1945 features were also introduced: timestamping of input, and logging
1942 of output results. These are user-visible with the -t and -o
1946 of output results. These are user-visible with the -t and -o
1943 options to %logstart. Closes
1947 options to %logstart. Closes
1944 http://www.scipy.net/roundup/ipython/issue11 and a request by
1948 http://www.scipy.net/roundup/ipython/issue11 and a request by
1945 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1949 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1946
1950
1947 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1951 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1948
1952
1949 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1953 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1950 better handle backslashes in paths. See the thread 'More Windows
1954 better handle backslashes in paths. See the thread 'More Windows
1951 questions part 2 - \/ characters revisited' on the iypthon user
1955 questions part 2 - \/ characters revisited' on the iypthon user
1952 list:
1956 list:
1953 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1957 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1954
1958
1955 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1959 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1956
1960
1957 (InteractiveShell.__init__): change threaded shells to not use the
1961 (InteractiveShell.__init__): change threaded shells to not use the
1958 ipython crash handler. This was causing more problems than not,
1962 ipython crash handler. This was causing more problems than not,
1959 as exceptions in the main thread (GUI code, typically) would
1963 as exceptions in the main thread (GUI code, typically) would
1960 always show up as a 'crash', when they really weren't.
1964 always show up as a 'crash', when they really weren't.
1961
1965
1962 The colors and exception mode commands (%colors/%xmode) have been
1966 The colors and exception mode commands (%colors/%xmode) have been
1963 synchronized to also take this into account, so users can get
1967 synchronized to also take this into account, so users can get
1964 verbose exceptions for their threaded code as well. I also added
1968 verbose exceptions for their threaded code as well. I also added
1965 support for activating pdb inside this exception handler as well,
1969 support for activating pdb inside this exception handler as well,
1966 so now GUI authors can use IPython's enhanced pdb at runtime.
1970 so now GUI authors can use IPython's enhanced pdb at runtime.
1967
1971
1968 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1972 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1969 true by default, and add it to the shipped ipythonrc file. Since
1973 true by default, and add it to the shipped ipythonrc file. Since
1970 this asks the user before proceeding, I think it's OK to make it
1974 this asks the user before proceeding, I think it's OK to make it
1971 true by default.
1975 true by default.
1972
1976
1973 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1977 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1974 of the previous special-casing of input in the eval loop. I think
1978 of the previous special-casing of input in the eval loop. I think
1975 this is cleaner, as they really are commands and shouldn't have
1979 this is cleaner, as they really are commands and shouldn't have
1976 a special role in the middle of the core code.
1980 a special role in the middle of the core code.
1977
1981
1978 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1982 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1979
1983
1980 * IPython/iplib.py (edit_syntax_error): added support for
1984 * IPython/iplib.py (edit_syntax_error): added support for
1981 automatically reopening the editor if the file had a syntax error
1985 automatically reopening the editor if the file had a syntax error
1982 in it. Thanks to scottt who provided the patch at:
1986 in it. Thanks to scottt who provided the patch at:
1983 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1987 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1984 version committed).
1988 version committed).
1985
1989
1986 * IPython/iplib.py (handle_normal): add suport for multi-line
1990 * IPython/iplib.py (handle_normal): add suport for multi-line
1987 input with emtpy lines. This fixes
1991 input with emtpy lines. This fixes
1988 http://www.scipy.net/roundup/ipython/issue43 and a similar
1992 http://www.scipy.net/roundup/ipython/issue43 and a similar
1989 discussion on the user list.
1993 discussion on the user list.
1990
1994
1991 WARNING: a behavior change is necessarily introduced to support
1995 WARNING: a behavior change is necessarily introduced to support
1992 blank lines: now a single blank line with whitespace does NOT
1996 blank lines: now a single blank line with whitespace does NOT
1993 break the input loop, which means that when autoindent is on, by
1997 break the input loop, which means that when autoindent is on, by
1994 default hitting return on the next (indented) line does NOT exit.
1998 default hitting return on the next (indented) line does NOT exit.
1995
1999
1996 Instead, to exit a multiline input you can either have:
2000 Instead, to exit a multiline input you can either have:
1997
2001
1998 - TWO whitespace lines (just hit return again), or
2002 - TWO whitespace lines (just hit return again), or
1999 - a single whitespace line of a different length than provided
2003 - a single whitespace line of a different length than provided
2000 by the autoindent (add or remove a space).
2004 by the autoindent (add or remove a space).
2001
2005
2002 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2006 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2003 module to better organize all readline-related functionality.
2007 module to better organize all readline-related functionality.
2004 I've deleted FlexCompleter and put all completion clases here.
2008 I've deleted FlexCompleter and put all completion clases here.
2005
2009
2006 * IPython/iplib.py (raw_input): improve indentation management.
2010 * IPython/iplib.py (raw_input): improve indentation management.
2007 It is now possible to paste indented code with autoindent on, and
2011 It is now possible to paste indented code with autoindent on, and
2008 the code is interpreted correctly (though it still looks bad on
2012 the code is interpreted correctly (though it still looks bad on
2009 screen, due to the line-oriented nature of ipython).
2013 screen, due to the line-oriented nature of ipython).
2010 (MagicCompleter.complete): change behavior so that a TAB key on an
2014 (MagicCompleter.complete): change behavior so that a TAB key on an
2011 otherwise empty line actually inserts a tab, instead of completing
2015 otherwise empty line actually inserts a tab, instead of completing
2012 on the entire global namespace. This makes it easier to use the
2016 on the entire global namespace. This makes it easier to use the
2013 TAB key for indentation. After a request by Hans Meine
2017 TAB key for indentation. After a request by Hans Meine
2014 <hans_meine-AT-gmx.net>
2018 <hans_meine-AT-gmx.net>
2015 (_prefilter): add support so that typing plain 'exit' or 'quit'
2019 (_prefilter): add support so that typing plain 'exit' or 'quit'
2016 does a sensible thing. Originally I tried to deviate as little as
2020 does a sensible thing. Originally I tried to deviate as little as
2017 possible from the default python behavior, but even that one may
2021 possible from the default python behavior, but even that one may
2018 change in this direction (thread on python-dev to that effect).
2022 change in this direction (thread on python-dev to that effect).
2019 Regardless, ipython should do the right thing even if CPython's
2023 Regardless, ipython should do the right thing even if CPython's
2020 '>>>' prompt doesn't.
2024 '>>>' prompt doesn't.
2021 (InteractiveShell): removed subclassing code.InteractiveConsole
2025 (InteractiveShell): removed subclassing code.InteractiveConsole
2022 class. By now we'd overridden just about all of its methods: I've
2026 class. By now we'd overridden just about all of its methods: I've
2023 copied the remaining two over, and now ipython is a standalone
2027 copied the remaining two over, and now ipython is a standalone
2024 class. This will provide a clearer picture for the chainsaw
2028 class. This will provide a clearer picture for the chainsaw
2025 branch refactoring.
2029 branch refactoring.
2026
2030
2027 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2031 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2028
2032
2029 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2033 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2030 failures for objects which break when dir() is called on them.
2034 failures for objects which break when dir() is called on them.
2031
2035
2032 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2036 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2033 distinct local and global namespaces in the completer API. This
2037 distinct local and global namespaces in the completer API. This
2034 change allows us to properly handle completion with distinct
2038 change allows us to properly handle completion with distinct
2035 scopes, including in embedded instances (this had never really
2039 scopes, including in embedded instances (this had never really
2036 worked correctly).
2040 worked correctly).
2037
2041
2038 Note: this introduces a change in the constructor for
2042 Note: this introduces a change in the constructor for
2039 MagicCompleter, as a new global_namespace parameter is now the
2043 MagicCompleter, as a new global_namespace parameter is now the
2040 second argument (the others were bumped one position).
2044 second argument (the others were bumped one position).
2041
2045
2042 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2046 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2043
2047
2044 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2048 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2045 embedded instances (which can be done now thanks to Vivian's
2049 embedded instances (which can be done now thanks to Vivian's
2046 frame-handling fixes for pdb).
2050 frame-handling fixes for pdb).
2047 (InteractiveShell.__init__): Fix namespace handling problem in
2051 (InteractiveShell.__init__): Fix namespace handling problem in
2048 embedded instances. We were overwriting __main__ unconditionally,
2052 embedded instances. We were overwriting __main__ unconditionally,
2049 and this should only be done for 'full' (non-embedded) IPython;
2053 and this should only be done for 'full' (non-embedded) IPython;
2050 embedded instances must respect the caller's __main__. Thanks to
2054 embedded instances must respect the caller's __main__. Thanks to
2051 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2055 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2052
2056
2053 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2057 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2054
2058
2055 * setup.py: added download_url to setup(). This registers the
2059 * setup.py: added download_url to setup(). This registers the
2056 download address at PyPI, which is not only useful to humans
2060 download address at PyPI, which is not only useful to humans
2057 browsing the site, but is also picked up by setuptools (the Eggs
2061 browsing the site, but is also picked up by setuptools (the Eggs
2058 machinery). Thanks to Ville and R. Kern for the info/discussion
2062 machinery). Thanks to Ville and R. Kern for the info/discussion
2059 on this.
2063 on this.
2060
2064
2061 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2065 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2062
2066
2063 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2067 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2064 This brings a lot of nice functionality to the pdb mode, which now
2068 This brings a lot of nice functionality to the pdb mode, which now
2065 has tab-completion, syntax highlighting, and better stack handling
2069 has tab-completion, syntax highlighting, and better stack handling
2066 than before. Many thanks to Vivian De Smedt
2070 than before. Many thanks to Vivian De Smedt
2067 <vivian-AT-vdesmedt.com> for the original patches.
2071 <vivian-AT-vdesmedt.com> for the original patches.
2068
2072
2069 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2073 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2070
2074
2071 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2075 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2072 sequence to consistently accept the banner argument. The
2076 sequence to consistently accept the banner argument. The
2073 inconsistency was tripping SAGE, thanks to Gary Zablackis
2077 inconsistency was tripping SAGE, thanks to Gary Zablackis
2074 <gzabl-AT-yahoo.com> for the report.
2078 <gzabl-AT-yahoo.com> for the report.
2075
2079
2076 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2080 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2077
2081
2078 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2082 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2079 Fix bug where a naked 'alias' call in the ipythonrc file would
2083 Fix bug where a naked 'alias' call in the ipythonrc file would
2080 cause a crash. Bug reported by Jorgen Stenarson.
2084 cause a crash. Bug reported by Jorgen Stenarson.
2081
2085
2082 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2086 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2083
2087
2084 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2088 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2085 startup time.
2089 startup time.
2086
2090
2087 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2091 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2088 instances had introduced a bug with globals in normal code. Now
2092 instances had introduced a bug with globals in normal code. Now
2089 it's working in all cases.
2093 it's working in all cases.
2090
2094
2091 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2095 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2092 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2096 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2093 has been introduced to set the default case sensitivity of the
2097 has been introduced to set the default case sensitivity of the
2094 searches. Users can still select either mode at runtime on a
2098 searches. Users can still select either mode at runtime on a
2095 per-search basis.
2099 per-search basis.
2096
2100
2097 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2101 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2098
2102
2099 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2103 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2100 attributes in wildcard searches for subclasses. Modified version
2104 attributes in wildcard searches for subclasses. Modified version
2101 of a patch by Jorgen.
2105 of a patch by Jorgen.
2102
2106
2103 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2107 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2104
2108
2105 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2109 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2106 embedded instances. I added a user_global_ns attribute to the
2110 embedded instances. I added a user_global_ns attribute to the
2107 InteractiveShell class to handle this.
2111 InteractiveShell class to handle this.
2108
2112
2109 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2113 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2110
2114
2111 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2115 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2112 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2116 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2113 (reported under win32, but may happen also in other platforms).
2117 (reported under win32, but may happen also in other platforms).
2114 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2118 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2115
2119
2116 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2120 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2117
2121
2118 * IPython/Magic.py (magic_psearch): new support for wildcard
2122 * IPython/Magic.py (magic_psearch): new support for wildcard
2119 patterns. Now, typing ?a*b will list all names which begin with a
2123 patterns. Now, typing ?a*b will list all names which begin with a
2120 and end in b, for example. The %psearch magic has full
2124 and end in b, for example. The %psearch magic has full
2121 docstrings. Many thanks to JΓΆrgen Stenarson
2125 docstrings. Many thanks to JΓΆrgen Stenarson
2122 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2126 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2123 implementing this functionality.
2127 implementing this functionality.
2124
2128
2125 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2129 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2126
2130
2127 * Manual: fixed long-standing annoyance of double-dashes (as in
2131 * Manual: fixed long-standing annoyance of double-dashes (as in
2128 --prefix=~, for example) being stripped in the HTML version. This
2132 --prefix=~, for example) being stripped in the HTML version. This
2129 is a latex2html bug, but a workaround was provided. Many thanks
2133 is a latex2html bug, but a workaround was provided. Many thanks
2130 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2134 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2131 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2135 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2132 rolling. This seemingly small issue had tripped a number of users
2136 rolling. This seemingly small issue had tripped a number of users
2133 when first installing, so I'm glad to see it gone.
2137 when first installing, so I'm glad to see it gone.
2134
2138
2135 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2139 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2136
2140
2137 * IPython/Extensions/numeric_formats.py: fix missing import,
2141 * IPython/Extensions/numeric_formats.py: fix missing import,
2138 reported by Stephen Walton.
2142 reported by Stephen Walton.
2139
2143
2140 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2144 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2141
2145
2142 * IPython/demo.py: finish demo module, fully documented now.
2146 * IPython/demo.py: finish demo module, fully documented now.
2143
2147
2144 * IPython/genutils.py (file_read): simple little utility to read a
2148 * IPython/genutils.py (file_read): simple little utility to read a
2145 file and ensure it's closed afterwards.
2149 file and ensure it's closed afterwards.
2146
2150
2147 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2151 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2148
2152
2149 * IPython/demo.py (Demo.__init__): added support for individually
2153 * IPython/demo.py (Demo.__init__): added support for individually
2150 tagging blocks for automatic execution.
2154 tagging blocks for automatic execution.
2151
2155
2152 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2156 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2153 syntax-highlighted python sources, requested by John.
2157 syntax-highlighted python sources, requested by John.
2154
2158
2155 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2159 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2156
2160
2157 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2161 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2158 finishing.
2162 finishing.
2159
2163
2160 * IPython/genutils.py (shlex_split): moved from Magic to here,
2164 * IPython/genutils.py (shlex_split): moved from Magic to here,
2161 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2165 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2162
2166
2163 * IPython/demo.py (Demo.__init__): added support for silent
2167 * IPython/demo.py (Demo.__init__): added support for silent
2164 blocks, improved marks as regexps, docstrings written.
2168 blocks, improved marks as regexps, docstrings written.
2165 (Demo.__init__): better docstring, added support for sys.argv.
2169 (Demo.__init__): better docstring, added support for sys.argv.
2166
2170
2167 * IPython/genutils.py (marquee): little utility used by the demo
2171 * IPython/genutils.py (marquee): little utility used by the demo
2168 code, handy in general.
2172 code, handy in general.
2169
2173
2170 * IPython/demo.py (Demo.__init__): new class for interactive
2174 * IPython/demo.py (Demo.__init__): new class for interactive
2171 demos. Not documented yet, I just wrote it in a hurry for
2175 demos. Not documented yet, I just wrote it in a hurry for
2172 scipy'05. Will docstring later.
2176 scipy'05. Will docstring later.
2173
2177
2174 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2178 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2175
2179
2176 * IPython/Shell.py (sigint_handler): Drastic simplification which
2180 * IPython/Shell.py (sigint_handler): Drastic simplification which
2177 also seems to make Ctrl-C work correctly across threads! This is
2181 also seems to make Ctrl-C work correctly across threads! This is
2178 so simple, that I can't beleive I'd missed it before. Needs more
2182 so simple, that I can't beleive I'd missed it before. Needs more
2179 testing, though.
2183 testing, though.
2180 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2184 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2181 like this before...
2185 like this before...
2182
2186
2183 * IPython/genutils.py (get_home_dir): add protection against
2187 * IPython/genutils.py (get_home_dir): add protection against
2184 non-dirs in win32 registry.
2188 non-dirs in win32 registry.
2185
2189
2186 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2190 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2187 bug where dict was mutated while iterating (pysh crash).
2191 bug where dict was mutated while iterating (pysh crash).
2188
2192
2189 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2193 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2190
2194
2191 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2195 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2192 spurious newlines added by this routine. After a report by
2196 spurious newlines added by this routine. After a report by
2193 F. Mantegazza.
2197 F. Mantegazza.
2194
2198
2195 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2199 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2196
2200
2197 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2201 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2198 calls. These were a leftover from the GTK 1.x days, and can cause
2202 calls. These were a leftover from the GTK 1.x days, and can cause
2199 problems in certain cases (after a report by John Hunter).
2203 problems in certain cases (after a report by John Hunter).
2200
2204
2201 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2205 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2202 os.getcwd() fails at init time. Thanks to patch from David Remahl
2206 os.getcwd() fails at init time. Thanks to patch from David Remahl
2203 <chmod007-AT-mac.com>.
2207 <chmod007-AT-mac.com>.
2204 (InteractiveShell.__init__): prevent certain special magics from
2208 (InteractiveShell.__init__): prevent certain special magics from
2205 being shadowed by aliases. Closes
2209 being shadowed by aliases. Closes
2206 http://www.scipy.net/roundup/ipython/issue41.
2210 http://www.scipy.net/roundup/ipython/issue41.
2207
2211
2208 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2212 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2209
2213
2210 * IPython/iplib.py (InteractiveShell.complete): Added new
2214 * IPython/iplib.py (InteractiveShell.complete): Added new
2211 top-level completion method to expose the completion mechanism
2215 top-level completion method to expose the completion mechanism
2212 beyond readline-based environments.
2216 beyond readline-based environments.
2213
2217
2214 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2218 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2215
2219
2216 * tools/ipsvnc (svnversion): fix svnversion capture.
2220 * tools/ipsvnc (svnversion): fix svnversion capture.
2217
2221
2218 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2222 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2219 attribute to self, which was missing. Before, it was set by a
2223 attribute to self, which was missing. Before, it was set by a
2220 routine which in certain cases wasn't being called, so the
2224 routine which in certain cases wasn't being called, so the
2221 instance could end up missing the attribute. This caused a crash.
2225 instance could end up missing the attribute. This caused a crash.
2222 Closes http://www.scipy.net/roundup/ipython/issue40.
2226 Closes http://www.scipy.net/roundup/ipython/issue40.
2223
2227
2224 2005-08-16 Fernando Perez <fperez@colorado.edu>
2228 2005-08-16 Fernando Perez <fperez@colorado.edu>
2225
2229
2226 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2230 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2227 contains non-string attribute. Closes
2231 contains non-string attribute. Closes
2228 http://www.scipy.net/roundup/ipython/issue38.
2232 http://www.scipy.net/roundup/ipython/issue38.
2229
2233
2230 2005-08-14 Fernando Perez <fperez@colorado.edu>
2234 2005-08-14 Fernando Perez <fperez@colorado.edu>
2231
2235
2232 * tools/ipsvnc: Minor improvements, to add changeset info.
2236 * tools/ipsvnc: Minor improvements, to add changeset info.
2233
2237
2234 2005-08-12 Fernando Perez <fperez@colorado.edu>
2238 2005-08-12 Fernando Perez <fperez@colorado.edu>
2235
2239
2236 * IPython/iplib.py (runsource): remove self.code_to_run_src
2240 * IPython/iplib.py (runsource): remove self.code_to_run_src
2237 attribute. I realized this is nothing more than
2241 attribute. I realized this is nothing more than
2238 '\n'.join(self.buffer), and having the same data in two different
2242 '\n'.join(self.buffer), and having the same data in two different
2239 places is just asking for synchronization bugs. This may impact
2243 places is just asking for synchronization bugs. This may impact
2240 people who have custom exception handlers, so I need to warn
2244 people who have custom exception handlers, so I need to warn
2241 ipython-dev about it (F. Mantegazza may use them).
2245 ipython-dev about it (F. Mantegazza may use them).
2242
2246
2243 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2247 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2244
2248
2245 * IPython/genutils.py: fix 2.2 compatibility (generators)
2249 * IPython/genutils.py: fix 2.2 compatibility (generators)
2246
2250
2247 2005-07-18 Fernando Perez <fperez@colorado.edu>
2251 2005-07-18 Fernando Perez <fperez@colorado.edu>
2248
2252
2249 * IPython/genutils.py (get_home_dir): fix to help users with
2253 * IPython/genutils.py (get_home_dir): fix to help users with
2250 invalid $HOME under win32.
2254 invalid $HOME under win32.
2251
2255
2252 2005-07-17 Fernando Perez <fperez@colorado.edu>
2256 2005-07-17 Fernando Perez <fperez@colorado.edu>
2253
2257
2254 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2258 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2255 some old hacks and clean up a bit other routines; code should be
2259 some old hacks and clean up a bit other routines; code should be
2256 simpler and a bit faster.
2260 simpler and a bit faster.
2257
2261
2258 * IPython/iplib.py (interact): removed some last-resort attempts
2262 * IPython/iplib.py (interact): removed some last-resort attempts
2259 to survive broken stdout/stderr. That code was only making it
2263 to survive broken stdout/stderr. That code was only making it
2260 harder to abstract out the i/o (necessary for gui integration),
2264 harder to abstract out the i/o (necessary for gui integration),
2261 and the crashes it could prevent were extremely rare in practice
2265 and the crashes it could prevent were extremely rare in practice
2262 (besides being fully user-induced in a pretty violent manner).
2266 (besides being fully user-induced in a pretty violent manner).
2263
2267
2264 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2268 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2265 Nothing major yet, but the code is simpler to read; this should
2269 Nothing major yet, but the code is simpler to read; this should
2266 make it easier to do more serious modifications in the future.
2270 make it easier to do more serious modifications in the future.
2267
2271
2268 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2272 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2269 which broke in .15 (thanks to a report by Ville).
2273 which broke in .15 (thanks to a report by Ville).
2270
2274
2271 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2275 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2272 be quite correct, I know next to nothing about unicode). This
2276 be quite correct, I know next to nothing about unicode). This
2273 will allow unicode strings to be used in prompts, amongst other
2277 will allow unicode strings to be used in prompts, amongst other
2274 cases. It also will prevent ipython from crashing when unicode
2278 cases. It also will prevent ipython from crashing when unicode
2275 shows up unexpectedly in many places. If ascii encoding fails, we
2279 shows up unexpectedly in many places. If ascii encoding fails, we
2276 assume utf_8. Currently the encoding is not a user-visible
2280 assume utf_8. Currently the encoding is not a user-visible
2277 setting, though it could be made so if there is demand for it.
2281 setting, though it could be made so if there is demand for it.
2278
2282
2279 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2283 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2280
2284
2281 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2285 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2282
2286
2283 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2287 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2284
2288
2285 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2289 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2286 code can work transparently for 2.2/2.3.
2290 code can work transparently for 2.2/2.3.
2287
2291
2288 2005-07-16 Fernando Perez <fperez@colorado.edu>
2292 2005-07-16 Fernando Perez <fperez@colorado.edu>
2289
2293
2290 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2294 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2291 out of the color scheme table used for coloring exception
2295 out of the color scheme table used for coloring exception
2292 tracebacks. This allows user code to add new schemes at runtime.
2296 tracebacks. This allows user code to add new schemes at runtime.
2293 This is a minimally modified version of the patch at
2297 This is a minimally modified version of the patch at
2294 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2298 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2295 for the contribution.
2299 for the contribution.
2296
2300
2297 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2301 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2298 slightly modified version of the patch in
2302 slightly modified version of the patch in
2299 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2303 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2300 to remove the previous try/except solution (which was costlier).
2304 to remove the previous try/except solution (which was costlier).
2301 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2305 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2302
2306
2303 2005-06-08 Fernando Perez <fperez@colorado.edu>
2307 2005-06-08 Fernando Perez <fperez@colorado.edu>
2304
2308
2305 * IPython/iplib.py (write/write_err): Add methods to abstract all
2309 * IPython/iplib.py (write/write_err): Add methods to abstract all
2306 I/O a bit more.
2310 I/O a bit more.
2307
2311
2308 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2312 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2309 warning, reported by Aric Hagberg, fix by JD Hunter.
2313 warning, reported by Aric Hagberg, fix by JD Hunter.
2310
2314
2311 2005-06-02 *** Released version 0.6.15
2315 2005-06-02 *** Released version 0.6.15
2312
2316
2313 2005-06-01 Fernando Perez <fperez@colorado.edu>
2317 2005-06-01 Fernando Perez <fperez@colorado.edu>
2314
2318
2315 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2319 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2316 tab-completion of filenames within open-quoted strings. Note that
2320 tab-completion of filenames within open-quoted strings. Note that
2317 this requires that in ~/.ipython/ipythonrc, users change the
2321 this requires that in ~/.ipython/ipythonrc, users change the
2318 readline delimiters configuration to read:
2322 readline delimiters configuration to read:
2319
2323
2320 readline_remove_delims -/~
2324 readline_remove_delims -/~
2321
2325
2322
2326
2323 2005-05-31 *** Released version 0.6.14
2327 2005-05-31 *** Released version 0.6.14
2324
2328
2325 2005-05-29 Fernando Perez <fperez@colorado.edu>
2329 2005-05-29 Fernando Perez <fperez@colorado.edu>
2326
2330
2327 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2331 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2328 with files not on the filesystem. Reported by Eliyahu Sandler
2332 with files not on the filesystem. Reported by Eliyahu Sandler
2329 <eli@gondolin.net>
2333 <eli@gondolin.net>
2330
2334
2331 2005-05-22 Fernando Perez <fperez@colorado.edu>
2335 2005-05-22 Fernando Perez <fperez@colorado.edu>
2332
2336
2333 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2337 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2334 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2338 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2335
2339
2336 2005-05-19 Fernando Perez <fperez@colorado.edu>
2340 2005-05-19 Fernando Perez <fperez@colorado.edu>
2337
2341
2338 * IPython/iplib.py (safe_execfile): close a file which could be
2342 * IPython/iplib.py (safe_execfile): close a file which could be
2339 left open (causing problems in win32, which locks open files).
2343 left open (causing problems in win32, which locks open files).
2340 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2344 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2341
2345
2342 2005-05-18 Fernando Perez <fperez@colorado.edu>
2346 2005-05-18 Fernando Perez <fperez@colorado.edu>
2343
2347
2344 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2348 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2345 keyword arguments correctly to safe_execfile().
2349 keyword arguments correctly to safe_execfile().
2346
2350
2347 2005-05-13 Fernando Perez <fperez@colorado.edu>
2351 2005-05-13 Fernando Perez <fperez@colorado.edu>
2348
2352
2349 * ipython.1: Added info about Qt to manpage, and threads warning
2353 * ipython.1: Added info about Qt to manpage, and threads warning
2350 to usage page (invoked with --help).
2354 to usage page (invoked with --help).
2351
2355
2352 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2356 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2353 new matcher (it goes at the end of the priority list) to do
2357 new matcher (it goes at the end of the priority list) to do
2354 tab-completion on named function arguments. Submitted by George
2358 tab-completion on named function arguments. Submitted by George
2355 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2359 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2356 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2360 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2357 for more details.
2361 for more details.
2358
2362
2359 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2363 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2360 SystemExit exceptions in the script being run. Thanks to a report
2364 SystemExit exceptions in the script being run. Thanks to a report
2361 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2365 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2362 producing very annoying behavior when running unit tests.
2366 producing very annoying behavior when running unit tests.
2363
2367
2364 2005-05-12 Fernando Perez <fperez@colorado.edu>
2368 2005-05-12 Fernando Perez <fperez@colorado.edu>
2365
2369
2366 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2370 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2367 which I'd broken (again) due to a changed regexp. In the process,
2371 which I'd broken (again) due to a changed regexp. In the process,
2368 added ';' as an escape to auto-quote the whole line without
2372 added ';' as an escape to auto-quote the whole line without
2369 splitting its arguments. Thanks to a report by Jerry McRae
2373 splitting its arguments. Thanks to a report by Jerry McRae
2370 <qrs0xyc02-AT-sneakemail.com>.
2374 <qrs0xyc02-AT-sneakemail.com>.
2371
2375
2372 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2376 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2373 possible crashes caused by a TokenError. Reported by Ed Schofield
2377 possible crashes caused by a TokenError. Reported by Ed Schofield
2374 <schofield-AT-ftw.at>.
2378 <schofield-AT-ftw.at>.
2375
2379
2376 2005-05-06 Fernando Perez <fperez@colorado.edu>
2380 2005-05-06 Fernando Perez <fperez@colorado.edu>
2377
2381
2378 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2382 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2379
2383
2380 2005-04-29 Fernando Perez <fperez@colorado.edu>
2384 2005-04-29 Fernando Perez <fperez@colorado.edu>
2381
2385
2382 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2386 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2383 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2387 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2384 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2388 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2385 which provides support for Qt interactive usage (similar to the
2389 which provides support for Qt interactive usage (similar to the
2386 existing one for WX and GTK). This had been often requested.
2390 existing one for WX and GTK). This had been often requested.
2387
2391
2388 2005-04-14 *** Released version 0.6.13
2392 2005-04-14 *** Released version 0.6.13
2389
2393
2390 2005-04-08 Fernando Perez <fperez@colorado.edu>
2394 2005-04-08 Fernando Perez <fperez@colorado.edu>
2391
2395
2392 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2396 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2393 from _ofind, which gets called on almost every input line. Now,
2397 from _ofind, which gets called on almost every input line. Now,
2394 we only try to get docstrings if they are actually going to be
2398 we only try to get docstrings if they are actually going to be
2395 used (the overhead of fetching unnecessary docstrings can be
2399 used (the overhead of fetching unnecessary docstrings can be
2396 noticeable for certain objects, such as Pyro proxies).
2400 noticeable for certain objects, such as Pyro proxies).
2397
2401
2398 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2402 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2399 for completers. For some reason I had been passing them the state
2403 for completers. For some reason I had been passing them the state
2400 variable, which completers never actually need, and was in
2404 variable, which completers never actually need, and was in
2401 conflict with the rlcompleter API. Custom completers ONLY need to
2405 conflict with the rlcompleter API. Custom completers ONLY need to
2402 take the text parameter.
2406 take the text parameter.
2403
2407
2404 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2408 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2405 work correctly in pysh. I've also moved all the logic which used
2409 work correctly in pysh. I've also moved all the logic which used
2406 to be in pysh.py here, which will prevent problems with future
2410 to be in pysh.py here, which will prevent problems with future
2407 upgrades. However, this time I must warn users to update their
2411 upgrades. However, this time I must warn users to update their
2408 pysh profile to include the line
2412 pysh profile to include the line
2409
2413
2410 import_all IPython.Extensions.InterpreterExec
2414 import_all IPython.Extensions.InterpreterExec
2411
2415
2412 because otherwise things won't work for them. They MUST also
2416 because otherwise things won't work for them. They MUST also
2413 delete pysh.py and the line
2417 delete pysh.py and the line
2414
2418
2415 execfile pysh.py
2419 execfile pysh.py
2416
2420
2417 from their ipythonrc-pysh.
2421 from their ipythonrc-pysh.
2418
2422
2419 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2423 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2420 robust in the face of objects whose dir() returns non-strings
2424 robust in the face of objects whose dir() returns non-strings
2421 (which it shouldn't, but some broken libs like ITK do). Thanks to
2425 (which it shouldn't, but some broken libs like ITK do). Thanks to
2422 a patch by John Hunter (implemented differently, though). Also
2426 a patch by John Hunter (implemented differently, though). Also
2423 minor improvements by using .extend instead of + on lists.
2427 minor improvements by using .extend instead of + on lists.
2424
2428
2425 * pysh.py:
2429 * pysh.py:
2426
2430
2427 2005-04-06 Fernando Perez <fperez@colorado.edu>
2431 2005-04-06 Fernando Perez <fperez@colorado.edu>
2428
2432
2429 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2433 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2430 by default, so that all users benefit from it. Those who don't
2434 by default, so that all users benefit from it. Those who don't
2431 want it can still turn it off.
2435 want it can still turn it off.
2432
2436
2433 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2437 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2434 config file, I'd forgotten about this, so users were getting it
2438 config file, I'd forgotten about this, so users were getting it
2435 off by default.
2439 off by default.
2436
2440
2437 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2441 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2438 consistency. Now magics can be called in multiline statements,
2442 consistency. Now magics can be called in multiline statements,
2439 and python variables can be expanded in magic calls via $var.
2443 and python variables can be expanded in magic calls via $var.
2440 This makes the magic system behave just like aliases or !system
2444 This makes the magic system behave just like aliases or !system
2441 calls.
2445 calls.
2442
2446
2443 2005-03-28 Fernando Perez <fperez@colorado.edu>
2447 2005-03-28 Fernando Perez <fperez@colorado.edu>
2444
2448
2445 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2449 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2446 expensive string additions for building command. Add support for
2450 expensive string additions for building command. Add support for
2447 trailing ';' when autocall is used.
2451 trailing ';' when autocall is used.
2448
2452
2449 2005-03-26 Fernando Perez <fperez@colorado.edu>
2453 2005-03-26 Fernando Perez <fperez@colorado.edu>
2450
2454
2451 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2455 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2452 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2456 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2453 ipython.el robust against prompts with any number of spaces
2457 ipython.el robust against prompts with any number of spaces
2454 (including 0) after the ':' character.
2458 (including 0) after the ':' character.
2455
2459
2456 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2460 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2457 continuation prompt, which misled users to think the line was
2461 continuation prompt, which misled users to think the line was
2458 already indented. Closes debian Bug#300847, reported to me by
2462 already indented. Closes debian Bug#300847, reported to me by
2459 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2463 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2460
2464
2461 2005-03-23 Fernando Perez <fperez@colorado.edu>
2465 2005-03-23 Fernando Perez <fperez@colorado.edu>
2462
2466
2463 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2467 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2464 properly aligned if they have embedded newlines.
2468 properly aligned if they have embedded newlines.
2465
2469
2466 * IPython/iplib.py (runlines): Add a public method to expose
2470 * IPython/iplib.py (runlines): Add a public method to expose
2467 IPython's code execution machinery, so that users can run strings
2471 IPython's code execution machinery, so that users can run strings
2468 as if they had been typed at the prompt interactively.
2472 as if they had been typed at the prompt interactively.
2469 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2473 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2470 methods which can call the system shell, but with python variable
2474 methods which can call the system shell, but with python variable
2471 expansion. The three such methods are: __IPYTHON__.system,
2475 expansion. The three such methods are: __IPYTHON__.system,
2472 .getoutput and .getoutputerror. These need to be documented in a
2476 .getoutput and .getoutputerror. These need to be documented in a
2473 'public API' section (to be written) of the manual.
2477 'public API' section (to be written) of the manual.
2474
2478
2475 2005-03-20 Fernando Perez <fperez@colorado.edu>
2479 2005-03-20 Fernando Perez <fperez@colorado.edu>
2476
2480
2477 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2481 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2478 for custom exception handling. This is quite powerful, and it
2482 for custom exception handling. This is quite powerful, and it
2479 allows for user-installable exception handlers which can trap
2483 allows for user-installable exception handlers which can trap
2480 custom exceptions at runtime and treat them separately from
2484 custom exceptions at runtime and treat them separately from
2481 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2485 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2482 Mantegazza <mantegazza-AT-ill.fr>.
2486 Mantegazza <mantegazza-AT-ill.fr>.
2483 (InteractiveShell.set_custom_completer): public API function to
2487 (InteractiveShell.set_custom_completer): public API function to
2484 add new completers at runtime.
2488 add new completers at runtime.
2485
2489
2486 2005-03-19 Fernando Perez <fperez@colorado.edu>
2490 2005-03-19 Fernando Perez <fperez@colorado.edu>
2487
2491
2488 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2492 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2489 allow objects which provide their docstrings via non-standard
2493 allow objects which provide their docstrings via non-standard
2490 mechanisms (like Pyro proxies) to still be inspected by ipython's
2494 mechanisms (like Pyro proxies) to still be inspected by ipython's
2491 ? system.
2495 ? system.
2492
2496
2493 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2497 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2494 automatic capture system. I tried quite hard to make it work
2498 automatic capture system. I tried quite hard to make it work
2495 reliably, and simply failed. I tried many combinations with the
2499 reliably, and simply failed. I tried many combinations with the
2496 subprocess module, but eventually nothing worked in all needed
2500 subprocess module, but eventually nothing worked in all needed
2497 cases (not blocking stdin for the child, duplicating stdout
2501 cases (not blocking stdin for the child, duplicating stdout
2498 without blocking, etc). The new %sc/%sx still do capture to these
2502 without blocking, etc). The new %sc/%sx still do capture to these
2499 magical list/string objects which make shell use much more
2503 magical list/string objects which make shell use much more
2500 conveninent, so not all is lost.
2504 conveninent, so not all is lost.
2501
2505
2502 XXX - FIX MANUAL for the change above!
2506 XXX - FIX MANUAL for the change above!
2503
2507
2504 (runsource): I copied code.py's runsource() into ipython to modify
2508 (runsource): I copied code.py's runsource() into ipython to modify
2505 it a bit. Now the code object and source to be executed are
2509 it a bit. Now the code object and source to be executed are
2506 stored in ipython. This makes this info accessible to third-party
2510 stored in ipython. This makes this info accessible to third-party
2507 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2511 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2508 Mantegazza <mantegazza-AT-ill.fr>.
2512 Mantegazza <mantegazza-AT-ill.fr>.
2509
2513
2510 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2514 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2511 history-search via readline (like C-p/C-n). I'd wanted this for a
2515 history-search via readline (like C-p/C-n). I'd wanted this for a
2512 long time, but only recently found out how to do it. For users
2516 long time, but only recently found out how to do it. For users
2513 who already have their ipythonrc files made and want this, just
2517 who already have their ipythonrc files made and want this, just
2514 add:
2518 add:
2515
2519
2516 readline_parse_and_bind "\e[A": history-search-backward
2520 readline_parse_and_bind "\e[A": history-search-backward
2517 readline_parse_and_bind "\e[B": history-search-forward
2521 readline_parse_and_bind "\e[B": history-search-forward
2518
2522
2519 2005-03-18 Fernando Perez <fperez@colorado.edu>
2523 2005-03-18 Fernando Perez <fperez@colorado.edu>
2520
2524
2521 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2525 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2522 LSString and SList classes which allow transparent conversions
2526 LSString and SList classes which allow transparent conversions
2523 between list mode and whitespace-separated string.
2527 between list mode and whitespace-separated string.
2524 (magic_r): Fix recursion problem in %r.
2528 (magic_r): Fix recursion problem in %r.
2525
2529
2526 * IPython/genutils.py (LSString): New class to be used for
2530 * IPython/genutils.py (LSString): New class to be used for
2527 automatic storage of the results of all alias/system calls in _o
2531 automatic storage of the results of all alias/system calls in _o
2528 and _e (stdout/err). These provide a .l/.list attribute which
2532 and _e (stdout/err). These provide a .l/.list attribute which
2529 does automatic splitting on newlines. This means that for most
2533 does automatic splitting on newlines. This means that for most
2530 uses, you'll never need to do capturing of output with %sc/%sx
2534 uses, you'll never need to do capturing of output with %sc/%sx
2531 anymore, since ipython keeps this always done for you. Note that
2535 anymore, since ipython keeps this always done for you. Note that
2532 only the LAST results are stored, the _o/e variables are
2536 only the LAST results are stored, the _o/e variables are
2533 overwritten on each call. If you need to save their contents
2537 overwritten on each call. If you need to save their contents
2534 further, simply bind them to any other name.
2538 further, simply bind them to any other name.
2535
2539
2536 2005-03-17 Fernando Perez <fperez@colorado.edu>
2540 2005-03-17 Fernando Perez <fperez@colorado.edu>
2537
2541
2538 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2542 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2539 prompt namespace handling.
2543 prompt namespace handling.
2540
2544
2541 2005-03-16 Fernando Perez <fperez@colorado.edu>
2545 2005-03-16 Fernando Perez <fperez@colorado.edu>
2542
2546
2543 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2547 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2544 classic prompts to be '>>> ' (final space was missing, and it
2548 classic prompts to be '>>> ' (final space was missing, and it
2545 trips the emacs python mode).
2549 trips the emacs python mode).
2546 (BasePrompt.__str__): Added safe support for dynamic prompt
2550 (BasePrompt.__str__): Added safe support for dynamic prompt
2547 strings. Now you can set your prompt string to be '$x', and the
2551 strings. Now you can set your prompt string to be '$x', and the
2548 value of x will be printed from your interactive namespace. The
2552 value of x will be printed from your interactive namespace. The
2549 interpolation syntax includes the full Itpl support, so
2553 interpolation syntax includes the full Itpl support, so
2550 ${foo()+x+bar()} is a valid prompt string now, and the function
2554 ${foo()+x+bar()} is a valid prompt string now, and the function
2551 calls will be made at runtime.
2555 calls will be made at runtime.
2552
2556
2553 2005-03-15 Fernando Perez <fperez@colorado.edu>
2557 2005-03-15 Fernando Perez <fperez@colorado.edu>
2554
2558
2555 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2559 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2556 avoid name clashes in pylab. %hist still works, it just forwards
2560 avoid name clashes in pylab. %hist still works, it just forwards
2557 the call to %history.
2561 the call to %history.
2558
2562
2559 2005-03-02 *** Released version 0.6.12
2563 2005-03-02 *** Released version 0.6.12
2560
2564
2561 2005-03-02 Fernando Perez <fperez@colorado.edu>
2565 2005-03-02 Fernando Perez <fperez@colorado.edu>
2562
2566
2563 * IPython/iplib.py (handle_magic): log magic calls properly as
2567 * IPython/iplib.py (handle_magic): log magic calls properly as
2564 ipmagic() function calls.
2568 ipmagic() function calls.
2565
2569
2566 * IPython/Magic.py (magic_time): Improved %time to support
2570 * IPython/Magic.py (magic_time): Improved %time to support
2567 statements and provide wall-clock as well as CPU time.
2571 statements and provide wall-clock as well as CPU time.
2568
2572
2569 2005-02-27 Fernando Perez <fperez@colorado.edu>
2573 2005-02-27 Fernando Perez <fperez@colorado.edu>
2570
2574
2571 * IPython/hooks.py: New hooks module, to expose user-modifiable
2575 * IPython/hooks.py: New hooks module, to expose user-modifiable
2572 IPython functionality in a clean manner. For now only the editor
2576 IPython functionality in a clean manner. For now only the editor
2573 hook is actually written, and other thigns which I intend to turn
2577 hook is actually written, and other thigns which I intend to turn
2574 into proper hooks aren't yet there. The display and prefilter
2578 into proper hooks aren't yet there. The display and prefilter
2575 stuff, for example, should be hooks. But at least now the
2579 stuff, for example, should be hooks. But at least now the
2576 framework is in place, and the rest can be moved here with more
2580 framework is in place, and the rest can be moved here with more
2577 time later. IPython had had a .hooks variable for a long time for
2581 time later. IPython had had a .hooks variable for a long time for
2578 this purpose, but I'd never actually used it for anything.
2582 this purpose, but I'd never actually used it for anything.
2579
2583
2580 2005-02-26 Fernando Perez <fperez@colorado.edu>
2584 2005-02-26 Fernando Perez <fperez@colorado.edu>
2581
2585
2582 * IPython/ipmaker.py (make_IPython): make the default ipython
2586 * IPython/ipmaker.py (make_IPython): make the default ipython
2583 directory be called _ipython under win32, to follow more the
2587 directory be called _ipython under win32, to follow more the
2584 naming peculiarities of that platform (where buggy software like
2588 naming peculiarities of that platform (where buggy software like
2585 Visual Sourcesafe breaks with .named directories). Reported by
2589 Visual Sourcesafe breaks with .named directories). Reported by
2586 Ville Vainio.
2590 Ville Vainio.
2587
2591
2588 2005-02-23 Fernando Perez <fperez@colorado.edu>
2592 2005-02-23 Fernando Perez <fperez@colorado.edu>
2589
2593
2590 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2594 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2591 auto_aliases for win32 which were causing problems. Users can
2595 auto_aliases for win32 which were causing problems. Users can
2592 define the ones they personally like.
2596 define the ones they personally like.
2593
2597
2594 2005-02-21 Fernando Perez <fperez@colorado.edu>
2598 2005-02-21 Fernando Perez <fperez@colorado.edu>
2595
2599
2596 * IPython/Magic.py (magic_time): new magic to time execution of
2600 * IPython/Magic.py (magic_time): new magic to time execution of
2597 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2601 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2598
2602
2599 2005-02-19 Fernando Perez <fperez@colorado.edu>
2603 2005-02-19 Fernando Perez <fperez@colorado.edu>
2600
2604
2601 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2605 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2602 into keys (for prompts, for example).
2606 into keys (for prompts, for example).
2603
2607
2604 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2608 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2605 prompts in case users want them. This introduces a small behavior
2609 prompts in case users want them. This introduces a small behavior
2606 change: ipython does not automatically add a space to all prompts
2610 change: ipython does not automatically add a space to all prompts
2607 anymore. To get the old prompts with a space, users should add it
2611 anymore. To get the old prompts with a space, users should add it
2608 manually to their ipythonrc file, so for example prompt_in1 should
2612 manually to their ipythonrc file, so for example prompt_in1 should
2609 now read 'In [\#]: ' instead of 'In [\#]:'.
2613 now read 'In [\#]: ' instead of 'In [\#]:'.
2610 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2614 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2611 file) to control left-padding of secondary prompts.
2615 file) to control left-padding of secondary prompts.
2612
2616
2613 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2617 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2614 the profiler can't be imported. Fix for Debian, which removed
2618 the profiler can't be imported. Fix for Debian, which removed
2615 profile.py because of License issues. I applied a slightly
2619 profile.py because of License issues. I applied a slightly
2616 modified version of the original Debian patch at
2620 modified version of the original Debian patch at
2617 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2621 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2618
2622
2619 2005-02-17 Fernando Perez <fperez@colorado.edu>
2623 2005-02-17 Fernando Perez <fperez@colorado.edu>
2620
2624
2621 * IPython/genutils.py (native_line_ends): Fix bug which would
2625 * IPython/genutils.py (native_line_ends): Fix bug which would
2622 cause improper line-ends under win32 b/c I was not opening files
2626 cause improper line-ends under win32 b/c I was not opening files
2623 in binary mode. Bug report and fix thanks to Ville.
2627 in binary mode. Bug report and fix thanks to Ville.
2624
2628
2625 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2629 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2626 trying to catch spurious foo[1] autocalls. My fix actually broke
2630 trying to catch spurious foo[1] autocalls. My fix actually broke
2627 ',/' autoquote/call with explicit escape (bad regexp).
2631 ',/' autoquote/call with explicit escape (bad regexp).
2628
2632
2629 2005-02-15 *** Released version 0.6.11
2633 2005-02-15 *** Released version 0.6.11
2630
2634
2631 2005-02-14 Fernando Perez <fperez@colorado.edu>
2635 2005-02-14 Fernando Perez <fperez@colorado.edu>
2632
2636
2633 * IPython/background_jobs.py: New background job management
2637 * IPython/background_jobs.py: New background job management
2634 subsystem. This is implemented via a new set of classes, and
2638 subsystem. This is implemented via a new set of classes, and
2635 IPython now provides a builtin 'jobs' object for background job
2639 IPython now provides a builtin 'jobs' object for background job
2636 execution. A convenience %bg magic serves as a lightweight
2640 execution. A convenience %bg magic serves as a lightweight
2637 frontend for starting the more common type of calls. This was
2641 frontend for starting the more common type of calls. This was
2638 inspired by discussions with B. Granger and the BackgroundCommand
2642 inspired by discussions with B. Granger and the BackgroundCommand
2639 class described in the book Python Scripting for Computational
2643 class described in the book Python Scripting for Computational
2640 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2644 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2641 (although ultimately no code from this text was used, as IPython's
2645 (although ultimately no code from this text was used, as IPython's
2642 system is a separate implementation).
2646 system is a separate implementation).
2643
2647
2644 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2648 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2645 to control the completion of single/double underscore names
2649 to control the completion of single/double underscore names
2646 separately. As documented in the example ipytonrc file, the
2650 separately. As documented in the example ipytonrc file, the
2647 readline_omit__names variable can now be set to 2, to omit even
2651 readline_omit__names variable can now be set to 2, to omit even
2648 single underscore names. Thanks to a patch by Brian Wong
2652 single underscore names. Thanks to a patch by Brian Wong
2649 <BrianWong-AT-AirgoNetworks.Com>.
2653 <BrianWong-AT-AirgoNetworks.Com>.
2650 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2654 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2651 be autocalled as foo([1]) if foo were callable. A problem for
2655 be autocalled as foo([1]) if foo were callable. A problem for
2652 things which are both callable and implement __getitem__.
2656 things which are both callable and implement __getitem__.
2653 (init_readline): Fix autoindentation for win32. Thanks to a patch
2657 (init_readline): Fix autoindentation for win32. Thanks to a patch
2654 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2658 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2655
2659
2656 2005-02-12 Fernando Perez <fperez@colorado.edu>
2660 2005-02-12 Fernando Perez <fperez@colorado.edu>
2657
2661
2658 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2662 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2659 which I had written long ago to sort out user error messages which
2663 which I had written long ago to sort out user error messages which
2660 may occur during startup. This seemed like a good idea initially,
2664 may occur during startup. This seemed like a good idea initially,
2661 but it has proven a disaster in retrospect. I don't want to
2665 but it has proven a disaster in retrospect. I don't want to
2662 change much code for now, so my fix is to set the internal 'debug'
2666 change much code for now, so my fix is to set the internal 'debug'
2663 flag to true everywhere, whose only job was precisely to control
2667 flag to true everywhere, whose only job was precisely to control
2664 this subsystem. This closes issue 28 (as well as avoiding all
2668 this subsystem. This closes issue 28 (as well as avoiding all
2665 sorts of strange hangups which occur from time to time).
2669 sorts of strange hangups which occur from time to time).
2666
2670
2667 2005-02-07 Fernando Perez <fperez@colorado.edu>
2671 2005-02-07 Fernando Perez <fperez@colorado.edu>
2668
2672
2669 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2673 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2670 previous call produced a syntax error.
2674 previous call produced a syntax error.
2671
2675
2672 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2676 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2673 classes without constructor.
2677 classes without constructor.
2674
2678
2675 2005-02-06 Fernando Perez <fperez@colorado.edu>
2679 2005-02-06 Fernando Perez <fperez@colorado.edu>
2676
2680
2677 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2681 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2678 completions with the results of each matcher, so we return results
2682 completions with the results of each matcher, so we return results
2679 to the user from all namespaces. This breaks with ipython
2683 to the user from all namespaces. This breaks with ipython
2680 tradition, but I think it's a nicer behavior. Now you get all
2684 tradition, but I think it's a nicer behavior. Now you get all
2681 possible completions listed, from all possible namespaces (python,
2685 possible completions listed, from all possible namespaces (python,
2682 filesystem, magics...) After a request by John Hunter
2686 filesystem, magics...) After a request by John Hunter
2683 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2687 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2684
2688
2685 2005-02-05 Fernando Perez <fperez@colorado.edu>
2689 2005-02-05 Fernando Perez <fperez@colorado.edu>
2686
2690
2687 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2691 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2688 the call had quote characters in it (the quotes were stripped).
2692 the call had quote characters in it (the quotes were stripped).
2689
2693
2690 2005-01-31 Fernando Perez <fperez@colorado.edu>
2694 2005-01-31 Fernando Perez <fperez@colorado.edu>
2691
2695
2692 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2696 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2693 Itpl.itpl() to make the code more robust against psyco
2697 Itpl.itpl() to make the code more robust against psyco
2694 optimizations.
2698 optimizations.
2695
2699
2696 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2700 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2697 of causing an exception. Quicker, cleaner.
2701 of causing an exception. Quicker, cleaner.
2698
2702
2699 2005-01-28 Fernando Perez <fperez@colorado.edu>
2703 2005-01-28 Fernando Perez <fperez@colorado.edu>
2700
2704
2701 * scripts/ipython_win_post_install.py (install): hardcode
2705 * scripts/ipython_win_post_install.py (install): hardcode
2702 sys.prefix+'python.exe' as the executable path. It turns out that
2706 sys.prefix+'python.exe' as the executable path. It turns out that
2703 during the post-installation run, sys.executable resolves to the
2707 during the post-installation run, sys.executable resolves to the
2704 name of the binary installer! I should report this as a distutils
2708 name of the binary installer! I should report this as a distutils
2705 bug, I think. I updated the .10 release with this tiny fix, to
2709 bug, I think. I updated the .10 release with this tiny fix, to
2706 avoid annoying the lists further.
2710 avoid annoying the lists further.
2707
2711
2708 2005-01-27 *** Released version 0.6.10
2712 2005-01-27 *** Released version 0.6.10
2709
2713
2710 2005-01-27 Fernando Perez <fperez@colorado.edu>
2714 2005-01-27 Fernando Perez <fperez@colorado.edu>
2711
2715
2712 * IPython/numutils.py (norm): Added 'inf' as optional name for
2716 * IPython/numutils.py (norm): Added 'inf' as optional name for
2713 L-infinity norm, included references to mathworld.com for vector
2717 L-infinity norm, included references to mathworld.com for vector
2714 norm definitions.
2718 norm definitions.
2715 (amin/amax): added amin/amax for array min/max. Similar to what
2719 (amin/amax): added amin/amax for array min/max. Similar to what
2716 pylab ships with after the recent reorganization of names.
2720 pylab ships with after the recent reorganization of names.
2717 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2721 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2718
2722
2719 * ipython.el: committed Alex's recent fixes and improvements.
2723 * ipython.el: committed Alex's recent fixes and improvements.
2720 Tested with python-mode from CVS, and it looks excellent. Since
2724 Tested with python-mode from CVS, and it looks excellent. Since
2721 python-mode hasn't released anything in a while, I'm temporarily
2725 python-mode hasn't released anything in a while, I'm temporarily
2722 putting a copy of today's CVS (v 4.70) of python-mode in:
2726 putting a copy of today's CVS (v 4.70) of python-mode in:
2723 http://ipython.scipy.org/tmp/python-mode.el
2727 http://ipython.scipy.org/tmp/python-mode.el
2724
2728
2725 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2729 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2726 sys.executable for the executable name, instead of assuming it's
2730 sys.executable for the executable name, instead of assuming it's
2727 called 'python.exe' (the post-installer would have produced broken
2731 called 'python.exe' (the post-installer would have produced broken
2728 setups on systems with a differently named python binary).
2732 setups on systems with a differently named python binary).
2729
2733
2730 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2734 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2731 references to os.linesep, to make the code more
2735 references to os.linesep, to make the code more
2732 platform-independent. This is also part of the win32 coloring
2736 platform-independent. This is also part of the win32 coloring
2733 fixes.
2737 fixes.
2734
2738
2735 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2739 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2736 lines, which actually cause coloring bugs because the length of
2740 lines, which actually cause coloring bugs because the length of
2737 the line is very difficult to correctly compute with embedded
2741 the line is very difficult to correctly compute with embedded
2738 escapes. This was the source of all the coloring problems under
2742 escapes. This was the source of all the coloring problems under
2739 Win32. I think that _finally_, Win32 users have a properly
2743 Win32. I think that _finally_, Win32 users have a properly
2740 working ipython in all respects. This would never have happened
2744 working ipython in all respects. This would never have happened
2741 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2745 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2742
2746
2743 2005-01-26 *** Released version 0.6.9
2747 2005-01-26 *** Released version 0.6.9
2744
2748
2745 2005-01-25 Fernando Perez <fperez@colorado.edu>
2749 2005-01-25 Fernando Perez <fperez@colorado.edu>
2746
2750
2747 * setup.py: finally, we have a true Windows installer, thanks to
2751 * setup.py: finally, we have a true Windows installer, thanks to
2748 the excellent work of Viktor Ransmayr
2752 the excellent work of Viktor Ransmayr
2749 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2753 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2750 Windows users. The setup routine is quite a bit cleaner thanks to
2754 Windows users. The setup routine is quite a bit cleaner thanks to
2751 this, and the post-install script uses the proper functions to
2755 this, and the post-install script uses the proper functions to
2752 allow a clean de-installation using the standard Windows Control
2756 allow a clean de-installation using the standard Windows Control
2753 Panel.
2757 Panel.
2754
2758
2755 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2759 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2756 environment variable under all OSes (including win32) if
2760 environment variable under all OSes (including win32) if
2757 available. This will give consistency to win32 users who have set
2761 available. This will give consistency to win32 users who have set
2758 this variable for any reason. If os.environ['HOME'] fails, the
2762 this variable for any reason. If os.environ['HOME'] fails, the
2759 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2763 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2760
2764
2761 2005-01-24 Fernando Perez <fperez@colorado.edu>
2765 2005-01-24 Fernando Perez <fperez@colorado.edu>
2762
2766
2763 * IPython/numutils.py (empty_like): add empty_like(), similar to
2767 * IPython/numutils.py (empty_like): add empty_like(), similar to
2764 zeros_like() but taking advantage of the new empty() Numeric routine.
2768 zeros_like() but taking advantage of the new empty() Numeric routine.
2765
2769
2766 2005-01-23 *** Released version 0.6.8
2770 2005-01-23 *** Released version 0.6.8
2767
2771
2768 2005-01-22 Fernando Perez <fperez@colorado.edu>
2772 2005-01-22 Fernando Perez <fperez@colorado.edu>
2769
2773
2770 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2774 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2771 automatic show() calls. After discussing things with JDH, it
2775 automatic show() calls. After discussing things with JDH, it
2772 turns out there are too many corner cases where this can go wrong.
2776 turns out there are too many corner cases where this can go wrong.
2773 It's best not to try to be 'too smart', and simply have ipython
2777 It's best not to try to be 'too smart', and simply have ipython
2774 reproduce as much as possible the default behavior of a normal
2778 reproduce as much as possible the default behavior of a normal
2775 python shell.
2779 python shell.
2776
2780
2777 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2781 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2778 line-splitting regexp and _prefilter() to avoid calling getattr()
2782 line-splitting regexp and _prefilter() to avoid calling getattr()
2779 on assignments. This closes
2783 on assignments. This closes
2780 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2784 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2781 readline uses getattr(), so a simple <TAB> keypress is still
2785 readline uses getattr(), so a simple <TAB> keypress is still
2782 enough to trigger getattr() calls on an object.
2786 enough to trigger getattr() calls on an object.
2783
2787
2784 2005-01-21 Fernando Perez <fperez@colorado.edu>
2788 2005-01-21 Fernando Perez <fperez@colorado.edu>
2785
2789
2786 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2790 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2787 docstring under pylab so it doesn't mask the original.
2791 docstring under pylab so it doesn't mask the original.
2788
2792
2789 2005-01-21 *** Released version 0.6.7
2793 2005-01-21 *** Released version 0.6.7
2790
2794
2791 2005-01-21 Fernando Perez <fperez@colorado.edu>
2795 2005-01-21 Fernando Perez <fperez@colorado.edu>
2792
2796
2793 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2797 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2794 signal handling for win32 users in multithreaded mode.
2798 signal handling for win32 users in multithreaded mode.
2795
2799
2796 2005-01-17 Fernando Perez <fperez@colorado.edu>
2800 2005-01-17 Fernando Perez <fperez@colorado.edu>
2797
2801
2798 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2802 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2799 instances with no __init__. After a crash report by Norbert Nemec
2803 instances with no __init__. After a crash report by Norbert Nemec
2800 <Norbert-AT-nemec-online.de>.
2804 <Norbert-AT-nemec-online.de>.
2801
2805
2802 2005-01-14 Fernando Perez <fperez@colorado.edu>
2806 2005-01-14 Fernando Perez <fperez@colorado.edu>
2803
2807
2804 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2808 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2805 names for verbose exceptions, when multiple dotted names and the
2809 names for verbose exceptions, when multiple dotted names and the
2806 'parent' object were present on the same line.
2810 'parent' object were present on the same line.
2807
2811
2808 2005-01-11 Fernando Perez <fperez@colorado.edu>
2812 2005-01-11 Fernando Perez <fperez@colorado.edu>
2809
2813
2810 * IPython/genutils.py (flag_calls): new utility to trap and flag
2814 * IPython/genutils.py (flag_calls): new utility to trap and flag
2811 calls in functions. I need it to clean up matplotlib support.
2815 calls in functions. I need it to clean up matplotlib support.
2812 Also removed some deprecated code in genutils.
2816 Also removed some deprecated code in genutils.
2813
2817
2814 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2818 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2815 that matplotlib scripts called with %run, which don't call show()
2819 that matplotlib scripts called with %run, which don't call show()
2816 themselves, still have their plotting windows open.
2820 themselves, still have their plotting windows open.
2817
2821
2818 2005-01-05 Fernando Perez <fperez@colorado.edu>
2822 2005-01-05 Fernando Perez <fperez@colorado.edu>
2819
2823
2820 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2824 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2821 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2825 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2822
2826
2823 2004-12-19 Fernando Perez <fperez@colorado.edu>
2827 2004-12-19 Fernando Perez <fperez@colorado.edu>
2824
2828
2825 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2829 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2826 parent_runcode, which was an eyesore. The same result can be
2830 parent_runcode, which was an eyesore. The same result can be
2827 obtained with Python's regular superclass mechanisms.
2831 obtained with Python's regular superclass mechanisms.
2828
2832
2829 2004-12-17 Fernando Perez <fperez@colorado.edu>
2833 2004-12-17 Fernando Perez <fperez@colorado.edu>
2830
2834
2831 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2835 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2832 reported by Prabhu.
2836 reported by Prabhu.
2833 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2837 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2834 sys.stderr) instead of explicitly calling sys.stderr. This helps
2838 sys.stderr) instead of explicitly calling sys.stderr. This helps
2835 maintain our I/O abstractions clean, for future GUI embeddings.
2839 maintain our I/O abstractions clean, for future GUI embeddings.
2836
2840
2837 * IPython/genutils.py (info): added new utility for sys.stderr
2841 * IPython/genutils.py (info): added new utility for sys.stderr
2838 unified info message handling (thin wrapper around warn()).
2842 unified info message handling (thin wrapper around warn()).
2839
2843
2840 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2844 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2841 composite (dotted) names on verbose exceptions.
2845 composite (dotted) names on verbose exceptions.
2842 (VerboseTB.nullrepr): harden against another kind of errors which
2846 (VerboseTB.nullrepr): harden against another kind of errors which
2843 Python's inspect module can trigger, and which were crashing
2847 Python's inspect module can trigger, and which were crashing
2844 IPython. Thanks to a report by Marco Lombardi
2848 IPython. Thanks to a report by Marco Lombardi
2845 <mlombard-AT-ma010192.hq.eso.org>.
2849 <mlombard-AT-ma010192.hq.eso.org>.
2846
2850
2847 2004-12-13 *** Released version 0.6.6
2851 2004-12-13 *** Released version 0.6.6
2848
2852
2849 2004-12-12 Fernando Perez <fperez@colorado.edu>
2853 2004-12-12 Fernando Perez <fperez@colorado.edu>
2850
2854
2851 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2855 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2852 generated by pygtk upon initialization if it was built without
2856 generated by pygtk upon initialization if it was built without
2853 threads (for matplotlib users). After a crash reported by
2857 threads (for matplotlib users). After a crash reported by
2854 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2858 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2855
2859
2856 * IPython/ipmaker.py (make_IPython): fix small bug in the
2860 * IPython/ipmaker.py (make_IPython): fix small bug in the
2857 import_some parameter for multiple imports.
2861 import_some parameter for multiple imports.
2858
2862
2859 * IPython/iplib.py (ipmagic): simplified the interface of
2863 * IPython/iplib.py (ipmagic): simplified the interface of
2860 ipmagic() to take a single string argument, just as it would be
2864 ipmagic() to take a single string argument, just as it would be
2861 typed at the IPython cmd line.
2865 typed at the IPython cmd line.
2862 (ipalias): Added new ipalias() with an interface identical to
2866 (ipalias): Added new ipalias() with an interface identical to
2863 ipmagic(). This completes exposing a pure python interface to the
2867 ipmagic(). This completes exposing a pure python interface to the
2864 alias and magic system, which can be used in loops or more complex
2868 alias and magic system, which can be used in loops or more complex
2865 code where IPython's automatic line mangling is not active.
2869 code where IPython's automatic line mangling is not active.
2866
2870
2867 * IPython/genutils.py (timing): changed interface of timing to
2871 * IPython/genutils.py (timing): changed interface of timing to
2868 simply run code once, which is the most common case. timings()
2872 simply run code once, which is the most common case. timings()
2869 remains unchanged, for the cases where you want multiple runs.
2873 remains unchanged, for the cases where you want multiple runs.
2870
2874
2871 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2875 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2872 bug where Python2.2 crashes with exec'ing code which does not end
2876 bug where Python2.2 crashes with exec'ing code which does not end
2873 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2877 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2874 before.
2878 before.
2875
2879
2876 2004-12-10 Fernando Perez <fperez@colorado.edu>
2880 2004-12-10 Fernando Perez <fperez@colorado.edu>
2877
2881
2878 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2882 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2879 -t to -T, to accomodate the new -t flag in %run (the %run and
2883 -t to -T, to accomodate the new -t flag in %run (the %run and
2880 %prun options are kind of intermixed, and it's not easy to change
2884 %prun options are kind of intermixed, and it's not easy to change
2881 this with the limitations of python's getopt).
2885 this with the limitations of python's getopt).
2882
2886
2883 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2887 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2884 the execution of scripts. It's not as fine-tuned as timeit.py,
2888 the execution of scripts. It's not as fine-tuned as timeit.py,
2885 but it works from inside ipython (and under 2.2, which lacks
2889 but it works from inside ipython (and under 2.2, which lacks
2886 timeit.py). Optionally a number of runs > 1 can be given for
2890 timeit.py). Optionally a number of runs > 1 can be given for
2887 timing very short-running code.
2891 timing very short-running code.
2888
2892
2889 * IPython/genutils.py (uniq_stable): new routine which returns a
2893 * IPython/genutils.py (uniq_stable): new routine which returns a
2890 list of unique elements in any iterable, but in stable order of
2894 list of unique elements in any iterable, but in stable order of
2891 appearance. I needed this for the ultraTB fixes, and it's a handy
2895 appearance. I needed this for the ultraTB fixes, and it's a handy
2892 utility.
2896 utility.
2893
2897
2894 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2898 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2895 dotted names in Verbose exceptions. This had been broken since
2899 dotted names in Verbose exceptions. This had been broken since
2896 the very start, now x.y will properly be printed in a Verbose
2900 the very start, now x.y will properly be printed in a Verbose
2897 traceback, instead of x being shown and y appearing always as an
2901 traceback, instead of x being shown and y appearing always as an
2898 'undefined global'. Getting this to work was a bit tricky,
2902 'undefined global'. Getting this to work was a bit tricky,
2899 because by default python tokenizers are stateless. Saved by
2903 because by default python tokenizers are stateless. Saved by
2900 python's ability to easily add a bit of state to an arbitrary
2904 python's ability to easily add a bit of state to an arbitrary
2901 function (without needing to build a full-blown callable object).
2905 function (without needing to build a full-blown callable object).
2902
2906
2903 Also big cleanup of this code, which had horrendous runtime
2907 Also big cleanup of this code, which had horrendous runtime
2904 lookups of zillions of attributes for colorization. Moved all
2908 lookups of zillions of attributes for colorization. Moved all
2905 this code into a few templates, which make it cleaner and quicker.
2909 this code into a few templates, which make it cleaner and quicker.
2906
2910
2907 Printout quality was also improved for Verbose exceptions: one
2911 Printout quality was also improved for Verbose exceptions: one
2908 variable per line, and memory addresses are printed (this can be
2912 variable per line, and memory addresses are printed (this can be
2909 quite handy in nasty debugging situations, which is what Verbose
2913 quite handy in nasty debugging situations, which is what Verbose
2910 is for).
2914 is for).
2911
2915
2912 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2916 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2913 the command line as scripts to be loaded by embedded instances.
2917 the command line as scripts to be loaded by embedded instances.
2914 Doing so has the potential for an infinite recursion if there are
2918 Doing so has the potential for an infinite recursion if there are
2915 exceptions thrown in the process. This fixes a strange crash
2919 exceptions thrown in the process. This fixes a strange crash
2916 reported by Philippe MULLER <muller-AT-irit.fr>.
2920 reported by Philippe MULLER <muller-AT-irit.fr>.
2917
2921
2918 2004-12-09 Fernando Perez <fperez@colorado.edu>
2922 2004-12-09 Fernando Perez <fperez@colorado.edu>
2919
2923
2920 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2924 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2921 to reflect new names in matplotlib, which now expose the
2925 to reflect new names in matplotlib, which now expose the
2922 matlab-compatible interface via a pylab module instead of the
2926 matlab-compatible interface via a pylab module instead of the
2923 'matlab' name. The new code is backwards compatible, so users of
2927 'matlab' name. The new code is backwards compatible, so users of
2924 all matplotlib versions are OK. Patch by J. Hunter.
2928 all matplotlib versions are OK. Patch by J. Hunter.
2925
2929
2926 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2930 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2927 of __init__ docstrings for instances (class docstrings are already
2931 of __init__ docstrings for instances (class docstrings are already
2928 automatically printed). Instances with customized docstrings
2932 automatically printed). Instances with customized docstrings
2929 (indep. of the class) are also recognized and all 3 separate
2933 (indep. of the class) are also recognized and all 3 separate
2930 docstrings are printed (instance, class, constructor). After some
2934 docstrings are printed (instance, class, constructor). After some
2931 comments/suggestions by J. Hunter.
2935 comments/suggestions by J. Hunter.
2932
2936
2933 2004-12-05 Fernando Perez <fperez@colorado.edu>
2937 2004-12-05 Fernando Perez <fperez@colorado.edu>
2934
2938
2935 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2939 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2936 warnings when tab-completion fails and triggers an exception.
2940 warnings when tab-completion fails and triggers an exception.
2937
2941
2938 2004-12-03 Fernando Perez <fperez@colorado.edu>
2942 2004-12-03 Fernando Perez <fperez@colorado.edu>
2939
2943
2940 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2944 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2941 be triggered when using 'run -p'. An incorrect option flag was
2945 be triggered when using 'run -p'. An incorrect option flag was
2942 being set ('d' instead of 'D').
2946 being set ('d' instead of 'D').
2943 (manpage): fix missing escaped \- sign.
2947 (manpage): fix missing escaped \- sign.
2944
2948
2945 2004-11-30 *** Released version 0.6.5
2949 2004-11-30 *** Released version 0.6.5
2946
2950
2947 2004-11-30 Fernando Perez <fperez@colorado.edu>
2951 2004-11-30 Fernando Perez <fperez@colorado.edu>
2948
2952
2949 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2953 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2950 setting with -d option.
2954 setting with -d option.
2951
2955
2952 * setup.py (docfiles): Fix problem where the doc glob I was using
2956 * setup.py (docfiles): Fix problem where the doc glob I was using
2953 was COMPLETELY BROKEN. It was giving the right files by pure
2957 was COMPLETELY BROKEN. It was giving the right files by pure
2954 accident, but failed once I tried to include ipython.el. Note:
2958 accident, but failed once I tried to include ipython.el. Note:
2955 glob() does NOT allow you to do exclusion on multiple endings!
2959 glob() does NOT allow you to do exclusion on multiple endings!
2956
2960
2957 2004-11-29 Fernando Perez <fperez@colorado.edu>
2961 2004-11-29 Fernando Perez <fperez@colorado.edu>
2958
2962
2959 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2963 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2960 the manpage as the source. Better formatting & consistency.
2964 the manpage as the source. Better formatting & consistency.
2961
2965
2962 * IPython/Magic.py (magic_run): Added new -d option, to run
2966 * IPython/Magic.py (magic_run): Added new -d option, to run
2963 scripts under the control of the python pdb debugger. Note that
2967 scripts under the control of the python pdb debugger. Note that
2964 this required changing the %prun option -d to -D, to avoid a clash
2968 this required changing the %prun option -d to -D, to avoid a clash
2965 (since %run must pass options to %prun, and getopt is too dumb to
2969 (since %run must pass options to %prun, and getopt is too dumb to
2966 handle options with string values with embedded spaces). Thanks
2970 handle options with string values with embedded spaces). Thanks
2967 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2971 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2968 (magic_who_ls): added type matching to %who and %whos, so that one
2972 (magic_who_ls): added type matching to %who and %whos, so that one
2969 can filter their output to only include variables of certain
2973 can filter their output to only include variables of certain
2970 types. Another suggestion by Matthew.
2974 types. Another suggestion by Matthew.
2971 (magic_whos): Added memory summaries in kb and Mb for arrays.
2975 (magic_whos): Added memory summaries in kb and Mb for arrays.
2972 (magic_who): Improve formatting (break lines every 9 vars).
2976 (magic_who): Improve formatting (break lines every 9 vars).
2973
2977
2974 2004-11-28 Fernando Perez <fperez@colorado.edu>
2978 2004-11-28 Fernando Perez <fperez@colorado.edu>
2975
2979
2976 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2980 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2977 cache when empty lines were present.
2981 cache when empty lines were present.
2978
2982
2979 2004-11-24 Fernando Perez <fperez@colorado.edu>
2983 2004-11-24 Fernando Perez <fperez@colorado.edu>
2980
2984
2981 * IPython/usage.py (__doc__): document the re-activated threading
2985 * IPython/usage.py (__doc__): document the re-activated threading
2982 options for WX and GTK.
2986 options for WX and GTK.
2983
2987
2984 2004-11-23 Fernando Perez <fperez@colorado.edu>
2988 2004-11-23 Fernando Perez <fperez@colorado.edu>
2985
2989
2986 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2990 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2987 the -wthread and -gthread options, along with a new -tk one to try
2991 the -wthread and -gthread options, along with a new -tk one to try
2988 and coordinate Tk threading with wx/gtk. The tk support is very
2992 and coordinate Tk threading with wx/gtk. The tk support is very
2989 platform dependent, since it seems to require Tcl and Tk to be
2993 platform dependent, since it seems to require Tcl and Tk to be
2990 built with threads (Fedora1/2 appears NOT to have it, but in
2994 built with threads (Fedora1/2 appears NOT to have it, but in
2991 Prabhu's Debian boxes it works OK). But even with some Tk
2995 Prabhu's Debian boxes it works OK). But even with some Tk
2992 limitations, this is a great improvement.
2996 limitations, this is a great improvement.
2993
2997
2994 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2998 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2995 info in user prompts. Patch by Prabhu.
2999 info in user prompts. Patch by Prabhu.
2996
3000
2997 2004-11-18 Fernando Perez <fperez@colorado.edu>
3001 2004-11-18 Fernando Perez <fperez@colorado.edu>
2998
3002
2999 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3003 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3000 EOFErrors and bail, to avoid infinite loops if a non-terminating
3004 EOFErrors and bail, to avoid infinite loops if a non-terminating
3001 file is fed into ipython. Patch submitted in issue 19 by user,
3005 file is fed into ipython. Patch submitted in issue 19 by user,
3002 many thanks.
3006 many thanks.
3003
3007
3004 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3008 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3005 autoquote/parens in continuation prompts, which can cause lots of
3009 autoquote/parens in continuation prompts, which can cause lots of
3006 problems. Closes roundup issue 20.
3010 problems. Closes roundup issue 20.
3007
3011
3008 2004-11-17 Fernando Perez <fperez@colorado.edu>
3012 2004-11-17 Fernando Perez <fperez@colorado.edu>
3009
3013
3010 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3014 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3011 reported as debian bug #280505. I'm not sure my local changelog
3015 reported as debian bug #280505. I'm not sure my local changelog
3012 entry has the proper debian format (Jack?).
3016 entry has the proper debian format (Jack?).
3013
3017
3014 2004-11-08 *** Released version 0.6.4
3018 2004-11-08 *** Released version 0.6.4
3015
3019
3016 2004-11-08 Fernando Perez <fperez@colorado.edu>
3020 2004-11-08 Fernando Perez <fperez@colorado.edu>
3017
3021
3018 * IPython/iplib.py (init_readline): Fix exit message for Windows
3022 * IPython/iplib.py (init_readline): Fix exit message for Windows
3019 when readline is active. Thanks to a report by Eric Jones
3023 when readline is active. Thanks to a report by Eric Jones
3020 <eric-AT-enthought.com>.
3024 <eric-AT-enthought.com>.
3021
3025
3022 2004-11-07 Fernando Perez <fperez@colorado.edu>
3026 2004-11-07 Fernando Perez <fperez@colorado.edu>
3023
3027
3024 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3028 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3025 sometimes seen by win2k/cygwin users.
3029 sometimes seen by win2k/cygwin users.
3026
3030
3027 2004-11-06 Fernando Perez <fperez@colorado.edu>
3031 2004-11-06 Fernando Perez <fperez@colorado.edu>
3028
3032
3029 * IPython/iplib.py (interact): Change the handling of %Exit from
3033 * IPython/iplib.py (interact): Change the handling of %Exit from
3030 trying to propagate a SystemExit to an internal ipython flag.
3034 trying to propagate a SystemExit to an internal ipython flag.
3031 This is less elegant than using Python's exception mechanism, but
3035 This is less elegant than using Python's exception mechanism, but
3032 I can't get that to work reliably with threads, so under -pylab
3036 I can't get that to work reliably with threads, so under -pylab
3033 %Exit was hanging IPython. Cross-thread exception handling is
3037 %Exit was hanging IPython. Cross-thread exception handling is
3034 really a bitch. Thaks to a bug report by Stephen Walton
3038 really a bitch. Thaks to a bug report by Stephen Walton
3035 <stephen.walton-AT-csun.edu>.
3039 <stephen.walton-AT-csun.edu>.
3036
3040
3037 2004-11-04 Fernando Perez <fperez@colorado.edu>
3041 2004-11-04 Fernando Perez <fperez@colorado.edu>
3038
3042
3039 * IPython/iplib.py (raw_input_original): store a pointer to the
3043 * IPython/iplib.py (raw_input_original): store a pointer to the
3040 true raw_input to harden against code which can modify it
3044 true raw_input to harden against code which can modify it
3041 (wx.py.PyShell does this and would otherwise crash ipython).
3045 (wx.py.PyShell does this and would otherwise crash ipython).
3042 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3046 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3043
3047
3044 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3048 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3045 Ctrl-C problem, which does not mess up the input line.
3049 Ctrl-C problem, which does not mess up the input line.
3046
3050
3047 2004-11-03 Fernando Perez <fperez@colorado.edu>
3051 2004-11-03 Fernando Perez <fperez@colorado.edu>
3048
3052
3049 * IPython/Release.py: Changed licensing to BSD, in all files.
3053 * IPython/Release.py: Changed licensing to BSD, in all files.
3050 (name): lowercase name for tarball/RPM release.
3054 (name): lowercase name for tarball/RPM release.
3051
3055
3052 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3056 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3053 use throughout ipython.
3057 use throughout ipython.
3054
3058
3055 * IPython/Magic.py (Magic._ofind): Switch to using the new
3059 * IPython/Magic.py (Magic._ofind): Switch to using the new
3056 OInspect.getdoc() function.
3060 OInspect.getdoc() function.
3057
3061
3058 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3062 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3059 of the line currently being canceled via Ctrl-C. It's extremely
3063 of the line currently being canceled via Ctrl-C. It's extremely
3060 ugly, but I don't know how to do it better (the problem is one of
3064 ugly, but I don't know how to do it better (the problem is one of
3061 handling cross-thread exceptions).
3065 handling cross-thread exceptions).
3062
3066
3063 2004-10-28 Fernando Perez <fperez@colorado.edu>
3067 2004-10-28 Fernando Perez <fperez@colorado.edu>
3064
3068
3065 * IPython/Shell.py (signal_handler): add signal handlers to trap
3069 * IPython/Shell.py (signal_handler): add signal handlers to trap
3066 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3070 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3067 report by Francesc Alted.
3071 report by Francesc Alted.
3068
3072
3069 2004-10-21 Fernando Perez <fperez@colorado.edu>
3073 2004-10-21 Fernando Perez <fperez@colorado.edu>
3070
3074
3071 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3075 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3072 to % for pysh syntax extensions.
3076 to % for pysh syntax extensions.
3073
3077
3074 2004-10-09 Fernando Perez <fperez@colorado.edu>
3078 2004-10-09 Fernando Perez <fperez@colorado.edu>
3075
3079
3076 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3080 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3077 arrays to print a more useful summary, without calling str(arr).
3081 arrays to print a more useful summary, without calling str(arr).
3078 This avoids the problem of extremely lengthy computations which
3082 This avoids the problem of extremely lengthy computations which
3079 occur if arr is large, and appear to the user as a system lockup
3083 occur if arr is large, and appear to the user as a system lockup
3080 with 100% cpu activity. After a suggestion by Kristian Sandberg
3084 with 100% cpu activity. After a suggestion by Kristian Sandberg
3081 <Kristian.Sandberg@colorado.edu>.
3085 <Kristian.Sandberg@colorado.edu>.
3082 (Magic.__init__): fix bug in global magic escapes not being
3086 (Magic.__init__): fix bug in global magic escapes not being
3083 correctly set.
3087 correctly set.
3084
3088
3085 2004-10-08 Fernando Perez <fperez@colorado.edu>
3089 2004-10-08 Fernando Perez <fperez@colorado.edu>
3086
3090
3087 * IPython/Magic.py (__license__): change to absolute imports of
3091 * IPython/Magic.py (__license__): change to absolute imports of
3088 ipython's own internal packages, to start adapting to the absolute
3092 ipython's own internal packages, to start adapting to the absolute
3089 import requirement of PEP-328.
3093 import requirement of PEP-328.
3090
3094
3091 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3095 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3092 files, and standardize author/license marks through the Release
3096 files, and standardize author/license marks through the Release
3093 module instead of having per/file stuff (except for files with
3097 module instead of having per/file stuff (except for files with
3094 particular licenses, like the MIT/PSF-licensed codes).
3098 particular licenses, like the MIT/PSF-licensed codes).
3095
3099
3096 * IPython/Debugger.py: remove dead code for python 2.1
3100 * IPython/Debugger.py: remove dead code for python 2.1
3097
3101
3098 2004-10-04 Fernando Perez <fperez@colorado.edu>
3102 2004-10-04 Fernando Perez <fperez@colorado.edu>
3099
3103
3100 * IPython/iplib.py (ipmagic): New function for accessing magics
3104 * IPython/iplib.py (ipmagic): New function for accessing magics
3101 via a normal python function call.
3105 via a normal python function call.
3102
3106
3103 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3107 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3104 from '@' to '%', to accomodate the new @decorator syntax of python
3108 from '@' to '%', to accomodate the new @decorator syntax of python
3105 2.4.
3109 2.4.
3106
3110
3107 2004-09-29 Fernando Perez <fperez@colorado.edu>
3111 2004-09-29 Fernando Perez <fperez@colorado.edu>
3108
3112
3109 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3113 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3110 matplotlib.use to prevent running scripts which try to switch
3114 matplotlib.use to prevent running scripts which try to switch
3111 interactive backends from within ipython. This will just crash
3115 interactive backends from within ipython. This will just crash
3112 the python interpreter, so we can't allow it (but a detailed error
3116 the python interpreter, so we can't allow it (but a detailed error
3113 is given to the user).
3117 is given to the user).
3114
3118
3115 2004-09-28 Fernando Perez <fperez@colorado.edu>
3119 2004-09-28 Fernando Perez <fperez@colorado.edu>
3116
3120
3117 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3121 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3118 matplotlib-related fixes so that using @run with non-matplotlib
3122 matplotlib-related fixes so that using @run with non-matplotlib
3119 scripts doesn't pop up spurious plot windows. This requires
3123 scripts doesn't pop up spurious plot windows. This requires
3120 matplotlib >= 0.63, where I had to make some changes as well.
3124 matplotlib >= 0.63, where I had to make some changes as well.
3121
3125
3122 * IPython/ipmaker.py (make_IPython): update version requirement to
3126 * IPython/ipmaker.py (make_IPython): update version requirement to
3123 python 2.2.
3127 python 2.2.
3124
3128
3125 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3129 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3126 banner arg for embedded customization.
3130 banner arg for embedded customization.
3127
3131
3128 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3132 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3129 explicit uses of __IP as the IPython's instance name. Now things
3133 explicit uses of __IP as the IPython's instance name. Now things
3130 are properly handled via the shell.name value. The actual code
3134 are properly handled via the shell.name value. The actual code
3131 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3135 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3132 is much better than before. I'll clean things completely when the
3136 is much better than before. I'll clean things completely when the
3133 magic stuff gets a real overhaul.
3137 magic stuff gets a real overhaul.
3134
3138
3135 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3139 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3136 minor changes to debian dir.
3140 minor changes to debian dir.
3137
3141
3138 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3142 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3139 pointer to the shell itself in the interactive namespace even when
3143 pointer to the shell itself in the interactive namespace even when
3140 a user-supplied dict is provided. This is needed for embedding
3144 a user-supplied dict is provided. This is needed for embedding
3141 purposes (found by tests with Michel Sanner).
3145 purposes (found by tests with Michel Sanner).
3142
3146
3143 2004-09-27 Fernando Perez <fperez@colorado.edu>
3147 2004-09-27 Fernando Perez <fperez@colorado.edu>
3144
3148
3145 * IPython/UserConfig/ipythonrc: remove []{} from
3149 * IPython/UserConfig/ipythonrc: remove []{} from
3146 readline_remove_delims, so that things like [modname.<TAB> do
3150 readline_remove_delims, so that things like [modname.<TAB> do
3147 proper completion. This disables [].TAB, but that's a less common
3151 proper completion. This disables [].TAB, but that's a less common
3148 case than module names in list comprehensions, for example.
3152 case than module names in list comprehensions, for example.
3149 Thanks to a report by Andrea Riciputi.
3153 Thanks to a report by Andrea Riciputi.
3150
3154
3151 2004-09-09 Fernando Perez <fperez@colorado.edu>
3155 2004-09-09 Fernando Perez <fperez@colorado.edu>
3152
3156
3153 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3157 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3154 blocking problems in win32 and osx. Fix by John.
3158 blocking problems in win32 and osx. Fix by John.
3155
3159
3156 2004-09-08 Fernando Perez <fperez@colorado.edu>
3160 2004-09-08 Fernando Perez <fperez@colorado.edu>
3157
3161
3158 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3162 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3159 for Win32 and OSX. Fix by John Hunter.
3163 for Win32 and OSX. Fix by John Hunter.
3160
3164
3161 2004-08-30 *** Released version 0.6.3
3165 2004-08-30 *** Released version 0.6.3
3162
3166
3163 2004-08-30 Fernando Perez <fperez@colorado.edu>
3167 2004-08-30 Fernando Perez <fperez@colorado.edu>
3164
3168
3165 * setup.py (isfile): Add manpages to list of dependent files to be
3169 * setup.py (isfile): Add manpages to list of dependent files to be
3166 updated.
3170 updated.
3167
3171
3168 2004-08-27 Fernando Perez <fperez@colorado.edu>
3172 2004-08-27 Fernando Perez <fperez@colorado.edu>
3169
3173
3170 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3174 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3171 for now. They don't really work with standalone WX/GTK code
3175 for now. They don't really work with standalone WX/GTK code
3172 (though matplotlib IS working fine with both of those backends).
3176 (though matplotlib IS working fine with both of those backends).
3173 This will neeed much more testing. I disabled most things with
3177 This will neeed much more testing. I disabled most things with
3174 comments, so turning it back on later should be pretty easy.
3178 comments, so turning it back on later should be pretty easy.
3175
3179
3176 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3180 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3177 autocalling of expressions like r'foo', by modifying the line
3181 autocalling of expressions like r'foo', by modifying the line
3178 split regexp. Closes
3182 split regexp. Closes
3179 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3183 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3180 Riley <ipythonbugs-AT-sabi.net>.
3184 Riley <ipythonbugs-AT-sabi.net>.
3181 (InteractiveShell.mainloop): honor --nobanner with banner
3185 (InteractiveShell.mainloop): honor --nobanner with banner
3182 extensions.
3186 extensions.
3183
3187
3184 * IPython/Shell.py: Significant refactoring of all classes, so
3188 * IPython/Shell.py: Significant refactoring of all classes, so
3185 that we can really support ALL matplotlib backends and threading
3189 that we can really support ALL matplotlib backends and threading
3186 models (John spotted a bug with Tk which required this). Now we
3190 models (John spotted a bug with Tk which required this). Now we
3187 should support single-threaded, WX-threads and GTK-threads, both
3191 should support single-threaded, WX-threads and GTK-threads, both
3188 for generic code and for matplotlib.
3192 for generic code and for matplotlib.
3189
3193
3190 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3194 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3191 -pylab, to simplify things for users. Will also remove the pylab
3195 -pylab, to simplify things for users. Will also remove the pylab
3192 profile, since now all of matplotlib configuration is directly
3196 profile, since now all of matplotlib configuration is directly
3193 handled here. This also reduces startup time.
3197 handled here. This also reduces startup time.
3194
3198
3195 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3199 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3196 shell wasn't being correctly called. Also in IPShellWX.
3200 shell wasn't being correctly called. Also in IPShellWX.
3197
3201
3198 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3202 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3199 fine-tune banner.
3203 fine-tune banner.
3200
3204
3201 * IPython/numutils.py (spike): Deprecate these spike functions,
3205 * IPython/numutils.py (spike): Deprecate these spike functions,
3202 delete (long deprecated) gnuplot_exec handler.
3206 delete (long deprecated) gnuplot_exec handler.
3203
3207
3204 2004-08-26 Fernando Perez <fperez@colorado.edu>
3208 2004-08-26 Fernando Perez <fperez@colorado.edu>
3205
3209
3206 * ipython.1: Update for threading options, plus some others which
3210 * ipython.1: Update for threading options, plus some others which
3207 were missing.
3211 were missing.
3208
3212
3209 * IPython/ipmaker.py (__call__): Added -wthread option for
3213 * IPython/ipmaker.py (__call__): Added -wthread option for
3210 wxpython thread handling. Make sure threading options are only
3214 wxpython thread handling. Make sure threading options are only
3211 valid at the command line.
3215 valid at the command line.
3212
3216
3213 * scripts/ipython: moved shell selection into a factory function
3217 * scripts/ipython: moved shell selection into a factory function
3214 in Shell.py, to keep the starter script to a minimum.
3218 in Shell.py, to keep the starter script to a minimum.
3215
3219
3216 2004-08-25 Fernando Perez <fperez@colorado.edu>
3220 2004-08-25 Fernando Perez <fperez@colorado.edu>
3217
3221
3218 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3222 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3219 John. Along with some recent changes he made to matplotlib, the
3223 John. Along with some recent changes he made to matplotlib, the
3220 next versions of both systems should work very well together.
3224 next versions of both systems should work very well together.
3221
3225
3222 2004-08-24 Fernando Perez <fperez@colorado.edu>
3226 2004-08-24 Fernando Perez <fperez@colorado.edu>
3223
3227
3224 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3228 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3225 tried to switch the profiling to using hotshot, but I'm getting
3229 tried to switch the profiling to using hotshot, but I'm getting
3226 strange errors from prof.runctx() there. I may be misreading the
3230 strange errors from prof.runctx() there. I may be misreading the
3227 docs, but it looks weird. For now the profiling code will
3231 docs, but it looks weird. For now the profiling code will
3228 continue to use the standard profiler.
3232 continue to use the standard profiler.
3229
3233
3230 2004-08-23 Fernando Perez <fperez@colorado.edu>
3234 2004-08-23 Fernando Perez <fperez@colorado.edu>
3231
3235
3232 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3236 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3233 threaded shell, by John Hunter. It's not quite ready yet, but
3237 threaded shell, by John Hunter. It's not quite ready yet, but
3234 close.
3238 close.
3235
3239
3236 2004-08-22 Fernando Perez <fperez@colorado.edu>
3240 2004-08-22 Fernando Perez <fperez@colorado.edu>
3237
3241
3238 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3242 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3239 in Magic and ultraTB.
3243 in Magic and ultraTB.
3240
3244
3241 * ipython.1: document threading options in manpage.
3245 * ipython.1: document threading options in manpage.
3242
3246
3243 * scripts/ipython: Changed name of -thread option to -gthread,
3247 * scripts/ipython: Changed name of -thread option to -gthread,
3244 since this is GTK specific. I want to leave the door open for a
3248 since this is GTK specific. I want to leave the door open for a
3245 -wthread option for WX, which will most likely be necessary. This
3249 -wthread option for WX, which will most likely be necessary. This
3246 change affects usage and ipmaker as well.
3250 change affects usage and ipmaker as well.
3247
3251
3248 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3252 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3249 handle the matplotlib shell issues. Code by John Hunter
3253 handle the matplotlib shell issues. Code by John Hunter
3250 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3254 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3251 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3255 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3252 broken (and disabled for end users) for now, but it puts the
3256 broken (and disabled for end users) for now, but it puts the
3253 infrastructure in place.
3257 infrastructure in place.
3254
3258
3255 2004-08-21 Fernando Perez <fperez@colorado.edu>
3259 2004-08-21 Fernando Perez <fperez@colorado.edu>
3256
3260
3257 * ipythonrc-pylab: Add matplotlib support.
3261 * ipythonrc-pylab: Add matplotlib support.
3258
3262
3259 * matplotlib_config.py: new files for matplotlib support, part of
3263 * matplotlib_config.py: new files for matplotlib support, part of
3260 the pylab profile.
3264 the pylab profile.
3261
3265
3262 * IPython/usage.py (__doc__): documented the threading options.
3266 * IPython/usage.py (__doc__): documented the threading options.
3263
3267
3264 2004-08-20 Fernando Perez <fperez@colorado.edu>
3268 2004-08-20 Fernando Perez <fperez@colorado.edu>
3265
3269
3266 * ipython: Modified the main calling routine to handle the -thread
3270 * ipython: Modified the main calling routine to handle the -thread
3267 and -mpthread options. This needs to be done as a top-level hack,
3271 and -mpthread options. This needs to be done as a top-level hack,
3268 because it determines which class to instantiate for IPython
3272 because it determines which class to instantiate for IPython
3269 itself.
3273 itself.
3270
3274
3271 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3275 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3272 classes to support multithreaded GTK operation without blocking,
3276 classes to support multithreaded GTK operation without blocking,
3273 and matplotlib with all backends. This is a lot of still very
3277 and matplotlib with all backends. This is a lot of still very
3274 experimental code, and threads are tricky. So it may still have a
3278 experimental code, and threads are tricky. So it may still have a
3275 few rough edges... This code owes a lot to
3279 few rough edges... This code owes a lot to
3276 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3280 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3277 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3281 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3278 to John Hunter for all the matplotlib work.
3282 to John Hunter for all the matplotlib work.
3279
3283
3280 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3284 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3281 options for gtk thread and matplotlib support.
3285 options for gtk thread and matplotlib support.
3282
3286
3283 2004-08-16 Fernando Perez <fperez@colorado.edu>
3287 2004-08-16 Fernando Perez <fperez@colorado.edu>
3284
3288
3285 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3289 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3286 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3290 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3287 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3291 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3288
3292
3289 2004-08-11 Fernando Perez <fperez@colorado.edu>
3293 2004-08-11 Fernando Perez <fperez@colorado.edu>
3290
3294
3291 * setup.py (isfile): Fix build so documentation gets updated for
3295 * setup.py (isfile): Fix build so documentation gets updated for
3292 rpms (it was only done for .tgz builds).
3296 rpms (it was only done for .tgz builds).
3293
3297
3294 2004-08-10 Fernando Perez <fperez@colorado.edu>
3298 2004-08-10 Fernando Perez <fperez@colorado.edu>
3295
3299
3296 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3300 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3297
3301
3298 * iplib.py : Silence syntax error exceptions in tab-completion.
3302 * iplib.py : Silence syntax error exceptions in tab-completion.
3299
3303
3300 2004-08-05 Fernando Perez <fperez@colorado.edu>
3304 2004-08-05 Fernando Perez <fperez@colorado.edu>
3301
3305
3302 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3306 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3303 'color off' mark for continuation prompts. This was causing long
3307 'color off' mark for continuation prompts. This was causing long
3304 continuation lines to mis-wrap.
3308 continuation lines to mis-wrap.
3305
3309
3306 2004-08-01 Fernando Perez <fperez@colorado.edu>
3310 2004-08-01 Fernando Perez <fperez@colorado.edu>
3307
3311
3308 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3312 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3309 for building ipython to be a parameter. All this is necessary
3313 for building ipython to be a parameter. All this is necessary
3310 right now to have a multithreaded version, but this insane
3314 right now to have a multithreaded version, but this insane
3311 non-design will be cleaned up soon. For now, it's a hack that
3315 non-design will be cleaned up soon. For now, it's a hack that
3312 works.
3316 works.
3313
3317
3314 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3318 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3315 args in various places. No bugs so far, but it's a dangerous
3319 args in various places. No bugs so far, but it's a dangerous
3316 practice.
3320 practice.
3317
3321
3318 2004-07-31 Fernando Perez <fperez@colorado.edu>
3322 2004-07-31 Fernando Perez <fperez@colorado.edu>
3319
3323
3320 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3324 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3321 fix completion of files with dots in their names under most
3325 fix completion of files with dots in their names under most
3322 profiles (pysh was OK because the completion order is different).
3326 profiles (pysh was OK because the completion order is different).
3323
3327
3324 2004-07-27 Fernando Perez <fperez@colorado.edu>
3328 2004-07-27 Fernando Perez <fperez@colorado.edu>
3325
3329
3326 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3330 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3327 keywords manually, b/c the one in keyword.py was removed in python
3331 keywords manually, b/c the one in keyword.py was removed in python
3328 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3332 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3329 This is NOT a bug under python 2.3 and earlier.
3333 This is NOT a bug under python 2.3 and earlier.
3330
3334
3331 2004-07-26 Fernando Perez <fperez@colorado.edu>
3335 2004-07-26 Fernando Perez <fperez@colorado.edu>
3332
3336
3333 * IPython/ultraTB.py (VerboseTB.text): Add another
3337 * IPython/ultraTB.py (VerboseTB.text): Add another
3334 linecache.checkcache() call to try to prevent inspect.py from
3338 linecache.checkcache() call to try to prevent inspect.py from
3335 crashing under python 2.3. I think this fixes
3339 crashing under python 2.3. I think this fixes
3336 http://www.scipy.net/roundup/ipython/issue17.
3340 http://www.scipy.net/roundup/ipython/issue17.
3337
3341
3338 2004-07-26 *** Released version 0.6.2
3342 2004-07-26 *** Released version 0.6.2
3339
3343
3340 2004-07-26 Fernando Perez <fperez@colorado.edu>
3344 2004-07-26 Fernando Perez <fperez@colorado.edu>
3341
3345
3342 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3346 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3343 fail for any number.
3347 fail for any number.
3344 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3348 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3345 empty bookmarks.
3349 empty bookmarks.
3346
3350
3347 2004-07-26 *** Released version 0.6.1
3351 2004-07-26 *** Released version 0.6.1
3348
3352
3349 2004-07-26 Fernando Perez <fperez@colorado.edu>
3353 2004-07-26 Fernando Perez <fperez@colorado.edu>
3350
3354
3351 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3355 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3352
3356
3353 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3357 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3354 escaping '()[]{}' in filenames.
3358 escaping '()[]{}' in filenames.
3355
3359
3356 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3360 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3357 Python 2.2 users who lack a proper shlex.split.
3361 Python 2.2 users who lack a proper shlex.split.
3358
3362
3359 2004-07-19 Fernando Perez <fperez@colorado.edu>
3363 2004-07-19 Fernando Perez <fperez@colorado.edu>
3360
3364
3361 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3365 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3362 for reading readline's init file. I follow the normal chain:
3366 for reading readline's init file. I follow the normal chain:
3363 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3367 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3364 report by Mike Heeter. This closes
3368 report by Mike Heeter. This closes
3365 http://www.scipy.net/roundup/ipython/issue16.
3369 http://www.scipy.net/roundup/ipython/issue16.
3366
3370
3367 2004-07-18 Fernando Perez <fperez@colorado.edu>
3371 2004-07-18 Fernando Perez <fperez@colorado.edu>
3368
3372
3369 * IPython/iplib.py (__init__): Add better handling of '\' under
3373 * IPython/iplib.py (__init__): Add better handling of '\' under
3370 Win32 for filenames. After a patch by Ville.
3374 Win32 for filenames. After a patch by Ville.
3371
3375
3372 2004-07-17 Fernando Perez <fperez@colorado.edu>
3376 2004-07-17 Fernando Perez <fperez@colorado.edu>
3373
3377
3374 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3378 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3375 autocalling would be triggered for 'foo is bar' if foo is
3379 autocalling would be triggered for 'foo is bar' if foo is
3376 callable. I also cleaned up the autocall detection code to use a
3380 callable. I also cleaned up the autocall detection code to use a
3377 regexp, which is faster. Bug reported by Alexander Schmolck.
3381 regexp, which is faster. Bug reported by Alexander Schmolck.
3378
3382
3379 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3383 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3380 '?' in them would confuse the help system. Reported by Alex
3384 '?' in them would confuse the help system. Reported by Alex
3381 Schmolck.
3385 Schmolck.
3382
3386
3383 2004-07-16 Fernando Perez <fperez@colorado.edu>
3387 2004-07-16 Fernando Perez <fperez@colorado.edu>
3384
3388
3385 * IPython/GnuplotInteractive.py (__all__): added plot2.
3389 * IPython/GnuplotInteractive.py (__all__): added plot2.
3386
3390
3387 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3391 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3388 plotting dictionaries, lists or tuples of 1d arrays.
3392 plotting dictionaries, lists or tuples of 1d arrays.
3389
3393
3390 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3394 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3391 optimizations.
3395 optimizations.
3392
3396
3393 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3397 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3394 the information which was there from Janko's original IPP code:
3398 the information which was there from Janko's original IPP code:
3395
3399
3396 03.05.99 20:53 porto.ifm.uni-kiel.de
3400 03.05.99 20:53 porto.ifm.uni-kiel.de
3397 --Started changelog.
3401 --Started changelog.
3398 --make clear do what it say it does
3402 --make clear do what it say it does
3399 --added pretty output of lines from inputcache
3403 --added pretty output of lines from inputcache
3400 --Made Logger a mixin class, simplifies handling of switches
3404 --Made Logger a mixin class, simplifies handling of switches
3401 --Added own completer class. .string<TAB> expands to last history
3405 --Added own completer class. .string<TAB> expands to last history
3402 line which starts with string. The new expansion is also present
3406 line which starts with string. The new expansion is also present
3403 with Ctrl-r from the readline library. But this shows, who this
3407 with Ctrl-r from the readline library. But this shows, who this
3404 can be done for other cases.
3408 can be done for other cases.
3405 --Added convention that all shell functions should accept a
3409 --Added convention that all shell functions should accept a
3406 parameter_string This opens the door for different behaviour for
3410 parameter_string This opens the door for different behaviour for
3407 each function. @cd is a good example of this.
3411 each function. @cd is a good example of this.
3408
3412
3409 04.05.99 12:12 porto.ifm.uni-kiel.de
3413 04.05.99 12:12 porto.ifm.uni-kiel.de
3410 --added logfile rotation
3414 --added logfile rotation
3411 --added new mainloop method which freezes first the namespace
3415 --added new mainloop method which freezes first the namespace
3412
3416
3413 07.05.99 21:24 porto.ifm.uni-kiel.de
3417 07.05.99 21:24 porto.ifm.uni-kiel.de
3414 --added the docreader classes. Now there is a help system.
3418 --added the docreader classes. Now there is a help system.
3415 -This is only a first try. Currently it's not easy to put new
3419 -This is only a first try. Currently it's not easy to put new
3416 stuff in the indices. But this is the way to go. Info would be
3420 stuff in the indices. But this is the way to go. Info would be
3417 better, but HTML is every where and not everybody has an info
3421 better, but HTML is every where and not everybody has an info
3418 system installed and it's not so easy to change html-docs to info.
3422 system installed and it's not so easy to change html-docs to info.
3419 --added global logfile option
3423 --added global logfile option
3420 --there is now a hook for object inspection method pinfo needs to
3424 --there is now a hook for object inspection method pinfo needs to
3421 be provided for this. Can be reached by two '??'.
3425 be provided for this. Can be reached by two '??'.
3422
3426
3423 08.05.99 20:51 porto.ifm.uni-kiel.de
3427 08.05.99 20:51 porto.ifm.uni-kiel.de
3424 --added a README
3428 --added a README
3425 --bug in rc file. Something has changed so functions in the rc
3429 --bug in rc file. Something has changed so functions in the rc
3426 file need to reference the shell and not self. Not clear if it's a
3430 file need to reference the shell and not self. Not clear if it's a
3427 bug or feature.
3431 bug or feature.
3428 --changed rc file for new behavior
3432 --changed rc file for new behavior
3429
3433
3430 2004-07-15 Fernando Perez <fperez@colorado.edu>
3434 2004-07-15 Fernando Perez <fperez@colorado.edu>
3431
3435
3432 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3436 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3433 cache was falling out of sync in bizarre manners when multi-line
3437 cache was falling out of sync in bizarre manners when multi-line
3434 input was present. Minor optimizations and cleanup.
3438 input was present. Minor optimizations and cleanup.
3435
3439
3436 (Logger): Remove old Changelog info for cleanup. This is the
3440 (Logger): Remove old Changelog info for cleanup. This is the
3437 information which was there from Janko's original code:
3441 information which was there from Janko's original code:
3438
3442
3439 Changes to Logger: - made the default log filename a parameter
3443 Changes to Logger: - made the default log filename a parameter
3440
3444
3441 - put a check for lines beginning with !@? in log(). Needed
3445 - put a check for lines beginning with !@? in log(). Needed
3442 (even if the handlers properly log their lines) for mid-session
3446 (even if the handlers properly log their lines) for mid-session
3443 logging activation to work properly. Without this, lines logged
3447 logging activation to work properly. Without this, lines logged
3444 in mid session, which get read from the cache, would end up
3448 in mid session, which get read from the cache, would end up
3445 'bare' (with !@? in the open) in the log. Now they are caught
3449 'bare' (with !@? in the open) in the log. Now they are caught
3446 and prepended with a #.
3450 and prepended with a #.
3447
3451
3448 * IPython/iplib.py (InteractiveShell.init_readline): added check
3452 * IPython/iplib.py (InteractiveShell.init_readline): added check
3449 in case MagicCompleter fails to be defined, so we don't crash.
3453 in case MagicCompleter fails to be defined, so we don't crash.
3450
3454
3451 2004-07-13 Fernando Perez <fperez@colorado.edu>
3455 2004-07-13 Fernando Perez <fperez@colorado.edu>
3452
3456
3453 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3457 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3454 of EPS if the requested filename ends in '.eps'.
3458 of EPS if the requested filename ends in '.eps'.
3455
3459
3456 2004-07-04 Fernando Perez <fperez@colorado.edu>
3460 2004-07-04 Fernando Perez <fperez@colorado.edu>
3457
3461
3458 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3462 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3459 escaping of quotes when calling the shell.
3463 escaping of quotes when calling the shell.
3460
3464
3461 2004-07-02 Fernando Perez <fperez@colorado.edu>
3465 2004-07-02 Fernando Perez <fperez@colorado.edu>
3462
3466
3463 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3467 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3464 gettext not working because we were clobbering '_'. Fixes
3468 gettext not working because we were clobbering '_'. Fixes
3465 http://www.scipy.net/roundup/ipython/issue6.
3469 http://www.scipy.net/roundup/ipython/issue6.
3466
3470
3467 2004-07-01 Fernando Perez <fperez@colorado.edu>
3471 2004-07-01 Fernando Perez <fperez@colorado.edu>
3468
3472
3469 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3473 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3470 into @cd. Patch by Ville.
3474 into @cd. Patch by Ville.
3471
3475
3472 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3476 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3473 new function to store things after ipmaker runs. Patch by Ville.
3477 new function to store things after ipmaker runs. Patch by Ville.
3474 Eventually this will go away once ipmaker is removed and the class
3478 Eventually this will go away once ipmaker is removed and the class
3475 gets cleaned up, but for now it's ok. Key functionality here is
3479 gets cleaned up, but for now it's ok. Key functionality here is
3476 the addition of the persistent storage mechanism, a dict for
3480 the addition of the persistent storage mechanism, a dict for
3477 keeping data across sessions (for now just bookmarks, but more can
3481 keeping data across sessions (for now just bookmarks, but more can
3478 be implemented later).
3482 be implemented later).
3479
3483
3480 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3484 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3481 persistent across sections. Patch by Ville, I modified it
3485 persistent across sections. Patch by Ville, I modified it
3482 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3486 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3483 added a '-l' option to list all bookmarks.
3487 added a '-l' option to list all bookmarks.
3484
3488
3485 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3489 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3486 center for cleanup. Registered with atexit.register(). I moved
3490 center for cleanup. Registered with atexit.register(). I moved
3487 here the old exit_cleanup(). After a patch by Ville.
3491 here the old exit_cleanup(). After a patch by Ville.
3488
3492
3489 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3493 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3490 characters in the hacked shlex_split for python 2.2.
3494 characters in the hacked shlex_split for python 2.2.
3491
3495
3492 * IPython/iplib.py (file_matches): more fixes to filenames with
3496 * IPython/iplib.py (file_matches): more fixes to filenames with
3493 whitespace in them. It's not perfect, but limitations in python's
3497 whitespace in them. It's not perfect, but limitations in python's
3494 readline make it impossible to go further.
3498 readline make it impossible to go further.
3495
3499
3496 2004-06-29 Fernando Perez <fperez@colorado.edu>
3500 2004-06-29 Fernando Perez <fperez@colorado.edu>
3497
3501
3498 * IPython/iplib.py (file_matches): escape whitespace correctly in
3502 * IPython/iplib.py (file_matches): escape whitespace correctly in
3499 filename completions. Bug reported by Ville.
3503 filename completions. Bug reported by Ville.
3500
3504
3501 2004-06-28 Fernando Perez <fperez@colorado.edu>
3505 2004-06-28 Fernando Perez <fperez@colorado.edu>
3502
3506
3503 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3507 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3504 the history file will be called 'history-PROFNAME' (or just
3508 the history file will be called 'history-PROFNAME' (or just
3505 'history' if no profile is loaded). I was getting annoyed at
3509 'history' if no profile is loaded). I was getting annoyed at
3506 getting my Numerical work history clobbered by pysh sessions.
3510 getting my Numerical work history clobbered by pysh sessions.
3507
3511
3508 * IPython/iplib.py (InteractiveShell.__init__): Internal
3512 * IPython/iplib.py (InteractiveShell.__init__): Internal
3509 getoutputerror() function so that we can honor the system_verbose
3513 getoutputerror() function so that we can honor the system_verbose
3510 flag for _all_ system calls. I also added escaping of #
3514 flag for _all_ system calls. I also added escaping of #
3511 characters here to avoid confusing Itpl.
3515 characters here to avoid confusing Itpl.
3512
3516
3513 * IPython/Magic.py (shlex_split): removed call to shell in
3517 * IPython/Magic.py (shlex_split): removed call to shell in
3514 parse_options and replaced it with shlex.split(). The annoying
3518 parse_options and replaced it with shlex.split(). The annoying
3515 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3519 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3516 to backport it from 2.3, with several frail hacks (the shlex
3520 to backport it from 2.3, with several frail hacks (the shlex
3517 module is rather limited in 2.2). Thanks to a suggestion by Ville
3521 module is rather limited in 2.2). Thanks to a suggestion by Ville
3518 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3522 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3519 problem.
3523 problem.
3520
3524
3521 (Magic.magic_system_verbose): new toggle to print the actual
3525 (Magic.magic_system_verbose): new toggle to print the actual
3522 system calls made by ipython. Mainly for debugging purposes.
3526 system calls made by ipython. Mainly for debugging purposes.
3523
3527
3524 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3528 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3525 doesn't support persistence. Reported (and fix suggested) by
3529 doesn't support persistence. Reported (and fix suggested) by
3526 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3530 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3527
3531
3528 2004-06-26 Fernando Perez <fperez@colorado.edu>
3532 2004-06-26 Fernando Perez <fperez@colorado.edu>
3529
3533
3530 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3534 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3531 continue prompts.
3535 continue prompts.
3532
3536
3533 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3537 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3534 function (basically a big docstring) and a few more things here to
3538 function (basically a big docstring) and a few more things here to
3535 speedup startup. pysh.py is now very lightweight. We want because
3539 speedup startup. pysh.py is now very lightweight. We want because
3536 it gets execfile'd, while InterpreterExec gets imported, so
3540 it gets execfile'd, while InterpreterExec gets imported, so
3537 byte-compilation saves time.
3541 byte-compilation saves time.
3538
3542
3539 2004-06-25 Fernando Perez <fperez@colorado.edu>
3543 2004-06-25 Fernando Perez <fperez@colorado.edu>
3540
3544
3541 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3545 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3542 -NUM', which was recently broken.
3546 -NUM', which was recently broken.
3543
3547
3544 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3548 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3545 in multi-line input (but not !!, which doesn't make sense there).
3549 in multi-line input (but not !!, which doesn't make sense there).
3546
3550
3547 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3551 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3548 It's just too useful, and people can turn it off in the less
3552 It's just too useful, and people can turn it off in the less
3549 common cases where it's a problem.
3553 common cases where it's a problem.
3550
3554
3551 2004-06-24 Fernando Perez <fperez@colorado.edu>
3555 2004-06-24 Fernando Perez <fperez@colorado.edu>
3552
3556
3553 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3557 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3554 special syntaxes (like alias calling) is now allied in multi-line
3558 special syntaxes (like alias calling) is now allied in multi-line
3555 input. This is still _very_ experimental, but it's necessary for
3559 input. This is still _very_ experimental, but it's necessary for
3556 efficient shell usage combining python looping syntax with system
3560 efficient shell usage combining python looping syntax with system
3557 calls. For now it's restricted to aliases, I don't think it
3561 calls. For now it's restricted to aliases, I don't think it
3558 really even makes sense to have this for magics.
3562 really even makes sense to have this for magics.
3559
3563
3560 2004-06-23 Fernando Perez <fperez@colorado.edu>
3564 2004-06-23 Fernando Perez <fperez@colorado.edu>
3561
3565
3562 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3566 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3563 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3567 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3564
3568
3565 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3569 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3566 extensions under Windows (after code sent by Gary Bishop). The
3570 extensions under Windows (after code sent by Gary Bishop). The
3567 extensions considered 'executable' are stored in IPython's rc
3571 extensions considered 'executable' are stored in IPython's rc
3568 structure as win_exec_ext.
3572 structure as win_exec_ext.
3569
3573
3570 * IPython/genutils.py (shell): new function, like system() but
3574 * IPython/genutils.py (shell): new function, like system() but
3571 without return value. Very useful for interactive shell work.
3575 without return value. Very useful for interactive shell work.
3572
3576
3573 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3577 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3574 delete aliases.
3578 delete aliases.
3575
3579
3576 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3580 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3577 sure that the alias table doesn't contain python keywords.
3581 sure that the alias table doesn't contain python keywords.
3578
3582
3579 2004-06-21 Fernando Perez <fperez@colorado.edu>
3583 2004-06-21 Fernando Perez <fperez@colorado.edu>
3580
3584
3581 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3585 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3582 non-existent items are found in $PATH. Reported by Thorsten.
3586 non-existent items are found in $PATH. Reported by Thorsten.
3583
3587
3584 2004-06-20 Fernando Perez <fperez@colorado.edu>
3588 2004-06-20 Fernando Perez <fperez@colorado.edu>
3585
3589
3586 * IPython/iplib.py (complete): modified the completer so that the
3590 * IPython/iplib.py (complete): modified the completer so that the
3587 order of priorities can be easily changed at runtime.
3591 order of priorities can be easily changed at runtime.
3588
3592
3589 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3593 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3590 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3594 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3591
3595
3592 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3596 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3593 expand Python variables prepended with $ in all system calls. The
3597 expand Python variables prepended with $ in all system calls. The
3594 same was done to InteractiveShell.handle_shell_escape. Now all
3598 same was done to InteractiveShell.handle_shell_escape. Now all
3595 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3599 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3596 expansion of python variables and expressions according to the
3600 expansion of python variables and expressions according to the
3597 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3601 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3598
3602
3599 Though PEP-215 has been rejected, a similar (but simpler) one
3603 Though PEP-215 has been rejected, a similar (but simpler) one
3600 seems like it will go into Python 2.4, PEP-292 -
3604 seems like it will go into Python 2.4, PEP-292 -
3601 http://www.python.org/peps/pep-0292.html.
3605 http://www.python.org/peps/pep-0292.html.
3602
3606
3603 I'll keep the full syntax of PEP-215, since IPython has since the
3607 I'll keep the full syntax of PEP-215, since IPython has since the
3604 start used Ka-Ping Yee's reference implementation discussed there
3608 start used Ka-Ping Yee's reference implementation discussed there
3605 (Itpl), and I actually like the powerful semantics it offers.
3609 (Itpl), and I actually like the powerful semantics it offers.
3606
3610
3607 In order to access normal shell variables, the $ has to be escaped
3611 In order to access normal shell variables, the $ has to be escaped
3608 via an extra $. For example:
3612 via an extra $. For example:
3609
3613
3610 In [7]: PATH='a python variable'
3614 In [7]: PATH='a python variable'
3611
3615
3612 In [8]: !echo $PATH
3616 In [8]: !echo $PATH
3613 a python variable
3617 a python variable
3614
3618
3615 In [9]: !echo $$PATH
3619 In [9]: !echo $$PATH
3616 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3620 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3617
3621
3618 (Magic.parse_options): escape $ so the shell doesn't evaluate
3622 (Magic.parse_options): escape $ so the shell doesn't evaluate
3619 things prematurely.
3623 things prematurely.
3620
3624
3621 * IPython/iplib.py (InteractiveShell.call_alias): added the
3625 * IPython/iplib.py (InteractiveShell.call_alias): added the
3622 ability for aliases to expand python variables via $.
3626 ability for aliases to expand python variables via $.
3623
3627
3624 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3628 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3625 system, now there's a @rehash/@rehashx pair of magics. These work
3629 system, now there's a @rehash/@rehashx pair of magics. These work
3626 like the csh rehash command, and can be invoked at any time. They
3630 like the csh rehash command, and can be invoked at any time. They
3627 build a table of aliases to everything in the user's $PATH
3631 build a table of aliases to everything in the user's $PATH
3628 (@rehash uses everything, @rehashx is slower but only adds
3632 (@rehash uses everything, @rehashx is slower but only adds
3629 executable files). With this, the pysh.py-based shell profile can
3633 executable files). With this, the pysh.py-based shell profile can
3630 now simply call rehash upon startup, and full access to all
3634 now simply call rehash upon startup, and full access to all
3631 programs in the user's path is obtained.
3635 programs in the user's path is obtained.
3632
3636
3633 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3637 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3634 functionality is now fully in place. I removed the old dynamic
3638 functionality is now fully in place. I removed the old dynamic
3635 code generation based approach, in favor of a much lighter one
3639 code generation based approach, in favor of a much lighter one
3636 based on a simple dict. The advantage is that this allows me to
3640 based on a simple dict. The advantage is that this allows me to
3637 now have thousands of aliases with negligible cost (unthinkable
3641 now have thousands of aliases with negligible cost (unthinkable
3638 with the old system).
3642 with the old system).
3639
3643
3640 2004-06-19 Fernando Perez <fperez@colorado.edu>
3644 2004-06-19 Fernando Perez <fperez@colorado.edu>
3641
3645
3642 * IPython/iplib.py (__init__): extended MagicCompleter class to
3646 * IPython/iplib.py (__init__): extended MagicCompleter class to
3643 also complete (last in priority) on user aliases.
3647 also complete (last in priority) on user aliases.
3644
3648
3645 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3649 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3646 call to eval.
3650 call to eval.
3647 (ItplNS.__init__): Added a new class which functions like Itpl,
3651 (ItplNS.__init__): Added a new class which functions like Itpl,
3648 but allows configuring the namespace for the evaluation to occur
3652 but allows configuring the namespace for the evaluation to occur
3649 in.
3653 in.
3650
3654
3651 2004-06-18 Fernando Perez <fperez@colorado.edu>
3655 2004-06-18 Fernando Perez <fperez@colorado.edu>
3652
3656
3653 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3657 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3654 better message when 'exit' or 'quit' are typed (a common newbie
3658 better message when 'exit' or 'quit' are typed (a common newbie
3655 confusion).
3659 confusion).
3656
3660
3657 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3661 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3658 check for Windows users.
3662 check for Windows users.
3659
3663
3660 * IPython/iplib.py (InteractiveShell.user_setup): removed
3664 * IPython/iplib.py (InteractiveShell.user_setup): removed
3661 disabling of colors for Windows. I'll test at runtime and issue a
3665 disabling of colors for Windows. I'll test at runtime and issue a
3662 warning if Gary's readline isn't found, as to nudge users to
3666 warning if Gary's readline isn't found, as to nudge users to
3663 download it.
3667 download it.
3664
3668
3665 2004-06-16 Fernando Perez <fperez@colorado.edu>
3669 2004-06-16 Fernando Perez <fperez@colorado.edu>
3666
3670
3667 * IPython/genutils.py (Stream.__init__): changed to print errors
3671 * IPython/genutils.py (Stream.__init__): changed to print errors
3668 to sys.stderr. I had a circular dependency here. Now it's
3672 to sys.stderr. I had a circular dependency here. Now it's
3669 possible to run ipython as IDLE's shell (consider this pre-alpha,
3673 possible to run ipython as IDLE's shell (consider this pre-alpha,
3670 since true stdout things end up in the starting terminal instead
3674 since true stdout things end up in the starting terminal instead
3671 of IDLE's out).
3675 of IDLE's out).
3672
3676
3673 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3677 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3674 users who haven't # updated their prompt_in2 definitions. Remove
3678 users who haven't # updated their prompt_in2 definitions. Remove
3675 eventually.
3679 eventually.
3676 (multiple_replace): added credit to original ASPN recipe.
3680 (multiple_replace): added credit to original ASPN recipe.
3677
3681
3678 2004-06-15 Fernando Perez <fperez@colorado.edu>
3682 2004-06-15 Fernando Perez <fperez@colorado.edu>
3679
3683
3680 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3684 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3681 list of auto-defined aliases.
3685 list of auto-defined aliases.
3682
3686
3683 2004-06-13 Fernando Perez <fperez@colorado.edu>
3687 2004-06-13 Fernando Perez <fperez@colorado.edu>
3684
3688
3685 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3689 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3686 install was really requested (so setup.py can be used for other
3690 install was really requested (so setup.py can be used for other
3687 things under Windows).
3691 things under Windows).
3688
3692
3689 2004-06-10 Fernando Perez <fperez@colorado.edu>
3693 2004-06-10 Fernando Perez <fperez@colorado.edu>
3690
3694
3691 * IPython/Logger.py (Logger.create_log): Manually remove any old
3695 * IPython/Logger.py (Logger.create_log): Manually remove any old
3692 backup, since os.remove may fail under Windows. Fixes bug
3696 backup, since os.remove may fail under Windows. Fixes bug
3693 reported by Thorsten.
3697 reported by Thorsten.
3694
3698
3695 2004-06-09 Fernando Perez <fperez@colorado.edu>
3699 2004-06-09 Fernando Perez <fperez@colorado.edu>
3696
3700
3697 * examples/example-embed.py: fixed all references to %n (replaced
3701 * examples/example-embed.py: fixed all references to %n (replaced
3698 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3702 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3699 for all examples and the manual as well.
3703 for all examples and the manual as well.
3700
3704
3701 2004-06-08 Fernando Perez <fperez@colorado.edu>
3705 2004-06-08 Fernando Perez <fperez@colorado.edu>
3702
3706
3703 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3707 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3704 alignment and color management. All 3 prompt subsystems now
3708 alignment and color management. All 3 prompt subsystems now
3705 inherit from BasePrompt.
3709 inherit from BasePrompt.
3706
3710
3707 * tools/release: updates for windows installer build and tag rpms
3711 * tools/release: updates for windows installer build and tag rpms
3708 with python version (since paths are fixed).
3712 with python version (since paths are fixed).
3709
3713
3710 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3714 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3711 which will become eventually obsolete. Also fixed the default
3715 which will become eventually obsolete. Also fixed the default
3712 prompt_in2 to use \D, so at least new users start with the correct
3716 prompt_in2 to use \D, so at least new users start with the correct
3713 defaults.
3717 defaults.
3714 WARNING: Users with existing ipythonrc files will need to apply
3718 WARNING: Users with existing ipythonrc files will need to apply
3715 this fix manually!
3719 this fix manually!
3716
3720
3717 * setup.py: make windows installer (.exe). This is finally the
3721 * setup.py: make windows installer (.exe). This is finally the
3718 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3722 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3719 which I hadn't included because it required Python 2.3 (or recent
3723 which I hadn't included because it required Python 2.3 (or recent
3720 distutils).
3724 distutils).
3721
3725
3722 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3726 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3723 usage of new '\D' escape.
3727 usage of new '\D' escape.
3724
3728
3725 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3729 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3726 lacks os.getuid())
3730 lacks os.getuid())
3727 (CachedOutput.set_colors): Added the ability to turn coloring
3731 (CachedOutput.set_colors): Added the ability to turn coloring
3728 on/off with @colors even for manually defined prompt colors. It
3732 on/off with @colors even for manually defined prompt colors. It
3729 uses a nasty global, but it works safely and via the generic color
3733 uses a nasty global, but it works safely and via the generic color
3730 handling mechanism.
3734 handling mechanism.
3731 (Prompt2.__init__): Introduced new escape '\D' for continuation
3735 (Prompt2.__init__): Introduced new escape '\D' for continuation
3732 prompts. It represents the counter ('\#') as dots.
3736 prompts. It represents the counter ('\#') as dots.
3733 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3737 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3734 need to update their ipythonrc files and replace '%n' with '\D' in
3738 need to update their ipythonrc files and replace '%n' with '\D' in
3735 their prompt_in2 settings everywhere. Sorry, but there's
3739 their prompt_in2 settings everywhere. Sorry, but there's
3736 otherwise no clean way to get all prompts to properly align. The
3740 otherwise no clean way to get all prompts to properly align. The
3737 ipythonrc shipped with IPython has been updated.
3741 ipythonrc shipped with IPython has been updated.
3738
3742
3739 2004-06-07 Fernando Perez <fperez@colorado.edu>
3743 2004-06-07 Fernando Perez <fperez@colorado.edu>
3740
3744
3741 * setup.py (isfile): Pass local_icons option to latex2html, so the
3745 * setup.py (isfile): Pass local_icons option to latex2html, so the
3742 resulting HTML file is self-contained. Thanks to
3746 resulting HTML file is self-contained. Thanks to
3743 dryice-AT-liu.com.cn for the tip.
3747 dryice-AT-liu.com.cn for the tip.
3744
3748
3745 * pysh.py: I created a new profile 'shell', which implements a
3749 * pysh.py: I created a new profile 'shell', which implements a
3746 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3750 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3747 system shell, nor will it become one anytime soon. It's mainly
3751 system shell, nor will it become one anytime soon. It's mainly
3748 meant to illustrate the use of the new flexible bash-like prompts.
3752 meant to illustrate the use of the new flexible bash-like prompts.
3749 I guess it could be used by hardy souls for true shell management,
3753 I guess it could be used by hardy souls for true shell management,
3750 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3754 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3751 profile. This uses the InterpreterExec extension provided by
3755 profile. This uses the InterpreterExec extension provided by
3752 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3756 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3753
3757
3754 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3758 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3755 auto-align itself with the length of the previous input prompt
3759 auto-align itself with the length of the previous input prompt
3756 (taking into account the invisible color escapes).
3760 (taking into account the invisible color escapes).
3757 (CachedOutput.__init__): Large restructuring of this class. Now
3761 (CachedOutput.__init__): Large restructuring of this class. Now
3758 all three prompts (primary1, primary2, output) are proper objects,
3762 all three prompts (primary1, primary2, output) are proper objects,
3759 managed by the 'parent' CachedOutput class. The code is still a
3763 managed by the 'parent' CachedOutput class. The code is still a
3760 bit hackish (all prompts share state via a pointer to the cache),
3764 bit hackish (all prompts share state via a pointer to the cache),
3761 but it's overall far cleaner than before.
3765 but it's overall far cleaner than before.
3762
3766
3763 * IPython/genutils.py (getoutputerror): modified to add verbose,
3767 * IPython/genutils.py (getoutputerror): modified to add verbose,
3764 debug and header options. This makes the interface of all getout*
3768 debug and header options. This makes the interface of all getout*
3765 functions uniform.
3769 functions uniform.
3766 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3770 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3767
3771
3768 * IPython/Magic.py (Magic.default_option): added a function to
3772 * IPython/Magic.py (Magic.default_option): added a function to
3769 allow registering default options for any magic command. This
3773 allow registering default options for any magic command. This
3770 makes it easy to have profiles which customize the magics globally
3774 makes it easy to have profiles which customize the magics globally
3771 for a certain use. The values set through this function are
3775 for a certain use. The values set through this function are
3772 picked up by the parse_options() method, which all magics should
3776 picked up by the parse_options() method, which all magics should
3773 use to parse their options.
3777 use to parse their options.
3774
3778
3775 * IPython/genutils.py (warn): modified the warnings framework to
3779 * IPython/genutils.py (warn): modified the warnings framework to
3776 use the Term I/O class. I'm trying to slowly unify all of
3780 use the Term I/O class. I'm trying to slowly unify all of
3777 IPython's I/O operations to pass through Term.
3781 IPython's I/O operations to pass through Term.
3778
3782
3779 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3783 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3780 the secondary prompt to correctly match the length of the primary
3784 the secondary prompt to correctly match the length of the primary
3781 one for any prompt. Now multi-line code will properly line up
3785 one for any prompt. Now multi-line code will properly line up
3782 even for path dependent prompts, such as the new ones available
3786 even for path dependent prompts, such as the new ones available
3783 via the prompt_specials.
3787 via the prompt_specials.
3784
3788
3785 2004-06-06 Fernando Perez <fperez@colorado.edu>
3789 2004-06-06 Fernando Perez <fperez@colorado.edu>
3786
3790
3787 * IPython/Prompts.py (prompt_specials): Added the ability to have
3791 * IPython/Prompts.py (prompt_specials): Added the ability to have
3788 bash-like special sequences in the prompts, which get
3792 bash-like special sequences in the prompts, which get
3789 automatically expanded. Things like hostname, current working
3793 automatically expanded. Things like hostname, current working
3790 directory and username are implemented already, but it's easy to
3794 directory and username are implemented already, but it's easy to
3791 add more in the future. Thanks to a patch by W.J. van der Laan
3795 add more in the future. Thanks to a patch by W.J. van der Laan
3792 <gnufnork-AT-hetdigitalegat.nl>
3796 <gnufnork-AT-hetdigitalegat.nl>
3793 (prompt_specials): Added color support for prompt strings, so
3797 (prompt_specials): Added color support for prompt strings, so
3794 users can define arbitrary color setups for their prompts.
3798 users can define arbitrary color setups for their prompts.
3795
3799
3796 2004-06-05 Fernando Perez <fperez@colorado.edu>
3800 2004-06-05 Fernando Perez <fperez@colorado.edu>
3797
3801
3798 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3802 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3799 code to load Gary Bishop's readline and configure it
3803 code to load Gary Bishop's readline and configure it
3800 automatically. Thanks to Gary for help on this.
3804 automatically. Thanks to Gary for help on this.
3801
3805
3802 2004-06-01 Fernando Perez <fperez@colorado.edu>
3806 2004-06-01 Fernando Perez <fperez@colorado.edu>
3803
3807
3804 * IPython/Logger.py (Logger.create_log): fix bug for logging
3808 * IPython/Logger.py (Logger.create_log): fix bug for logging
3805 with no filename (previous fix was incomplete).
3809 with no filename (previous fix was incomplete).
3806
3810
3807 2004-05-25 Fernando Perez <fperez@colorado.edu>
3811 2004-05-25 Fernando Perez <fperez@colorado.edu>
3808
3812
3809 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3813 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3810 parens would get passed to the shell.
3814 parens would get passed to the shell.
3811
3815
3812 2004-05-20 Fernando Perez <fperez@colorado.edu>
3816 2004-05-20 Fernando Perez <fperez@colorado.edu>
3813
3817
3814 * IPython/Magic.py (Magic.magic_prun): changed default profile
3818 * IPython/Magic.py (Magic.magic_prun): changed default profile
3815 sort order to 'time' (the more common profiling need).
3819 sort order to 'time' (the more common profiling need).
3816
3820
3817 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3821 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3818 so that source code shown is guaranteed in sync with the file on
3822 so that source code shown is guaranteed in sync with the file on
3819 disk (also changed in psource). Similar fix to the one for
3823 disk (also changed in psource). Similar fix to the one for
3820 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3824 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3821 <yann.ledu-AT-noos.fr>.
3825 <yann.ledu-AT-noos.fr>.
3822
3826
3823 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3827 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3824 with a single option would not be correctly parsed. Closes
3828 with a single option would not be correctly parsed. Closes
3825 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3829 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3826 introduced in 0.6.0 (on 2004-05-06).
3830 introduced in 0.6.0 (on 2004-05-06).
3827
3831
3828 2004-05-13 *** Released version 0.6.0
3832 2004-05-13 *** Released version 0.6.0
3829
3833
3830 2004-05-13 Fernando Perez <fperez@colorado.edu>
3834 2004-05-13 Fernando Perez <fperez@colorado.edu>
3831
3835
3832 * debian/: Added debian/ directory to CVS, so that debian support
3836 * debian/: Added debian/ directory to CVS, so that debian support
3833 is publicly accessible. The debian package is maintained by Jack
3837 is publicly accessible. The debian package is maintained by Jack
3834 Moffit <jack-AT-xiph.org>.
3838 Moffit <jack-AT-xiph.org>.
3835
3839
3836 * Documentation: included the notes about an ipython-based system
3840 * Documentation: included the notes about an ipython-based system
3837 shell (the hypothetical 'pysh') into the new_design.pdf document,
3841 shell (the hypothetical 'pysh') into the new_design.pdf document,
3838 so that these ideas get distributed to users along with the
3842 so that these ideas get distributed to users along with the
3839 official documentation.
3843 official documentation.
3840
3844
3841 2004-05-10 Fernando Perez <fperez@colorado.edu>
3845 2004-05-10 Fernando Perez <fperez@colorado.edu>
3842
3846
3843 * IPython/Logger.py (Logger.create_log): fix recently introduced
3847 * IPython/Logger.py (Logger.create_log): fix recently introduced
3844 bug (misindented line) where logstart would fail when not given an
3848 bug (misindented line) where logstart would fail when not given an
3845 explicit filename.
3849 explicit filename.
3846
3850
3847 2004-05-09 Fernando Perez <fperez@colorado.edu>
3851 2004-05-09 Fernando Perez <fperez@colorado.edu>
3848
3852
3849 * IPython/Magic.py (Magic.parse_options): skip system call when
3853 * IPython/Magic.py (Magic.parse_options): skip system call when
3850 there are no options to look for. Faster, cleaner for the common
3854 there are no options to look for. Faster, cleaner for the common
3851 case.
3855 case.
3852
3856
3853 * Documentation: many updates to the manual: describing Windows
3857 * Documentation: many updates to the manual: describing Windows
3854 support better, Gnuplot updates, credits, misc small stuff. Also
3858 support better, Gnuplot updates, credits, misc small stuff. Also
3855 updated the new_design doc a bit.
3859 updated the new_design doc a bit.
3856
3860
3857 2004-05-06 *** Released version 0.6.0.rc1
3861 2004-05-06 *** Released version 0.6.0.rc1
3858
3862
3859 2004-05-06 Fernando Perez <fperez@colorado.edu>
3863 2004-05-06 Fernando Perez <fperez@colorado.edu>
3860
3864
3861 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3865 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3862 operations to use the vastly more efficient list/''.join() method.
3866 operations to use the vastly more efficient list/''.join() method.
3863 (FormattedTB.text): Fix
3867 (FormattedTB.text): Fix
3864 http://www.scipy.net/roundup/ipython/issue12 - exception source
3868 http://www.scipy.net/roundup/ipython/issue12 - exception source
3865 extract not updated after reload. Thanks to Mike Salib
3869 extract not updated after reload. Thanks to Mike Salib
3866 <msalib-AT-mit.edu> for pinning the source of the problem.
3870 <msalib-AT-mit.edu> for pinning the source of the problem.
3867 Fortunately, the solution works inside ipython and doesn't require
3871 Fortunately, the solution works inside ipython and doesn't require
3868 any changes to python proper.
3872 any changes to python proper.
3869
3873
3870 * IPython/Magic.py (Magic.parse_options): Improved to process the
3874 * IPython/Magic.py (Magic.parse_options): Improved to process the
3871 argument list as a true shell would (by actually using the
3875 argument list as a true shell would (by actually using the
3872 underlying system shell). This way, all @magics automatically get
3876 underlying system shell). This way, all @magics automatically get
3873 shell expansion for variables. Thanks to a comment by Alex
3877 shell expansion for variables. Thanks to a comment by Alex
3874 Schmolck.
3878 Schmolck.
3875
3879
3876 2004-04-04 Fernando Perez <fperez@colorado.edu>
3880 2004-04-04 Fernando Perez <fperez@colorado.edu>
3877
3881
3878 * IPython/iplib.py (InteractiveShell.interact): Added a special
3882 * IPython/iplib.py (InteractiveShell.interact): Added a special
3879 trap for a debugger quit exception, which is basically impossible
3883 trap for a debugger quit exception, which is basically impossible
3880 to handle by normal mechanisms, given what pdb does to the stack.
3884 to handle by normal mechanisms, given what pdb does to the stack.
3881 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3885 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3882
3886
3883 2004-04-03 Fernando Perez <fperez@colorado.edu>
3887 2004-04-03 Fernando Perez <fperez@colorado.edu>
3884
3888
3885 * IPython/genutils.py (Term): Standardized the names of the Term
3889 * IPython/genutils.py (Term): Standardized the names of the Term
3886 class streams to cin/cout/cerr, following C++ naming conventions
3890 class streams to cin/cout/cerr, following C++ naming conventions
3887 (I can't use in/out/err because 'in' is not a valid attribute
3891 (I can't use in/out/err because 'in' is not a valid attribute
3888 name).
3892 name).
3889
3893
3890 * IPython/iplib.py (InteractiveShell.interact): don't increment
3894 * IPython/iplib.py (InteractiveShell.interact): don't increment
3891 the prompt if there's no user input. By Daniel 'Dang' Griffith
3895 the prompt if there's no user input. By Daniel 'Dang' Griffith
3892 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3896 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3893 Francois Pinard.
3897 Francois Pinard.
3894
3898
3895 2004-04-02 Fernando Perez <fperez@colorado.edu>
3899 2004-04-02 Fernando Perez <fperez@colorado.edu>
3896
3900
3897 * IPython/genutils.py (Stream.__init__): Modified to survive at
3901 * IPython/genutils.py (Stream.__init__): Modified to survive at
3898 least importing in contexts where stdin/out/err aren't true file
3902 least importing in contexts where stdin/out/err aren't true file
3899 objects, such as PyCrust (they lack fileno() and mode). However,
3903 objects, such as PyCrust (they lack fileno() and mode). However,
3900 the recovery facilities which rely on these things existing will
3904 the recovery facilities which rely on these things existing will
3901 not work.
3905 not work.
3902
3906
3903 2004-04-01 Fernando Perez <fperez@colorado.edu>
3907 2004-04-01 Fernando Perez <fperez@colorado.edu>
3904
3908
3905 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3909 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3906 use the new getoutputerror() function, so it properly
3910 use the new getoutputerror() function, so it properly
3907 distinguishes stdout/err.
3911 distinguishes stdout/err.
3908
3912
3909 * IPython/genutils.py (getoutputerror): added a function to
3913 * IPython/genutils.py (getoutputerror): added a function to
3910 capture separately the standard output and error of a command.
3914 capture separately the standard output and error of a command.
3911 After a comment from dang on the mailing lists. This code is
3915 After a comment from dang on the mailing lists. This code is
3912 basically a modified version of commands.getstatusoutput(), from
3916 basically a modified version of commands.getstatusoutput(), from
3913 the standard library.
3917 the standard library.
3914
3918
3915 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3919 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3916 '!!' as a special syntax (shorthand) to access @sx.
3920 '!!' as a special syntax (shorthand) to access @sx.
3917
3921
3918 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3922 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3919 command and return its output as a list split on '\n'.
3923 command and return its output as a list split on '\n'.
3920
3924
3921 2004-03-31 Fernando Perez <fperez@colorado.edu>
3925 2004-03-31 Fernando Perez <fperez@colorado.edu>
3922
3926
3923 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3927 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3924 method to dictionaries used as FakeModule instances if they lack
3928 method to dictionaries used as FakeModule instances if they lack
3925 it. At least pydoc in python2.3 breaks for runtime-defined
3929 it. At least pydoc in python2.3 breaks for runtime-defined
3926 functions without this hack. At some point I need to _really_
3930 functions without this hack. At some point I need to _really_
3927 understand what FakeModule is doing, because it's a gross hack.
3931 understand what FakeModule is doing, because it's a gross hack.
3928 But it solves Arnd's problem for now...
3932 But it solves Arnd's problem for now...
3929
3933
3930 2004-02-27 Fernando Perez <fperez@colorado.edu>
3934 2004-02-27 Fernando Perez <fperez@colorado.edu>
3931
3935
3932 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3936 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3933 mode would behave erratically. Also increased the number of
3937 mode would behave erratically. Also increased the number of
3934 possible logs in rotate mod to 999. Thanks to Rod Holland
3938 possible logs in rotate mod to 999. Thanks to Rod Holland
3935 <rhh@StructureLABS.com> for the report and fixes.
3939 <rhh@StructureLABS.com> for the report and fixes.
3936
3940
3937 2004-02-26 Fernando Perez <fperez@colorado.edu>
3941 2004-02-26 Fernando Perez <fperez@colorado.edu>
3938
3942
3939 * IPython/genutils.py (page): Check that the curses module really
3943 * IPython/genutils.py (page): Check that the curses module really
3940 has the initscr attribute before trying to use it. For some
3944 has the initscr attribute before trying to use it. For some
3941 reason, the Solaris curses module is missing this. I think this
3945 reason, the Solaris curses module is missing this. I think this
3942 should be considered a Solaris python bug, but I'm not sure.
3946 should be considered a Solaris python bug, but I'm not sure.
3943
3947
3944 2004-01-17 Fernando Perez <fperez@colorado.edu>
3948 2004-01-17 Fernando Perez <fperez@colorado.edu>
3945
3949
3946 * IPython/genutils.py (Stream.__init__): Changes to try to make
3950 * IPython/genutils.py (Stream.__init__): Changes to try to make
3947 ipython robust against stdin/out/err being closed by the user.
3951 ipython robust against stdin/out/err being closed by the user.
3948 This is 'user error' (and blocks a normal python session, at least
3952 This is 'user error' (and blocks a normal python session, at least
3949 the stdout case). However, Ipython should be able to survive such
3953 the stdout case). However, Ipython should be able to survive such
3950 instances of abuse as gracefully as possible. To simplify the
3954 instances of abuse as gracefully as possible. To simplify the
3951 coding and maintain compatibility with Gary Bishop's Term
3955 coding and maintain compatibility with Gary Bishop's Term
3952 contributions, I've made use of classmethods for this. I think
3956 contributions, I've made use of classmethods for this. I think
3953 this introduces a dependency on python 2.2.
3957 this introduces a dependency on python 2.2.
3954
3958
3955 2004-01-13 Fernando Perez <fperez@colorado.edu>
3959 2004-01-13 Fernando Perez <fperez@colorado.edu>
3956
3960
3957 * IPython/numutils.py (exp_safe): simplified the code a bit and
3961 * IPython/numutils.py (exp_safe): simplified the code a bit and
3958 removed the need for importing the kinds module altogether.
3962 removed the need for importing the kinds module altogether.
3959
3963
3960 2004-01-06 Fernando Perez <fperez@colorado.edu>
3964 2004-01-06 Fernando Perez <fperez@colorado.edu>
3961
3965
3962 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3966 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3963 a magic function instead, after some community feedback. No
3967 a magic function instead, after some community feedback. No
3964 special syntax will exist for it, but its name is deliberately
3968 special syntax will exist for it, but its name is deliberately
3965 very short.
3969 very short.
3966
3970
3967 2003-12-20 Fernando Perez <fperez@colorado.edu>
3971 2003-12-20 Fernando Perez <fperez@colorado.edu>
3968
3972
3969 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3973 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3970 new functionality, to automagically assign the result of a shell
3974 new functionality, to automagically assign the result of a shell
3971 command to a variable. I'll solicit some community feedback on
3975 command to a variable. I'll solicit some community feedback on
3972 this before making it permanent.
3976 this before making it permanent.
3973
3977
3974 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3978 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3975 requested about callables for which inspect couldn't obtain a
3979 requested about callables for which inspect couldn't obtain a
3976 proper argspec. Thanks to a crash report sent by Etienne
3980 proper argspec. Thanks to a crash report sent by Etienne
3977 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3981 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3978
3982
3979 2003-12-09 Fernando Perez <fperez@colorado.edu>
3983 2003-12-09 Fernando Perez <fperez@colorado.edu>
3980
3984
3981 * IPython/genutils.py (page): patch for the pager to work across
3985 * IPython/genutils.py (page): patch for the pager to work across
3982 various versions of Windows. By Gary Bishop.
3986 various versions of Windows. By Gary Bishop.
3983
3987
3984 2003-12-04 Fernando Perez <fperez@colorado.edu>
3988 2003-12-04 Fernando Perez <fperez@colorado.edu>
3985
3989
3986 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3990 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3987 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3991 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3988 While I tested this and it looks ok, there may still be corner
3992 While I tested this and it looks ok, there may still be corner
3989 cases I've missed.
3993 cases I've missed.
3990
3994
3991 2003-12-01 Fernando Perez <fperez@colorado.edu>
3995 2003-12-01 Fernando Perez <fperez@colorado.edu>
3992
3996
3993 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3997 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3994 where a line like 'p,q=1,2' would fail because the automagic
3998 where a line like 'p,q=1,2' would fail because the automagic
3995 system would be triggered for @p.
3999 system would be triggered for @p.
3996
4000
3997 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4001 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3998 cleanups, code unmodified.
4002 cleanups, code unmodified.
3999
4003
4000 * IPython/genutils.py (Term): added a class for IPython to handle
4004 * IPython/genutils.py (Term): added a class for IPython to handle
4001 output. In most cases it will just be a proxy for stdout/err, but
4005 output. In most cases it will just be a proxy for stdout/err, but
4002 having this allows modifications to be made for some platforms,
4006 having this allows modifications to be made for some platforms,
4003 such as handling color escapes under Windows. All of this code
4007 such as handling color escapes under Windows. All of this code
4004 was contributed by Gary Bishop, with minor modifications by me.
4008 was contributed by Gary Bishop, with minor modifications by me.
4005 The actual changes affect many files.
4009 The actual changes affect many files.
4006
4010
4007 2003-11-30 Fernando Perez <fperez@colorado.edu>
4011 2003-11-30 Fernando Perez <fperez@colorado.edu>
4008
4012
4009 * IPython/iplib.py (file_matches): new completion code, courtesy
4013 * IPython/iplib.py (file_matches): new completion code, courtesy
4010 of Jeff Collins. This enables filename completion again under
4014 of Jeff Collins. This enables filename completion again under
4011 python 2.3, which disabled it at the C level.
4015 python 2.3, which disabled it at the C level.
4012
4016
4013 2003-11-11 Fernando Perez <fperez@colorado.edu>
4017 2003-11-11 Fernando Perez <fperez@colorado.edu>
4014
4018
4015 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4019 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4016 for Numeric.array(map(...)), but often convenient.
4020 for Numeric.array(map(...)), but often convenient.
4017
4021
4018 2003-11-05 Fernando Perez <fperez@colorado.edu>
4022 2003-11-05 Fernando Perez <fperez@colorado.edu>
4019
4023
4020 * IPython/numutils.py (frange): Changed a call from int() to
4024 * IPython/numutils.py (frange): Changed a call from int() to
4021 int(round()) to prevent a problem reported with arange() in the
4025 int(round()) to prevent a problem reported with arange() in the
4022 numpy list.
4026 numpy list.
4023
4027
4024 2003-10-06 Fernando Perez <fperez@colorado.edu>
4028 2003-10-06 Fernando Perez <fperez@colorado.edu>
4025
4029
4026 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4030 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4027 prevent crashes if sys lacks an argv attribute (it happens with
4031 prevent crashes if sys lacks an argv attribute (it happens with
4028 embedded interpreters which build a bare-bones sys module).
4032 embedded interpreters which build a bare-bones sys module).
4029 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4033 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4030
4034
4031 2003-09-24 Fernando Perez <fperez@colorado.edu>
4035 2003-09-24 Fernando Perez <fperez@colorado.edu>
4032
4036
4033 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4037 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4034 to protect against poorly written user objects where __getattr__
4038 to protect against poorly written user objects where __getattr__
4035 raises exceptions other than AttributeError. Thanks to a bug
4039 raises exceptions other than AttributeError. Thanks to a bug
4036 report by Oliver Sander <osander-AT-gmx.de>.
4040 report by Oliver Sander <osander-AT-gmx.de>.
4037
4041
4038 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4042 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4039 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4043 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4040
4044
4041 2003-09-09 Fernando Perez <fperez@colorado.edu>
4045 2003-09-09 Fernando Perez <fperez@colorado.edu>
4042
4046
4043 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4047 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4044 unpacking a list whith a callable as first element would
4048 unpacking a list whith a callable as first element would
4045 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4049 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4046 Collins.
4050 Collins.
4047
4051
4048 2003-08-25 *** Released version 0.5.0
4052 2003-08-25 *** Released version 0.5.0
4049
4053
4050 2003-08-22 Fernando Perez <fperez@colorado.edu>
4054 2003-08-22 Fernando Perez <fperez@colorado.edu>
4051
4055
4052 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4056 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4053 improperly defined user exceptions. Thanks to feedback from Mark
4057 improperly defined user exceptions. Thanks to feedback from Mark
4054 Russell <mrussell-AT-verio.net>.
4058 Russell <mrussell-AT-verio.net>.
4055
4059
4056 2003-08-20 Fernando Perez <fperez@colorado.edu>
4060 2003-08-20 Fernando Perez <fperez@colorado.edu>
4057
4061
4058 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4062 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4059 printing so that it would print multi-line string forms starting
4063 printing so that it would print multi-line string forms starting
4060 with a new line. This way the formatting is better respected for
4064 with a new line. This way the formatting is better respected for
4061 objects which work hard to make nice string forms.
4065 objects which work hard to make nice string forms.
4062
4066
4063 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4067 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4064 autocall would overtake data access for objects with both
4068 autocall would overtake data access for objects with both
4065 __getitem__ and __call__.
4069 __getitem__ and __call__.
4066
4070
4067 2003-08-19 *** Released version 0.5.0-rc1
4071 2003-08-19 *** Released version 0.5.0-rc1
4068
4072
4069 2003-08-19 Fernando Perez <fperez@colorado.edu>
4073 2003-08-19 Fernando Perez <fperez@colorado.edu>
4070
4074
4071 * IPython/deep_reload.py (load_tail): single tiny change here
4075 * IPython/deep_reload.py (load_tail): single tiny change here
4072 seems to fix the long-standing bug of dreload() failing to work
4076 seems to fix the long-standing bug of dreload() failing to work
4073 for dotted names. But this module is pretty tricky, so I may have
4077 for dotted names. But this module is pretty tricky, so I may have
4074 missed some subtlety. Needs more testing!.
4078 missed some subtlety. Needs more testing!.
4075
4079
4076 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4080 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4077 exceptions which have badly implemented __str__ methods.
4081 exceptions which have badly implemented __str__ methods.
4078 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4082 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4079 which I've been getting reports about from Python 2.3 users. I
4083 which I've been getting reports about from Python 2.3 users. I
4080 wish I had a simple test case to reproduce the problem, so I could
4084 wish I had a simple test case to reproduce the problem, so I could
4081 either write a cleaner workaround or file a bug report if
4085 either write a cleaner workaround or file a bug report if
4082 necessary.
4086 necessary.
4083
4087
4084 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4088 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4085 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4089 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4086 a bug report by Tjabo Kloppenburg.
4090 a bug report by Tjabo Kloppenburg.
4087
4091
4088 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4092 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4089 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4093 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4090 seems rather unstable. Thanks to a bug report by Tjabo
4094 seems rather unstable. Thanks to a bug report by Tjabo
4091 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4095 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4092
4096
4093 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4097 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4094 this out soon because of the critical fixes in the inner loop for
4098 this out soon because of the critical fixes in the inner loop for
4095 generators.
4099 generators.
4096
4100
4097 * IPython/Magic.py (Magic.getargspec): removed. This (and
4101 * IPython/Magic.py (Magic.getargspec): removed. This (and
4098 _get_def) have been obsoleted by OInspect for a long time, I
4102 _get_def) have been obsoleted by OInspect for a long time, I
4099 hadn't noticed that they were dead code.
4103 hadn't noticed that they were dead code.
4100 (Magic._ofind): restored _ofind functionality for a few literals
4104 (Magic._ofind): restored _ofind functionality for a few literals
4101 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4105 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4102 for things like "hello".capitalize?, since that would require a
4106 for things like "hello".capitalize?, since that would require a
4103 potentially dangerous eval() again.
4107 potentially dangerous eval() again.
4104
4108
4105 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4109 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4106 logic a bit more to clean up the escapes handling and minimize the
4110 logic a bit more to clean up the escapes handling and minimize the
4107 use of _ofind to only necessary cases. The interactive 'feel' of
4111 use of _ofind to only necessary cases. The interactive 'feel' of
4108 IPython should have improved quite a bit with the changes in
4112 IPython should have improved quite a bit with the changes in
4109 _prefilter and _ofind (besides being far safer than before).
4113 _prefilter and _ofind (besides being far safer than before).
4110
4114
4111 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4115 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4112 obscure, never reported). Edit would fail to find the object to
4116 obscure, never reported). Edit would fail to find the object to
4113 edit under some circumstances.
4117 edit under some circumstances.
4114 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4118 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4115 which were causing double-calling of generators. Those eval calls
4119 which were causing double-calling of generators. Those eval calls
4116 were _very_ dangerous, since code with side effects could be
4120 were _very_ dangerous, since code with side effects could be
4117 triggered. As they say, 'eval is evil'... These were the
4121 triggered. As they say, 'eval is evil'... These were the
4118 nastiest evals in IPython. Besides, _ofind is now far simpler,
4122 nastiest evals in IPython. Besides, _ofind is now far simpler,
4119 and it should also be quite a bit faster. Its use of inspect is
4123 and it should also be quite a bit faster. Its use of inspect is
4120 also safer, so perhaps some of the inspect-related crashes I've
4124 also safer, so perhaps some of the inspect-related crashes I've
4121 seen lately with Python 2.3 might be taken care of. That will
4125 seen lately with Python 2.3 might be taken care of. That will
4122 need more testing.
4126 need more testing.
4123
4127
4124 2003-08-17 Fernando Perez <fperez@colorado.edu>
4128 2003-08-17 Fernando Perez <fperez@colorado.edu>
4125
4129
4126 * IPython/iplib.py (InteractiveShell._prefilter): significant
4130 * IPython/iplib.py (InteractiveShell._prefilter): significant
4127 simplifications to the logic for handling user escapes. Faster
4131 simplifications to the logic for handling user escapes. Faster
4128 and simpler code.
4132 and simpler code.
4129
4133
4130 2003-08-14 Fernando Perez <fperez@colorado.edu>
4134 2003-08-14 Fernando Perez <fperez@colorado.edu>
4131
4135
4132 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4136 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4133 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4137 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4134 but it should be quite a bit faster. And the recursive version
4138 but it should be quite a bit faster. And the recursive version
4135 generated O(log N) intermediate storage for all rank>1 arrays,
4139 generated O(log N) intermediate storage for all rank>1 arrays,
4136 even if they were contiguous.
4140 even if they were contiguous.
4137 (l1norm): Added this function.
4141 (l1norm): Added this function.
4138 (norm): Added this function for arbitrary norms (including
4142 (norm): Added this function for arbitrary norms (including
4139 l-infinity). l1 and l2 are still special cases for convenience
4143 l-infinity). l1 and l2 are still special cases for convenience
4140 and speed.
4144 and speed.
4141
4145
4142 2003-08-03 Fernando Perez <fperez@colorado.edu>
4146 2003-08-03 Fernando Perez <fperez@colorado.edu>
4143
4147
4144 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4148 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4145 exceptions, which now raise PendingDeprecationWarnings in Python
4149 exceptions, which now raise PendingDeprecationWarnings in Python
4146 2.3. There were some in Magic and some in Gnuplot2.
4150 2.3. There were some in Magic and some in Gnuplot2.
4147
4151
4148 2003-06-30 Fernando Perez <fperez@colorado.edu>
4152 2003-06-30 Fernando Perez <fperez@colorado.edu>
4149
4153
4150 * IPython/genutils.py (page): modified to call curses only for
4154 * IPython/genutils.py (page): modified to call curses only for
4151 terminals where TERM=='xterm'. After problems under many other
4155 terminals where TERM=='xterm'. After problems under many other
4152 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4156 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4153
4157
4154 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4158 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4155 would be triggered when readline was absent. This was just an old
4159 would be triggered when readline was absent. This was just an old
4156 debugging statement I'd forgotten to take out.
4160 debugging statement I'd forgotten to take out.
4157
4161
4158 2003-06-20 Fernando Perez <fperez@colorado.edu>
4162 2003-06-20 Fernando Perez <fperez@colorado.edu>
4159
4163
4160 * IPython/genutils.py (clock): modified to return only user time
4164 * IPython/genutils.py (clock): modified to return only user time
4161 (not counting system time), after a discussion on scipy. While
4165 (not counting system time), after a discussion on scipy. While
4162 system time may be a useful quantity occasionally, it may much
4166 system time may be a useful quantity occasionally, it may much
4163 more easily be skewed by occasional swapping or other similar
4167 more easily be skewed by occasional swapping or other similar
4164 activity.
4168 activity.
4165
4169
4166 2003-06-05 Fernando Perez <fperez@colorado.edu>
4170 2003-06-05 Fernando Perez <fperez@colorado.edu>
4167
4171
4168 * IPython/numutils.py (identity): new function, for building
4172 * IPython/numutils.py (identity): new function, for building
4169 arbitrary rank Kronecker deltas (mostly backwards compatible with
4173 arbitrary rank Kronecker deltas (mostly backwards compatible with
4170 Numeric.identity)
4174 Numeric.identity)
4171
4175
4172 2003-06-03 Fernando Perez <fperez@colorado.edu>
4176 2003-06-03 Fernando Perez <fperez@colorado.edu>
4173
4177
4174 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4178 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4175 arguments passed to magics with spaces, to allow trailing '\' to
4179 arguments passed to magics with spaces, to allow trailing '\' to
4176 work normally (mainly for Windows users).
4180 work normally (mainly for Windows users).
4177
4181
4178 2003-05-29 Fernando Perez <fperez@colorado.edu>
4182 2003-05-29 Fernando Perez <fperez@colorado.edu>
4179
4183
4180 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4184 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4181 instead of pydoc.help. This fixes a bizarre behavior where
4185 instead of pydoc.help. This fixes a bizarre behavior where
4182 printing '%s' % locals() would trigger the help system. Now
4186 printing '%s' % locals() would trigger the help system. Now
4183 ipython behaves like normal python does.
4187 ipython behaves like normal python does.
4184
4188
4185 Note that if one does 'from pydoc import help', the bizarre
4189 Note that if one does 'from pydoc import help', the bizarre
4186 behavior returns, but this will also happen in normal python, so
4190 behavior returns, but this will also happen in normal python, so
4187 it's not an ipython bug anymore (it has to do with how pydoc.help
4191 it's not an ipython bug anymore (it has to do with how pydoc.help
4188 is implemented).
4192 is implemented).
4189
4193
4190 2003-05-22 Fernando Perez <fperez@colorado.edu>
4194 2003-05-22 Fernando Perez <fperez@colorado.edu>
4191
4195
4192 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4196 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4193 return [] instead of None when nothing matches, also match to end
4197 return [] instead of None when nothing matches, also match to end
4194 of line. Patch by Gary Bishop.
4198 of line. Patch by Gary Bishop.
4195
4199
4196 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4200 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4197 protection as before, for files passed on the command line. This
4201 protection as before, for files passed on the command line. This
4198 prevents the CrashHandler from kicking in if user files call into
4202 prevents the CrashHandler from kicking in if user files call into
4199 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4203 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4200 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4204 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4201
4205
4202 2003-05-20 *** Released version 0.4.0
4206 2003-05-20 *** Released version 0.4.0
4203
4207
4204 2003-05-20 Fernando Perez <fperez@colorado.edu>
4208 2003-05-20 Fernando Perez <fperez@colorado.edu>
4205
4209
4206 * setup.py: added support for manpages. It's a bit hackish b/c of
4210 * setup.py: added support for manpages. It's a bit hackish b/c of
4207 a bug in the way the bdist_rpm distutils target handles gzipped
4211 a bug in the way the bdist_rpm distutils target handles gzipped
4208 manpages, but it works. After a patch by Jack.
4212 manpages, but it works. After a patch by Jack.
4209
4213
4210 2003-05-19 Fernando Perez <fperez@colorado.edu>
4214 2003-05-19 Fernando Perez <fperez@colorado.edu>
4211
4215
4212 * IPython/numutils.py: added a mockup of the kinds module, since
4216 * IPython/numutils.py: added a mockup of the kinds module, since
4213 it was recently removed from Numeric. This way, numutils will
4217 it was recently removed from Numeric. This way, numutils will
4214 work for all users even if they are missing kinds.
4218 work for all users even if they are missing kinds.
4215
4219
4216 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4220 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4217 failure, which can occur with SWIG-wrapped extensions. After a
4221 failure, which can occur with SWIG-wrapped extensions. After a
4218 crash report from Prabhu.
4222 crash report from Prabhu.
4219
4223
4220 2003-05-16 Fernando Perez <fperez@colorado.edu>
4224 2003-05-16 Fernando Perez <fperez@colorado.edu>
4221
4225
4222 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4226 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4223 protect ipython from user code which may call directly
4227 protect ipython from user code which may call directly
4224 sys.excepthook (this looks like an ipython crash to the user, even
4228 sys.excepthook (this looks like an ipython crash to the user, even
4225 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4229 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4226 This is especially important to help users of WxWindows, but may
4230 This is especially important to help users of WxWindows, but may
4227 also be useful in other cases.
4231 also be useful in other cases.
4228
4232
4229 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4233 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4230 an optional tb_offset to be specified, and to preserve exception
4234 an optional tb_offset to be specified, and to preserve exception
4231 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4235 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4232
4236
4233 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4237 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4234
4238
4235 2003-05-15 Fernando Perez <fperez@colorado.edu>
4239 2003-05-15 Fernando Perez <fperez@colorado.edu>
4236
4240
4237 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4241 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4238 installing for a new user under Windows.
4242 installing for a new user under Windows.
4239
4243
4240 2003-05-12 Fernando Perez <fperez@colorado.edu>
4244 2003-05-12 Fernando Perez <fperez@colorado.edu>
4241
4245
4242 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4246 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4243 handler for Emacs comint-based lines. Currently it doesn't do
4247 handler for Emacs comint-based lines. Currently it doesn't do
4244 much (but importantly, it doesn't update the history cache). In
4248 much (but importantly, it doesn't update the history cache). In
4245 the future it may be expanded if Alex needs more functionality
4249 the future it may be expanded if Alex needs more functionality
4246 there.
4250 there.
4247
4251
4248 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4252 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4249 info to crash reports.
4253 info to crash reports.
4250
4254
4251 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4255 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4252 just like Python's -c. Also fixed crash with invalid -color
4256 just like Python's -c. Also fixed crash with invalid -color
4253 option value at startup. Thanks to Will French
4257 option value at startup. Thanks to Will French
4254 <wfrench-AT-bestweb.net> for the bug report.
4258 <wfrench-AT-bestweb.net> for the bug report.
4255
4259
4256 2003-05-09 Fernando Perez <fperez@colorado.edu>
4260 2003-05-09 Fernando Perez <fperez@colorado.edu>
4257
4261
4258 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4262 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4259 to EvalDict (it's a mapping, after all) and simplified its code
4263 to EvalDict (it's a mapping, after all) and simplified its code
4260 quite a bit, after a nice discussion on c.l.py where Gustavo
4264 quite a bit, after a nice discussion on c.l.py where Gustavo
4261 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4265 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4262
4266
4263 2003-04-30 Fernando Perez <fperez@colorado.edu>
4267 2003-04-30 Fernando Perez <fperez@colorado.edu>
4264
4268
4265 * IPython/genutils.py (timings_out): modified it to reduce its
4269 * IPython/genutils.py (timings_out): modified it to reduce its
4266 overhead in the common reps==1 case.
4270 overhead in the common reps==1 case.
4267
4271
4268 2003-04-29 Fernando Perez <fperez@colorado.edu>
4272 2003-04-29 Fernando Perez <fperez@colorado.edu>
4269
4273
4270 * IPython/genutils.py (timings_out): Modified to use the resource
4274 * IPython/genutils.py (timings_out): Modified to use the resource
4271 module, which avoids the wraparound problems of time.clock().
4275 module, which avoids the wraparound problems of time.clock().
4272
4276
4273 2003-04-17 *** Released version 0.2.15pre4
4277 2003-04-17 *** Released version 0.2.15pre4
4274
4278
4275 2003-04-17 Fernando Perez <fperez@colorado.edu>
4279 2003-04-17 Fernando Perez <fperez@colorado.edu>
4276
4280
4277 * setup.py (scriptfiles): Split windows-specific stuff over to a
4281 * setup.py (scriptfiles): Split windows-specific stuff over to a
4278 separate file, in an attempt to have a Windows GUI installer.
4282 separate file, in an attempt to have a Windows GUI installer.
4279 That didn't work, but part of the groundwork is done.
4283 That didn't work, but part of the groundwork is done.
4280
4284
4281 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4285 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4282 indent/unindent with 4 spaces. Particularly useful in combination
4286 indent/unindent with 4 spaces. Particularly useful in combination
4283 with the new auto-indent option.
4287 with the new auto-indent option.
4284
4288
4285 2003-04-16 Fernando Perez <fperez@colorado.edu>
4289 2003-04-16 Fernando Perez <fperez@colorado.edu>
4286
4290
4287 * IPython/Magic.py: various replacements of self.rc for
4291 * IPython/Magic.py: various replacements of self.rc for
4288 self.shell.rc. A lot more remains to be done to fully disentangle
4292 self.shell.rc. A lot more remains to be done to fully disentangle
4289 this class from the main Shell class.
4293 this class from the main Shell class.
4290
4294
4291 * IPython/GnuplotRuntime.py: added checks for mouse support so
4295 * IPython/GnuplotRuntime.py: added checks for mouse support so
4292 that we don't try to enable it if the current gnuplot doesn't
4296 that we don't try to enable it if the current gnuplot doesn't
4293 really support it. Also added checks so that we don't try to
4297 really support it. Also added checks so that we don't try to
4294 enable persist under Windows (where Gnuplot doesn't recognize the
4298 enable persist under Windows (where Gnuplot doesn't recognize the
4295 option).
4299 option).
4296
4300
4297 * IPython/iplib.py (InteractiveShell.interact): Added optional
4301 * IPython/iplib.py (InteractiveShell.interact): Added optional
4298 auto-indenting code, after a patch by King C. Shu
4302 auto-indenting code, after a patch by King C. Shu
4299 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4303 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4300 get along well with pasting indented code. If I ever figure out
4304 get along well with pasting indented code. If I ever figure out
4301 how to make that part go well, it will become on by default.
4305 how to make that part go well, it will become on by default.
4302
4306
4303 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4307 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4304 crash ipython if there was an unmatched '%' in the user's prompt
4308 crash ipython if there was an unmatched '%' in the user's prompt
4305 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4309 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4306
4310
4307 * IPython/iplib.py (InteractiveShell.interact): removed the
4311 * IPython/iplib.py (InteractiveShell.interact): removed the
4308 ability to ask the user whether he wants to crash or not at the
4312 ability to ask the user whether he wants to crash or not at the
4309 'last line' exception handler. Calling functions at that point
4313 'last line' exception handler. Calling functions at that point
4310 changes the stack, and the error reports would have incorrect
4314 changes the stack, and the error reports would have incorrect
4311 tracebacks.
4315 tracebacks.
4312
4316
4313 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4317 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4314 pass through a peger a pretty-printed form of any object. After a
4318 pass through a peger a pretty-printed form of any object. After a
4315 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4319 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4316
4320
4317 2003-04-14 Fernando Perez <fperez@colorado.edu>
4321 2003-04-14 Fernando Perez <fperez@colorado.edu>
4318
4322
4319 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4323 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4320 all files in ~ would be modified at first install (instead of
4324 all files in ~ would be modified at first install (instead of
4321 ~/.ipython). This could be potentially disastrous, as the
4325 ~/.ipython). This could be potentially disastrous, as the
4322 modification (make line-endings native) could damage binary files.
4326 modification (make line-endings native) could damage binary files.
4323
4327
4324 2003-04-10 Fernando Perez <fperez@colorado.edu>
4328 2003-04-10 Fernando Perez <fperez@colorado.edu>
4325
4329
4326 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4330 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4327 handle only lines which are invalid python. This now means that
4331 handle only lines which are invalid python. This now means that
4328 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4332 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4329 for the bug report.
4333 for the bug report.
4330
4334
4331 2003-04-01 Fernando Perez <fperez@colorado.edu>
4335 2003-04-01 Fernando Perez <fperez@colorado.edu>
4332
4336
4333 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4337 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4334 where failing to set sys.last_traceback would crash pdb.pm().
4338 where failing to set sys.last_traceback would crash pdb.pm().
4335 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4339 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4336 report.
4340 report.
4337
4341
4338 2003-03-25 Fernando Perez <fperez@colorado.edu>
4342 2003-03-25 Fernando Perez <fperez@colorado.edu>
4339
4343
4340 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4344 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4341 before printing it (it had a lot of spurious blank lines at the
4345 before printing it (it had a lot of spurious blank lines at the
4342 end).
4346 end).
4343
4347
4344 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4348 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4345 output would be sent 21 times! Obviously people don't use this
4349 output would be sent 21 times! Obviously people don't use this
4346 too often, or I would have heard about it.
4350 too often, or I would have heard about it.
4347
4351
4348 2003-03-24 Fernando Perez <fperez@colorado.edu>
4352 2003-03-24 Fernando Perez <fperez@colorado.edu>
4349
4353
4350 * setup.py (scriptfiles): renamed the data_files parameter from
4354 * setup.py (scriptfiles): renamed the data_files parameter from
4351 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4355 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4352 for the patch.
4356 for the patch.
4353
4357
4354 2003-03-20 Fernando Perez <fperez@colorado.edu>
4358 2003-03-20 Fernando Perez <fperez@colorado.edu>
4355
4359
4356 * IPython/genutils.py (error): added error() and fatal()
4360 * IPython/genutils.py (error): added error() and fatal()
4357 functions.
4361 functions.
4358
4362
4359 2003-03-18 *** Released version 0.2.15pre3
4363 2003-03-18 *** Released version 0.2.15pre3
4360
4364
4361 2003-03-18 Fernando Perez <fperez@colorado.edu>
4365 2003-03-18 Fernando Perez <fperez@colorado.edu>
4362
4366
4363 * setupext/install_data_ext.py
4367 * setupext/install_data_ext.py
4364 (install_data_ext.initialize_options): Class contributed by Jack
4368 (install_data_ext.initialize_options): Class contributed by Jack
4365 Moffit for fixing the old distutils hack. He is sending this to
4369 Moffit for fixing the old distutils hack. He is sending this to
4366 the distutils folks so in the future we may not need it as a
4370 the distutils folks so in the future we may not need it as a
4367 private fix.
4371 private fix.
4368
4372
4369 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4373 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4370 changes for Debian packaging. See his patch for full details.
4374 changes for Debian packaging. See his patch for full details.
4371 The old distutils hack of making the ipythonrc* files carry a
4375 The old distutils hack of making the ipythonrc* files carry a
4372 bogus .py extension is gone, at last. Examples were moved to a
4376 bogus .py extension is gone, at last. Examples were moved to a
4373 separate subdir under doc/, and the separate executable scripts
4377 separate subdir under doc/, and the separate executable scripts
4374 now live in their own directory. Overall a great cleanup. The
4378 now live in their own directory. Overall a great cleanup. The
4375 manual was updated to use the new files, and setup.py has been
4379 manual was updated to use the new files, and setup.py has been
4376 fixed for this setup.
4380 fixed for this setup.
4377
4381
4378 * IPython/PyColorize.py (Parser.usage): made non-executable and
4382 * IPython/PyColorize.py (Parser.usage): made non-executable and
4379 created a pycolor wrapper around it to be included as a script.
4383 created a pycolor wrapper around it to be included as a script.
4380
4384
4381 2003-03-12 *** Released version 0.2.15pre2
4385 2003-03-12 *** Released version 0.2.15pre2
4382
4386
4383 2003-03-12 Fernando Perez <fperez@colorado.edu>
4387 2003-03-12 Fernando Perez <fperez@colorado.edu>
4384
4388
4385 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4389 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4386 long-standing problem with garbage characters in some terminals.
4390 long-standing problem with garbage characters in some terminals.
4387 The issue was really that the \001 and \002 escapes must _only_ be
4391 The issue was really that the \001 and \002 escapes must _only_ be
4388 passed to input prompts (which call readline), but _never_ to
4392 passed to input prompts (which call readline), but _never_ to
4389 normal text to be printed on screen. I changed ColorANSI to have
4393 normal text to be printed on screen. I changed ColorANSI to have
4390 two classes: TermColors and InputTermColors, each with the
4394 two classes: TermColors and InputTermColors, each with the
4391 appropriate escapes for input prompts or normal text. The code in
4395 appropriate escapes for input prompts or normal text. The code in
4392 Prompts.py got slightly more complicated, but this very old and
4396 Prompts.py got slightly more complicated, but this very old and
4393 annoying bug is finally fixed.
4397 annoying bug is finally fixed.
4394
4398
4395 All the credit for nailing down the real origin of this problem
4399 All the credit for nailing down the real origin of this problem
4396 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4400 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4397 *Many* thanks to him for spending quite a bit of effort on this.
4401 *Many* thanks to him for spending quite a bit of effort on this.
4398
4402
4399 2003-03-05 *** Released version 0.2.15pre1
4403 2003-03-05 *** Released version 0.2.15pre1
4400
4404
4401 2003-03-03 Fernando Perez <fperez@colorado.edu>
4405 2003-03-03 Fernando Perez <fperez@colorado.edu>
4402
4406
4403 * IPython/FakeModule.py: Moved the former _FakeModule to a
4407 * IPython/FakeModule.py: Moved the former _FakeModule to a
4404 separate file, because it's also needed by Magic (to fix a similar
4408 separate file, because it's also needed by Magic (to fix a similar
4405 pickle-related issue in @run).
4409 pickle-related issue in @run).
4406
4410
4407 2003-03-02 Fernando Perez <fperez@colorado.edu>
4411 2003-03-02 Fernando Perez <fperez@colorado.edu>
4408
4412
4409 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4413 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4410 the autocall option at runtime.
4414 the autocall option at runtime.
4411 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4415 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4412 across Magic.py to start separating Magic from InteractiveShell.
4416 across Magic.py to start separating Magic from InteractiveShell.
4413 (Magic._ofind): Fixed to return proper namespace for dotted
4417 (Magic._ofind): Fixed to return proper namespace for dotted
4414 names. Before, a dotted name would always return 'not currently
4418 names. Before, a dotted name would always return 'not currently
4415 defined', because it would find the 'parent'. s.x would be found,
4419 defined', because it would find the 'parent'. s.x would be found,
4416 but since 'x' isn't defined by itself, it would get confused.
4420 but since 'x' isn't defined by itself, it would get confused.
4417 (Magic.magic_run): Fixed pickling problems reported by Ralf
4421 (Magic.magic_run): Fixed pickling problems reported by Ralf
4418 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4422 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4419 that I'd used when Mike Heeter reported similar issues at the
4423 that I'd used when Mike Heeter reported similar issues at the
4420 top-level, but now for @run. It boils down to injecting the
4424 top-level, but now for @run. It boils down to injecting the
4421 namespace where code is being executed with something that looks
4425 namespace where code is being executed with something that looks
4422 enough like a module to fool pickle.dump(). Since a pickle stores
4426 enough like a module to fool pickle.dump(). Since a pickle stores
4423 a named reference to the importing module, we need this for
4427 a named reference to the importing module, we need this for
4424 pickles to save something sensible.
4428 pickles to save something sensible.
4425
4429
4426 * IPython/ipmaker.py (make_IPython): added an autocall option.
4430 * IPython/ipmaker.py (make_IPython): added an autocall option.
4427
4431
4428 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4432 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4429 the auto-eval code. Now autocalling is an option, and the code is
4433 the auto-eval code. Now autocalling is an option, and the code is
4430 also vastly safer. There is no more eval() involved at all.
4434 also vastly safer. There is no more eval() involved at all.
4431
4435
4432 2003-03-01 Fernando Perez <fperez@colorado.edu>
4436 2003-03-01 Fernando Perez <fperez@colorado.edu>
4433
4437
4434 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4438 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4435 dict with named keys instead of a tuple.
4439 dict with named keys instead of a tuple.
4436
4440
4437 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4441 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4438
4442
4439 * setup.py (make_shortcut): Fixed message about directories
4443 * setup.py (make_shortcut): Fixed message about directories
4440 created during Windows installation (the directories were ok, just
4444 created during Windows installation (the directories were ok, just
4441 the printed message was misleading). Thanks to Chris Liechti
4445 the printed message was misleading). Thanks to Chris Liechti
4442 <cliechti-AT-gmx.net> for the heads up.
4446 <cliechti-AT-gmx.net> for the heads up.
4443
4447
4444 2003-02-21 Fernando Perez <fperez@colorado.edu>
4448 2003-02-21 Fernando Perez <fperez@colorado.edu>
4445
4449
4446 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4450 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4447 of ValueError exception when checking for auto-execution. This
4451 of ValueError exception when checking for auto-execution. This
4448 one is raised by things like Numeric arrays arr.flat when the
4452 one is raised by things like Numeric arrays arr.flat when the
4449 array is non-contiguous.
4453 array is non-contiguous.
4450
4454
4451 2003-01-31 Fernando Perez <fperez@colorado.edu>
4455 2003-01-31 Fernando Perez <fperez@colorado.edu>
4452
4456
4453 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4457 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4454 not return any value at all (even though the command would get
4458 not return any value at all (even though the command would get
4455 executed).
4459 executed).
4456 (xsys): Flush stdout right after printing the command to ensure
4460 (xsys): Flush stdout right after printing the command to ensure
4457 proper ordering of commands and command output in the total
4461 proper ordering of commands and command output in the total
4458 output.
4462 output.
4459 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4463 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4460 system/getoutput as defaults. The old ones are kept for
4464 system/getoutput as defaults. The old ones are kept for
4461 compatibility reasons, so no code which uses this library needs
4465 compatibility reasons, so no code which uses this library needs
4462 changing.
4466 changing.
4463
4467
4464 2003-01-27 *** Released version 0.2.14
4468 2003-01-27 *** Released version 0.2.14
4465
4469
4466 2003-01-25 Fernando Perez <fperez@colorado.edu>
4470 2003-01-25 Fernando Perez <fperez@colorado.edu>
4467
4471
4468 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4472 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4469 functions defined in previous edit sessions could not be re-edited
4473 functions defined in previous edit sessions could not be re-edited
4470 (because the temp files were immediately removed). Now temp files
4474 (because the temp files were immediately removed). Now temp files
4471 are removed only at IPython's exit.
4475 are removed only at IPython's exit.
4472 (Magic.magic_run): Improved @run to perform shell-like expansions
4476 (Magic.magic_run): Improved @run to perform shell-like expansions
4473 on its arguments (~users and $VARS). With this, @run becomes more
4477 on its arguments (~users and $VARS). With this, @run becomes more
4474 like a normal command-line.
4478 like a normal command-line.
4475
4479
4476 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4480 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4477 bugs related to embedding and cleaned up that code. A fairly
4481 bugs related to embedding and cleaned up that code. A fairly
4478 important one was the impossibility to access the global namespace
4482 important one was the impossibility to access the global namespace
4479 through the embedded IPython (only local variables were visible).
4483 through the embedded IPython (only local variables were visible).
4480
4484
4481 2003-01-14 Fernando Perez <fperez@colorado.edu>
4485 2003-01-14 Fernando Perez <fperez@colorado.edu>
4482
4486
4483 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4487 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4484 auto-calling to be a bit more conservative. Now it doesn't get
4488 auto-calling to be a bit more conservative. Now it doesn't get
4485 triggered if any of '!=()<>' are in the rest of the input line, to
4489 triggered if any of '!=()<>' are in the rest of the input line, to
4486 allow comparing callables. Thanks to Alex for the heads up.
4490 allow comparing callables. Thanks to Alex for the heads up.
4487
4491
4488 2003-01-07 Fernando Perez <fperez@colorado.edu>
4492 2003-01-07 Fernando Perez <fperez@colorado.edu>
4489
4493
4490 * IPython/genutils.py (page): fixed estimation of the number of
4494 * IPython/genutils.py (page): fixed estimation of the number of
4491 lines in a string to be paged to simply count newlines. This
4495 lines in a string to be paged to simply count newlines. This
4492 prevents over-guessing due to embedded escape sequences. A better
4496 prevents over-guessing due to embedded escape sequences. A better
4493 long-term solution would involve stripping out the control chars
4497 long-term solution would involve stripping out the control chars
4494 for the count, but it's potentially so expensive I just don't
4498 for the count, but it's potentially so expensive I just don't
4495 think it's worth doing.
4499 think it's worth doing.
4496
4500
4497 2002-12-19 *** Released version 0.2.14pre50
4501 2002-12-19 *** Released version 0.2.14pre50
4498
4502
4499 2002-12-19 Fernando Perez <fperez@colorado.edu>
4503 2002-12-19 Fernando Perez <fperez@colorado.edu>
4500
4504
4501 * tools/release (version): Changed release scripts to inform
4505 * tools/release (version): Changed release scripts to inform
4502 Andrea and build a NEWS file with a list of recent changes.
4506 Andrea and build a NEWS file with a list of recent changes.
4503
4507
4504 * IPython/ColorANSI.py (__all__): changed terminal detection
4508 * IPython/ColorANSI.py (__all__): changed terminal detection
4505 code. Seems to work better for xterms without breaking
4509 code. Seems to work better for xterms without breaking
4506 konsole. Will need more testing to determine if WinXP and Mac OSX
4510 konsole. Will need more testing to determine if WinXP and Mac OSX
4507 also work ok.
4511 also work ok.
4508
4512
4509 2002-12-18 *** Released version 0.2.14pre49
4513 2002-12-18 *** Released version 0.2.14pre49
4510
4514
4511 2002-12-18 Fernando Perez <fperez@colorado.edu>
4515 2002-12-18 Fernando Perez <fperez@colorado.edu>
4512
4516
4513 * Docs: added new info about Mac OSX, from Andrea.
4517 * Docs: added new info about Mac OSX, from Andrea.
4514
4518
4515 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4519 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4516 allow direct plotting of python strings whose format is the same
4520 allow direct plotting of python strings whose format is the same
4517 of gnuplot data files.
4521 of gnuplot data files.
4518
4522
4519 2002-12-16 Fernando Perez <fperez@colorado.edu>
4523 2002-12-16 Fernando Perez <fperez@colorado.edu>
4520
4524
4521 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4525 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4522 value of exit question to be acknowledged.
4526 value of exit question to be acknowledged.
4523
4527
4524 2002-12-03 Fernando Perez <fperez@colorado.edu>
4528 2002-12-03 Fernando Perez <fperez@colorado.edu>
4525
4529
4526 * IPython/ipmaker.py: removed generators, which had been added
4530 * IPython/ipmaker.py: removed generators, which had been added
4527 by mistake in an earlier debugging run. This was causing trouble
4531 by mistake in an earlier debugging run. This was causing trouble
4528 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4532 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4529 for pointing this out.
4533 for pointing this out.
4530
4534
4531 2002-11-17 Fernando Perez <fperez@colorado.edu>
4535 2002-11-17 Fernando Perez <fperez@colorado.edu>
4532
4536
4533 * Manual: updated the Gnuplot section.
4537 * Manual: updated the Gnuplot section.
4534
4538
4535 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4539 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4536 a much better split of what goes in Runtime and what goes in
4540 a much better split of what goes in Runtime and what goes in
4537 Interactive.
4541 Interactive.
4538
4542
4539 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4543 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4540 being imported from iplib.
4544 being imported from iplib.
4541
4545
4542 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4546 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4543 for command-passing. Now the global Gnuplot instance is called
4547 for command-passing. Now the global Gnuplot instance is called
4544 'gp' instead of 'g', which was really a far too fragile and
4548 'gp' instead of 'g', which was really a far too fragile and
4545 common name.
4549 common name.
4546
4550
4547 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4551 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4548 bounding boxes generated by Gnuplot for square plots.
4552 bounding boxes generated by Gnuplot for square plots.
4549
4553
4550 * IPython/genutils.py (popkey): new function added. I should
4554 * IPython/genutils.py (popkey): new function added. I should
4551 suggest this on c.l.py as a dict method, it seems useful.
4555 suggest this on c.l.py as a dict method, it seems useful.
4552
4556
4553 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4557 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4554 to transparently handle PostScript generation. MUCH better than
4558 to transparently handle PostScript generation. MUCH better than
4555 the previous plot_eps/replot_eps (which I removed now). The code
4559 the previous plot_eps/replot_eps (which I removed now). The code
4556 is also fairly clean and well documented now (including
4560 is also fairly clean and well documented now (including
4557 docstrings).
4561 docstrings).
4558
4562
4559 2002-11-13 Fernando Perez <fperez@colorado.edu>
4563 2002-11-13 Fernando Perez <fperez@colorado.edu>
4560
4564
4561 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4565 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4562 (inconsistent with options).
4566 (inconsistent with options).
4563
4567
4564 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4568 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4565 manually disabled, I don't know why. Fixed it.
4569 manually disabled, I don't know why. Fixed it.
4566 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4570 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4567 eps output.
4571 eps output.
4568
4572
4569 2002-11-12 Fernando Perez <fperez@colorado.edu>
4573 2002-11-12 Fernando Perez <fperez@colorado.edu>
4570
4574
4571 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4575 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4572 don't propagate up to caller. Fixes crash reported by François
4576 don't propagate up to caller. Fixes crash reported by François
4573 Pinard.
4577 Pinard.
4574
4578
4575 2002-11-09 Fernando Perez <fperez@colorado.edu>
4579 2002-11-09 Fernando Perez <fperez@colorado.edu>
4576
4580
4577 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4581 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4578 history file for new users.
4582 history file for new users.
4579 (make_IPython): fixed bug where initial install would leave the
4583 (make_IPython): fixed bug where initial install would leave the
4580 user running in the .ipython dir.
4584 user running in the .ipython dir.
4581 (make_IPython): fixed bug where config dir .ipython would be
4585 (make_IPython): fixed bug where config dir .ipython would be
4582 created regardless of the given -ipythondir option. Thanks to Cory
4586 created regardless of the given -ipythondir option. Thanks to Cory
4583 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4587 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4584
4588
4585 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4589 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4586 type confirmations. Will need to use it in all of IPython's code
4590 type confirmations. Will need to use it in all of IPython's code
4587 consistently.
4591 consistently.
4588
4592
4589 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4593 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4590 context to print 31 lines instead of the default 5. This will make
4594 context to print 31 lines instead of the default 5. This will make
4591 the crash reports extremely detailed in case the problem is in
4595 the crash reports extremely detailed in case the problem is in
4592 libraries I don't have access to.
4596 libraries I don't have access to.
4593
4597
4594 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4598 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4595 line of defense' code to still crash, but giving users fair
4599 line of defense' code to still crash, but giving users fair
4596 warning. I don't want internal errors to go unreported: if there's
4600 warning. I don't want internal errors to go unreported: if there's
4597 an internal problem, IPython should crash and generate a full
4601 an internal problem, IPython should crash and generate a full
4598 report.
4602 report.
4599
4603
4600 2002-11-08 Fernando Perez <fperez@colorado.edu>
4604 2002-11-08 Fernando Perez <fperez@colorado.edu>
4601
4605
4602 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4606 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4603 otherwise uncaught exceptions which can appear if people set
4607 otherwise uncaught exceptions which can appear if people set
4604 sys.stdout to something badly broken. Thanks to a crash report
4608 sys.stdout to something badly broken. Thanks to a crash report
4605 from henni-AT-mail.brainbot.com.
4609 from henni-AT-mail.brainbot.com.
4606
4610
4607 2002-11-04 Fernando Perez <fperez@colorado.edu>
4611 2002-11-04 Fernando Perez <fperez@colorado.edu>
4608
4612
4609 * IPython/iplib.py (InteractiveShell.interact): added
4613 * IPython/iplib.py (InteractiveShell.interact): added
4610 __IPYTHON__active to the builtins. It's a flag which goes on when
4614 __IPYTHON__active to the builtins. It's a flag which goes on when
4611 the interaction starts and goes off again when it stops. This
4615 the interaction starts and goes off again when it stops. This
4612 allows embedding code to detect being inside IPython. Before this
4616 allows embedding code to detect being inside IPython. Before this
4613 was done via __IPYTHON__, but that only shows that an IPython
4617 was done via __IPYTHON__, but that only shows that an IPython
4614 instance has been created.
4618 instance has been created.
4615
4619
4616 * IPython/Magic.py (Magic.magic_env): I realized that in a
4620 * IPython/Magic.py (Magic.magic_env): I realized that in a
4617 UserDict, instance.data holds the data as a normal dict. So I
4621 UserDict, instance.data holds the data as a normal dict. So I
4618 modified @env to return os.environ.data instead of rebuilding a
4622 modified @env to return os.environ.data instead of rebuilding a
4619 dict by hand.
4623 dict by hand.
4620
4624
4621 2002-11-02 Fernando Perez <fperez@colorado.edu>
4625 2002-11-02 Fernando Perez <fperez@colorado.edu>
4622
4626
4623 * IPython/genutils.py (warn): changed so that level 1 prints no
4627 * IPython/genutils.py (warn): changed so that level 1 prints no
4624 header. Level 2 is now the default (with 'WARNING' header, as
4628 header. Level 2 is now the default (with 'WARNING' header, as
4625 before). I think I tracked all places where changes were needed in
4629 before). I think I tracked all places where changes were needed in
4626 IPython, but outside code using the old level numbering may have
4630 IPython, but outside code using the old level numbering may have
4627 broken.
4631 broken.
4628
4632
4629 * IPython/iplib.py (InteractiveShell.runcode): added this to
4633 * IPython/iplib.py (InteractiveShell.runcode): added this to
4630 handle the tracebacks in SystemExit traps correctly. The previous
4634 handle the tracebacks in SystemExit traps correctly. The previous
4631 code (through interact) was printing more of the stack than
4635 code (through interact) was printing more of the stack than
4632 necessary, showing IPython internal code to the user.
4636 necessary, showing IPython internal code to the user.
4633
4637
4634 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4638 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4635 default. Now that the default at the confirmation prompt is yes,
4639 default. Now that the default at the confirmation prompt is yes,
4636 it's not so intrusive. François' argument that ipython sessions
4640 it's not so intrusive. François' argument that ipython sessions
4637 tend to be complex enough not to lose them from an accidental C-d,
4641 tend to be complex enough not to lose them from an accidental C-d,
4638 is a valid one.
4642 is a valid one.
4639
4643
4640 * IPython/iplib.py (InteractiveShell.interact): added a
4644 * IPython/iplib.py (InteractiveShell.interact): added a
4641 showtraceback() call to the SystemExit trap, and modified the exit
4645 showtraceback() call to the SystemExit trap, and modified the exit
4642 confirmation to have yes as the default.
4646 confirmation to have yes as the default.
4643
4647
4644 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4648 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4645 this file. It's been gone from the code for a long time, this was
4649 this file. It's been gone from the code for a long time, this was
4646 simply leftover junk.
4650 simply leftover junk.
4647
4651
4648 2002-11-01 Fernando Perez <fperez@colorado.edu>
4652 2002-11-01 Fernando Perez <fperez@colorado.edu>
4649
4653
4650 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4654 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4651 added. If set, IPython now traps EOF and asks for
4655 added. If set, IPython now traps EOF and asks for
4652 confirmation. After a request by François Pinard.
4656 confirmation. After a request by François Pinard.
4653
4657
4654 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4658 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4655 of @abort, and with a new (better) mechanism for handling the
4659 of @abort, and with a new (better) mechanism for handling the
4656 exceptions.
4660 exceptions.
4657
4661
4658 2002-10-27 Fernando Perez <fperez@colorado.edu>
4662 2002-10-27 Fernando Perez <fperez@colorado.edu>
4659
4663
4660 * IPython/usage.py (__doc__): updated the --help information and
4664 * IPython/usage.py (__doc__): updated the --help information and
4661 the ipythonrc file to indicate that -log generates
4665 the ipythonrc file to indicate that -log generates
4662 ./ipython.log. Also fixed the corresponding info in @logstart.
4666 ./ipython.log. Also fixed the corresponding info in @logstart.
4663 This and several other fixes in the manuals thanks to reports by
4667 This and several other fixes in the manuals thanks to reports by
4664 François Pinard <pinard-AT-iro.umontreal.ca>.
4668 François Pinard <pinard-AT-iro.umontreal.ca>.
4665
4669
4666 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4670 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4667 refer to @logstart (instead of @log, which doesn't exist).
4671 refer to @logstart (instead of @log, which doesn't exist).
4668
4672
4669 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4673 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4670 AttributeError crash. Thanks to Christopher Armstrong
4674 AttributeError crash. Thanks to Christopher Armstrong
4671 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4675 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4672 introduced recently (in 0.2.14pre37) with the fix to the eval
4676 introduced recently (in 0.2.14pre37) with the fix to the eval
4673 problem mentioned below.
4677 problem mentioned below.
4674
4678
4675 2002-10-17 Fernando Perez <fperez@colorado.edu>
4679 2002-10-17 Fernando Perez <fperez@colorado.edu>
4676
4680
4677 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4681 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4678 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4682 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4679
4683
4680 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4684 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4681 this function to fix a problem reported by Alex Schmolck. He saw
4685 this function to fix a problem reported by Alex Schmolck. He saw
4682 it with list comprehensions and generators, which were getting
4686 it with list comprehensions and generators, which were getting
4683 called twice. The real problem was an 'eval' call in testing for
4687 called twice. The real problem was an 'eval' call in testing for
4684 automagic which was evaluating the input line silently.
4688 automagic which was evaluating the input line silently.
4685
4689
4686 This is a potentially very nasty bug, if the input has side
4690 This is a potentially very nasty bug, if the input has side
4687 effects which must not be repeated. The code is much cleaner now,
4691 effects which must not be repeated. The code is much cleaner now,
4688 without any blanket 'except' left and with a regexp test for
4692 without any blanket 'except' left and with a regexp test for
4689 actual function names.
4693 actual function names.
4690
4694
4691 But an eval remains, which I'm not fully comfortable with. I just
4695 But an eval remains, which I'm not fully comfortable with. I just
4692 don't know how to find out if an expression could be a callable in
4696 don't know how to find out if an expression could be a callable in
4693 the user's namespace without doing an eval on the string. However
4697 the user's namespace without doing an eval on the string. However
4694 that string is now much more strictly checked so that no code
4698 that string is now much more strictly checked so that no code
4695 slips by, so the eval should only happen for things that can
4699 slips by, so the eval should only happen for things that can
4696 really be only function/method names.
4700 really be only function/method names.
4697
4701
4698 2002-10-15 Fernando Perez <fperez@colorado.edu>
4702 2002-10-15 Fernando Perez <fperez@colorado.edu>
4699
4703
4700 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4704 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4701 OSX information to main manual, removed README_Mac_OSX file from
4705 OSX information to main manual, removed README_Mac_OSX file from
4702 distribution. Also updated credits for recent additions.
4706 distribution. Also updated credits for recent additions.
4703
4707
4704 2002-10-10 Fernando Perez <fperez@colorado.edu>
4708 2002-10-10 Fernando Perez <fperez@colorado.edu>
4705
4709
4706 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4710 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4707 terminal-related issues. Many thanks to Andrea Riciputi
4711 terminal-related issues. Many thanks to Andrea Riciputi
4708 <andrea.riciputi-AT-libero.it> for writing it.
4712 <andrea.riciputi-AT-libero.it> for writing it.
4709
4713
4710 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4714 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4711 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4715 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4712
4716
4713 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4717 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4714 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4718 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4715 <syver-en-AT-online.no> who both submitted patches for this problem.
4719 <syver-en-AT-online.no> who both submitted patches for this problem.
4716
4720
4717 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4721 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4718 global embedding to make sure that things don't overwrite user
4722 global embedding to make sure that things don't overwrite user
4719 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4723 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4720
4724
4721 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4725 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4722 compatibility. Thanks to Hayden Callow
4726 compatibility. Thanks to Hayden Callow
4723 <h.callow-AT-elec.canterbury.ac.nz>
4727 <h.callow-AT-elec.canterbury.ac.nz>
4724
4728
4725 2002-10-04 Fernando Perez <fperez@colorado.edu>
4729 2002-10-04 Fernando Perez <fperez@colorado.edu>
4726
4730
4727 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4731 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4728 Gnuplot.File objects.
4732 Gnuplot.File objects.
4729
4733
4730 2002-07-23 Fernando Perez <fperez@colorado.edu>
4734 2002-07-23 Fernando Perez <fperez@colorado.edu>
4731
4735
4732 * IPython/genutils.py (timing): Added timings() and timing() for
4736 * IPython/genutils.py (timing): Added timings() and timing() for
4733 quick access to the most commonly needed data, the execution
4737 quick access to the most commonly needed data, the execution
4734 times. Old timing() renamed to timings_out().
4738 times. Old timing() renamed to timings_out().
4735
4739
4736 2002-07-18 Fernando Perez <fperez@colorado.edu>
4740 2002-07-18 Fernando Perez <fperez@colorado.edu>
4737
4741
4738 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4742 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4739 bug with nested instances disrupting the parent's tab completion.
4743 bug with nested instances disrupting the parent's tab completion.
4740
4744
4741 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4745 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4742 all_completions code to begin the emacs integration.
4746 all_completions code to begin the emacs integration.
4743
4747
4744 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4748 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4745 argument to allow titling individual arrays when plotting.
4749 argument to allow titling individual arrays when plotting.
4746
4750
4747 2002-07-15 Fernando Perez <fperez@colorado.edu>
4751 2002-07-15 Fernando Perez <fperez@colorado.edu>
4748
4752
4749 * setup.py (make_shortcut): changed to retrieve the value of
4753 * setup.py (make_shortcut): changed to retrieve the value of
4750 'Program Files' directory from the registry (this value changes in
4754 'Program Files' directory from the registry (this value changes in
4751 non-english versions of Windows). Thanks to Thomas Fanslau
4755 non-english versions of Windows). Thanks to Thomas Fanslau
4752 <tfanslau-AT-gmx.de> for the report.
4756 <tfanslau-AT-gmx.de> for the report.
4753
4757
4754 2002-07-10 Fernando Perez <fperez@colorado.edu>
4758 2002-07-10 Fernando Perez <fperez@colorado.edu>
4755
4759
4756 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4760 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4757 a bug in pdb, which crashes if a line with only whitespace is
4761 a bug in pdb, which crashes if a line with only whitespace is
4758 entered. Bug report submitted to sourceforge.
4762 entered. Bug report submitted to sourceforge.
4759
4763
4760 2002-07-09 Fernando Perez <fperez@colorado.edu>
4764 2002-07-09 Fernando Perez <fperez@colorado.edu>
4761
4765
4762 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4766 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4763 reporting exceptions (it's a bug in inspect.py, I just set a
4767 reporting exceptions (it's a bug in inspect.py, I just set a
4764 workaround).
4768 workaround).
4765
4769
4766 2002-07-08 Fernando Perez <fperez@colorado.edu>
4770 2002-07-08 Fernando Perez <fperez@colorado.edu>
4767
4771
4768 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4772 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4769 __IPYTHON__ in __builtins__ to show up in user_ns.
4773 __IPYTHON__ in __builtins__ to show up in user_ns.
4770
4774
4771 2002-07-03 Fernando Perez <fperez@colorado.edu>
4775 2002-07-03 Fernando Perez <fperez@colorado.edu>
4772
4776
4773 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4777 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4774 name from @gp_set_instance to @gp_set_default.
4778 name from @gp_set_instance to @gp_set_default.
4775
4779
4776 * IPython/ipmaker.py (make_IPython): default editor value set to
4780 * IPython/ipmaker.py (make_IPython): default editor value set to
4777 '0' (a string), to match the rc file. Otherwise will crash when
4781 '0' (a string), to match the rc file. Otherwise will crash when
4778 .strip() is called on it.
4782 .strip() is called on it.
4779
4783
4780
4784
4781 2002-06-28 Fernando Perez <fperez@colorado.edu>
4785 2002-06-28 Fernando Perez <fperez@colorado.edu>
4782
4786
4783 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4787 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4784 of files in current directory when a file is executed via
4788 of files in current directory when a file is executed via
4785 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4789 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4786
4790
4787 * setup.py (manfiles): fix for rpm builds, submitted by RA
4791 * setup.py (manfiles): fix for rpm builds, submitted by RA
4788 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4792 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4789
4793
4790 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4794 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4791 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4795 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4792 string!). A. Schmolck caught this one.
4796 string!). A. Schmolck caught this one.
4793
4797
4794 2002-06-27 Fernando Perez <fperez@colorado.edu>
4798 2002-06-27 Fernando Perez <fperez@colorado.edu>
4795
4799
4796 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4800 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4797 defined files at the cmd line. __name__ wasn't being set to
4801 defined files at the cmd line. __name__ wasn't being set to
4798 __main__.
4802 __main__.
4799
4803
4800 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4804 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4801 regular lists and tuples besides Numeric arrays.
4805 regular lists and tuples besides Numeric arrays.
4802
4806
4803 * IPython/Prompts.py (CachedOutput.__call__): Added output
4807 * IPython/Prompts.py (CachedOutput.__call__): Added output
4804 supression for input ending with ';'. Similar to Mathematica and
4808 supression for input ending with ';'. Similar to Mathematica and
4805 Matlab. The _* vars and Out[] list are still updated, just like
4809 Matlab. The _* vars and Out[] list are still updated, just like
4806 Mathematica behaves.
4810 Mathematica behaves.
4807
4811
4808 2002-06-25 Fernando Perez <fperez@colorado.edu>
4812 2002-06-25 Fernando Perez <fperez@colorado.edu>
4809
4813
4810 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4814 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4811 .ini extensions for profiels under Windows.
4815 .ini extensions for profiels under Windows.
4812
4816
4813 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4817 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4814 string form. Fix contributed by Alexander Schmolck
4818 string form. Fix contributed by Alexander Schmolck
4815 <a.schmolck-AT-gmx.net>
4819 <a.schmolck-AT-gmx.net>
4816
4820
4817 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4821 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4818 pre-configured Gnuplot instance.
4822 pre-configured Gnuplot instance.
4819
4823
4820 2002-06-21 Fernando Perez <fperez@colorado.edu>
4824 2002-06-21 Fernando Perez <fperez@colorado.edu>
4821
4825
4822 * IPython/numutils.py (exp_safe): new function, works around the
4826 * IPython/numutils.py (exp_safe): new function, works around the
4823 underflow problems in Numeric.
4827 underflow problems in Numeric.
4824 (log2): New fn. Safe log in base 2: returns exact integer answer
4828 (log2): New fn. Safe log in base 2: returns exact integer answer
4825 for exact integer powers of 2.
4829 for exact integer powers of 2.
4826
4830
4827 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4831 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4828 properly.
4832 properly.
4829
4833
4830 2002-06-20 Fernando Perez <fperez@colorado.edu>
4834 2002-06-20 Fernando Perez <fperez@colorado.edu>
4831
4835
4832 * IPython/genutils.py (timing): new function like
4836 * IPython/genutils.py (timing): new function like
4833 Mathematica's. Similar to time_test, but returns more info.
4837 Mathematica's. Similar to time_test, but returns more info.
4834
4838
4835 2002-06-18 Fernando Perez <fperez@colorado.edu>
4839 2002-06-18 Fernando Perez <fperez@colorado.edu>
4836
4840
4837 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4841 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4838 according to Mike Heeter's suggestions.
4842 according to Mike Heeter's suggestions.
4839
4843
4840 2002-06-16 Fernando Perez <fperez@colorado.edu>
4844 2002-06-16 Fernando Perez <fperez@colorado.edu>
4841
4845
4842 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4846 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4843 system. GnuplotMagic is gone as a user-directory option. New files
4847 system. GnuplotMagic is gone as a user-directory option. New files
4844 make it easier to use all the gnuplot stuff both from external
4848 make it easier to use all the gnuplot stuff both from external
4845 programs as well as from IPython. Had to rewrite part of
4849 programs as well as from IPython. Had to rewrite part of
4846 hardcopy() b/c of a strange bug: often the ps files simply don't
4850 hardcopy() b/c of a strange bug: often the ps files simply don't
4847 get created, and require a repeat of the command (often several
4851 get created, and require a repeat of the command (often several
4848 times).
4852 times).
4849
4853
4850 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4854 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4851 resolve output channel at call time, so that if sys.stderr has
4855 resolve output channel at call time, so that if sys.stderr has
4852 been redirected by user this gets honored.
4856 been redirected by user this gets honored.
4853
4857
4854 2002-06-13 Fernando Perez <fperez@colorado.edu>
4858 2002-06-13 Fernando Perez <fperez@colorado.edu>
4855
4859
4856 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4860 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4857 IPShell. Kept a copy with the old names to avoid breaking people's
4861 IPShell. Kept a copy with the old names to avoid breaking people's
4858 embedded code.
4862 embedded code.
4859
4863
4860 * IPython/ipython: simplified it to the bare minimum after
4864 * IPython/ipython: simplified it to the bare minimum after
4861 Holger's suggestions. Added info about how to use it in
4865 Holger's suggestions. Added info about how to use it in
4862 PYTHONSTARTUP.
4866 PYTHONSTARTUP.
4863
4867
4864 * IPython/Shell.py (IPythonShell): changed the options passing
4868 * IPython/Shell.py (IPythonShell): changed the options passing
4865 from a string with funky %s replacements to a straight list. Maybe
4869 from a string with funky %s replacements to a straight list. Maybe
4866 a bit more typing, but it follows sys.argv conventions, so there's
4870 a bit more typing, but it follows sys.argv conventions, so there's
4867 less special-casing to remember.
4871 less special-casing to remember.
4868
4872
4869 2002-06-12 Fernando Perez <fperez@colorado.edu>
4873 2002-06-12 Fernando Perez <fperez@colorado.edu>
4870
4874
4871 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4875 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4872 command. Thanks to a suggestion by Mike Heeter.
4876 command. Thanks to a suggestion by Mike Heeter.
4873 (Magic.magic_pfile): added behavior to look at filenames if given
4877 (Magic.magic_pfile): added behavior to look at filenames if given
4874 arg is not a defined object.
4878 arg is not a defined object.
4875 (Magic.magic_save): New @save function to save code snippets. Also
4879 (Magic.magic_save): New @save function to save code snippets. Also
4876 a Mike Heeter idea.
4880 a Mike Heeter idea.
4877
4881
4878 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4882 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4879 plot() and replot(). Much more convenient now, especially for
4883 plot() and replot(). Much more convenient now, especially for
4880 interactive use.
4884 interactive use.
4881
4885
4882 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4886 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4883 filenames.
4887 filenames.
4884
4888
4885 2002-06-02 Fernando Perez <fperez@colorado.edu>
4889 2002-06-02 Fernando Perez <fperez@colorado.edu>
4886
4890
4887 * IPython/Struct.py (Struct.__init__): modified to admit
4891 * IPython/Struct.py (Struct.__init__): modified to admit
4888 initialization via another struct.
4892 initialization via another struct.
4889
4893
4890 * IPython/genutils.py (SystemExec.__init__): New stateful
4894 * IPython/genutils.py (SystemExec.__init__): New stateful
4891 interface to xsys and bq. Useful for writing system scripts.
4895 interface to xsys and bq. Useful for writing system scripts.
4892
4896
4893 2002-05-30 Fernando Perez <fperez@colorado.edu>
4897 2002-05-30 Fernando Perez <fperez@colorado.edu>
4894
4898
4895 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4899 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4896 documents. This will make the user download smaller (it's getting
4900 documents. This will make the user download smaller (it's getting
4897 too big).
4901 too big).
4898
4902
4899 2002-05-29 Fernando Perez <fperez@colorado.edu>
4903 2002-05-29 Fernando Perez <fperez@colorado.edu>
4900
4904
4901 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4905 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4902 fix problems with shelve and pickle. Seems to work, but I don't
4906 fix problems with shelve and pickle. Seems to work, but I don't
4903 know if corner cases break it. Thanks to Mike Heeter
4907 know if corner cases break it. Thanks to Mike Heeter
4904 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4908 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4905
4909
4906 2002-05-24 Fernando Perez <fperez@colorado.edu>
4910 2002-05-24 Fernando Perez <fperez@colorado.edu>
4907
4911
4908 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4912 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4909 macros having broken.
4913 macros having broken.
4910
4914
4911 2002-05-21 Fernando Perez <fperez@colorado.edu>
4915 2002-05-21 Fernando Perez <fperez@colorado.edu>
4912
4916
4913 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4917 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4914 introduced logging bug: all history before logging started was
4918 introduced logging bug: all history before logging started was
4915 being written one character per line! This came from the redesign
4919 being written one character per line! This came from the redesign
4916 of the input history as a special list which slices to strings,
4920 of the input history as a special list which slices to strings,
4917 not to lists.
4921 not to lists.
4918
4922
4919 2002-05-20 Fernando Perez <fperez@colorado.edu>
4923 2002-05-20 Fernando Perez <fperez@colorado.edu>
4920
4924
4921 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4925 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4922 be an attribute of all classes in this module. The design of these
4926 be an attribute of all classes in this module. The design of these
4923 classes needs some serious overhauling.
4927 classes needs some serious overhauling.
4924
4928
4925 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4929 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4926 which was ignoring '_' in option names.
4930 which was ignoring '_' in option names.
4927
4931
4928 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4932 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4929 'Verbose_novars' to 'Context' and made it the new default. It's a
4933 'Verbose_novars' to 'Context' and made it the new default. It's a
4930 bit more readable and also safer than verbose.
4934 bit more readable and also safer than verbose.
4931
4935
4932 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4936 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4933 triple-quoted strings.
4937 triple-quoted strings.
4934
4938
4935 * IPython/OInspect.py (__all__): new module exposing the object
4939 * IPython/OInspect.py (__all__): new module exposing the object
4936 introspection facilities. Now the corresponding magics are dummy
4940 introspection facilities. Now the corresponding magics are dummy
4937 wrappers around this. Having this module will make it much easier
4941 wrappers around this. Having this module will make it much easier
4938 to put these functions into our modified pdb.
4942 to put these functions into our modified pdb.
4939 This new object inspector system uses the new colorizing module,
4943 This new object inspector system uses the new colorizing module,
4940 so source code and other things are nicely syntax highlighted.
4944 so source code and other things are nicely syntax highlighted.
4941
4945
4942 2002-05-18 Fernando Perez <fperez@colorado.edu>
4946 2002-05-18 Fernando Perez <fperez@colorado.edu>
4943
4947
4944 * IPython/ColorANSI.py: Split the coloring tools into a separate
4948 * IPython/ColorANSI.py: Split the coloring tools into a separate
4945 module so I can use them in other code easier (they were part of
4949 module so I can use them in other code easier (they were part of
4946 ultraTB).
4950 ultraTB).
4947
4951
4948 2002-05-17 Fernando Perez <fperez@colorado.edu>
4952 2002-05-17 Fernando Perez <fperez@colorado.edu>
4949
4953
4950 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4954 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4951 fixed it to set the global 'g' also to the called instance, as
4955 fixed it to set the global 'g' also to the called instance, as
4952 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4956 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4953 user's 'g' variables).
4957 user's 'g' variables).
4954
4958
4955 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4959 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4956 global variables (aliases to _ih,_oh) so that users which expect
4960 global variables (aliases to _ih,_oh) so that users which expect
4957 In[5] or Out[7] to work aren't unpleasantly surprised.
4961 In[5] or Out[7] to work aren't unpleasantly surprised.
4958 (InputList.__getslice__): new class to allow executing slices of
4962 (InputList.__getslice__): new class to allow executing slices of
4959 input history directly. Very simple class, complements the use of
4963 input history directly. Very simple class, complements the use of
4960 macros.
4964 macros.
4961
4965
4962 2002-05-16 Fernando Perez <fperez@colorado.edu>
4966 2002-05-16 Fernando Perez <fperez@colorado.edu>
4963
4967
4964 * setup.py (docdirbase): make doc directory be just doc/IPython
4968 * setup.py (docdirbase): make doc directory be just doc/IPython
4965 without version numbers, it will reduce clutter for users.
4969 without version numbers, it will reduce clutter for users.
4966
4970
4967 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4971 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4968 execfile call to prevent possible memory leak. See for details:
4972 execfile call to prevent possible memory leak. See for details:
4969 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4973 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4970
4974
4971 2002-05-15 Fernando Perez <fperez@colorado.edu>
4975 2002-05-15 Fernando Perez <fperez@colorado.edu>
4972
4976
4973 * IPython/Magic.py (Magic.magic_psource): made the object
4977 * IPython/Magic.py (Magic.magic_psource): made the object
4974 introspection names be more standard: pdoc, pdef, pfile and
4978 introspection names be more standard: pdoc, pdef, pfile and
4975 psource. They all print/page their output, and it makes
4979 psource. They all print/page their output, and it makes
4976 remembering them easier. Kept old names for compatibility as
4980 remembering them easier. Kept old names for compatibility as
4977 aliases.
4981 aliases.
4978
4982
4979 2002-05-14 Fernando Perez <fperez@colorado.edu>
4983 2002-05-14 Fernando Perez <fperez@colorado.edu>
4980
4984
4981 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4985 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4982 what the mouse problem was. The trick is to use gnuplot with temp
4986 what the mouse problem was. The trick is to use gnuplot with temp
4983 files and NOT with pipes (for data communication), because having
4987 files and NOT with pipes (for data communication), because having
4984 both pipes and the mouse on is bad news.
4988 both pipes and the mouse on is bad news.
4985
4989
4986 2002-05-13 Fernando Perez <fperez@colorado.edu>
4990 2002-05-13 Fernando Perez <fperez@colorado.edu>
4987
4991
4988 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4992 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4989 bug. Information would be reported about builtins even when
4993 bug. Information would be reported about builtins even when
4990 user-defined functions overrode them.
4994 user-defined functions overrode them.
4991
4995
4992 2002-05-11 Fernando Perez <fperez@colorado.edu>
4996 2002-05-11 Fernando Perez <fperez@colorado.edu>
4993
4997
4994 * IPython/__init__.py (__all__): removed FlexCompleter from
4998 * IPython/__init__.py (__all__): removed FlexCompleter from
4995 __all__ so that things don't fail in platforms without readline.
4999 __all__ so that things don't fail in platforms without readline.
4996
5000
4997 2002-05-10 Fernando Perez <fperez@colorado.edu>
5001 2002-05-10 Fernando Perez <fperez@colorado.edu>
4998
5002
4999 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5003 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5000 it requires Numeric, effectively making Numeric a dependency for
5004 it requires Numeric, effectively making Numeric a dependency for
5001 IPython.
5005 IPython.
5002
5006
5003 * Released 0.2.13
5007 * Released 0.2.13
5004
5008
5005 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5009 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5006 profiler interface. Now all the major options from the profiler
5010 profiler interface. Now all the major options from the profiler
5007 module are directly supported in IPython, both for single
5011 module are directly supported in IPython, both for single
5008 expressions (@prun) and for full programs (@run -p).
5012 expressions (@prun) and for full programs (@run -p).
5009
5013
5010 2002-05-09 Fernando Perez <fperez@colorado.edu>
5014 2002-05-09 Fernando Perez <fperez@colorado.edu>
5011
5015
5012 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5016 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5013 magic properly formatted for screen.
5017 magic properly formatted for screen.
5014
5018
5015 * setup.py (make_shortcut): Changed things to put pdf version in
5019 * setup.py (make_shortcut): Changed things to put pdf version in
5016 doc/ instead of doc/manual (had to change lyxport a bit).
5020 doc/ instead of doc/manual (had to change lyxport a bit).
5017
5021
5018 * IPython/Magic.py (Profile.string_stats): made profile runs go
5022 * IPython/Magic.py (Profile.string_stats): made profile runs go
5019 through pager (they are long and a pager allows searching, saving,
5023 through pager (they are long and a pager allows searching, saving,
5020 etc.)
5024 etc.)
5021
5025
5022 2002-05-08 Fernando Perez <fperez@colorado.edu>
5026 2002-05-08 Fernando Perez <fperez@colorado.edu>
5023
5027
5024 * Released 0.2.12
5028 * Released 0.2.12
5025
5029
5026 2002-05-06 Fernando Perez <fperez@colorado.edu>
5030 2002-05-06 Fernando Perez <fperez@colorado.edu>
5027
5031
5028 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5032 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5029 introduced); 'hist n1 n2' was broken.
5033 introduced); 'hist n1 n2' was broken.
5030 (Magic.magic_pdb): added optional on/off arguments to @pdb
5034 (Magic.magic_pdb): added optional on/off arguments to @pdb
5031 (Magic.magic_run): added option -i to @run, which executes code in
5035 (Magic.magic_run): added option -i to @run, which executes code in
5032 the IPython namespace instead of a clean one. Also added @irun as
5036 the IPython namespace instead of a clean one. Also added @irun as
5033 an alias to @run -i.
5037 an alias to @run -i.
5034
5038
5035 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5039 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5036 fixed (it didn't really do anything, the namespaces were wrong).
5040 fixed (it didn't really do anything, the namespaces were wrong).
5037
5041
5038 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5042 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5039
5043
5040 * IPython/__init__.py (__all__): Fixed package namespace, now
5044 * IPython/__init__.py (__all__): Fixed package namespace, now
5041 'import IPython' does give access to IPython.<all> as
5045 'import IPython' does give access to IPython.<all> as
5042 expected. Also renamed __release__ to Release.
5046 expected. Also renamed __release__ to Release.
5043
5047
5044 * IPython/Debugger.py (__license__): created new Pdb class which
5048 * IPython/Debugger.py (__license__): created new Pdb class which
5045 functions like a drop-in for the normal pdb.Pdb but does NOT
5049 functions like a drop-in for the normal pdb.Pdb but does NOT
5046 import readline by default. This way it doesn't muck up IPython's
5050 import readline by default. This way it doesn't muck up IPython's
5047 readline handling, and now tab-completion finally works in the
5051 readline handling, and now tab-completion finally works in the
5048 debugger -- sort of. It completes things globally visible, but the
5052 debugger -- sort of. It completes things globally visible, but the
5049 completer doesn't track the stack as pdb walks it. That's a bit
5053 completer doesn't track the stack as pdb walks it. That's a bit
5050 tricky, and I'll have to implement it later.
5054 tricky, and I'll have to implement it later.
5051
5055
5052 2002-05-05 Fernando Perez <fperez@colorado.edu>
5056 2002-05-05 Fernando Perez <fperez@colorado.edu>
5053
5057
5054 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5058 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5055 magic docstrings when printed via ? (explicit \'s were being
5059 magic docstrings when printed via ? (explicit \'s were being
5056 printed).
5060 printed).
5057
5061
5058 * IPython/ipmaker.py (make_IPython): fixed namespace
5062 * IPython/ipmaker.py (make_IPython): fixed namespace
5059 identification bug. Now variables loaded via logs or command-line
5063 identification bug. Now variables loaded via logs or command-line
5060 files are recognized in the interactive namespace by @who.
5064 files are recognized in the interactive namespace by @who.
5061
5065
5062 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5066 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5063 log replay system stemming from the string form of Structs.
5067 log replay system stemming from the string form of Structs.
5064
5068
5065 * IPython/Magic.py (Macro.__init__): improved macros to properly
5069 * IPython/Magic.py (Macro.__init__): improved macros to properly
5066 handle magic commands in them.
5070 handle magic commands in them.
5067 (Magic.magic_logstart): usernames are now expanded so 'logstart
5071 (Magic.magic_logstart): usernames are now expanded so 'logstart
5068 ~/mylog' now works.
5072 ~/mylog' now works.
5069
5073
5070 * IPython/iplib.py (complete): fixed bug where paths starting with
5074 * IPython/iplib.py (complete): fixed bug where paths starting with
5071 '/' would be completed as magic names.
5075 '/' would be completed as magic names.
5072
5076
5073 2002-05-04 Fernando Perez <fperez@colorado.edu>
5077 2002-05-04 Fernando Perez <fperez@colorado.edu>
5074
5078
5075 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5079 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5076 allow running full programs under the profiler's control.
5080 allow running full programs under the profiler's control.
5077
5081
5078 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5082 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5079 mode to report exceptions verbosely but without formatting
5083 mode to report exceptions verbosely but without formatting
5080 variables. This addresses the issue of ipython 'freezing' (it's
5084 variables. This addresses the issue of ipython 'freezing' (it's
5081 not frozen, but caught in an expensive formatting loop) when huge
5085 not frozen, but caught in an expensive formatting loop) when huge
5082 variables are in the context of an exception.
5086 variables are in the context of an exception.
5083 (VerboseTB.text): Added '--->' markers at line where exception was
5087 (VerboseTB.text): Added '--->' markers at line where exception was
5084 triggered. Much clearer to read, especially in NoColor modes.
5088 triggered. Much clearer to read, especially in NoColor modes.
5085
5089
5086 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5090 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5087 implemented in reverse when changing to the new parse_options().
5091 implemented in reverse when changing to the new parse_options().
5088
5092
5089 2002-05-03 Fernando Perez <fperez@colorado.edu>
5093 2002-05-03 Fernando Perez <fperez@colorado.edu>
5090
5094
5091 * IPython/Magic.py (Magic.parse_options): new function so that
5095 * IPython/Magic.py (Magic.parse_options): new function so that
5092 magics can parse options easier.
5096 magics can parse options easier.
5093 (Magic.magic_prun): new function similar to profile.run(),
5097 (Magic.magic_prun): new function similar to profile.run(),
5094 suggested by Chris Hart.
5098 suggested by Chris Hart.
5095 (Magic.magic_cd): fixed behavior so that it only changes if
5099 (Magic.magic_cd): fixed behavior so that it only changes if
5096 directory actually is in history.
5100 directory actually is in history.
5097
5101
5098 * IPython/usage.py (__doc__): added information about potential
5102 * IPython/usage.py (__doc__): added information about potential
5099 slowness of Verbose exception mode when there are huge data
5103 slowness of Verbose exception mode when there are huge data
5100 structures to be formatted (thanks to Archie Paulson).
5104 structures to be formatted (thanks to Archie Paulson).
5101
5105
5102 * IPython/ipmaker.py (make_IPython): Changed default logging
5106 * IPython/ipmaker.py (make_IPython): Changed default logging
5103 (when simply called with -log) to use curr_dir/ipython.log in
5107 (when simply called with -log) to use curr_dir/ipython.log in
5104 rotate mode. Fixed crash which was occuring with -log before
5108 rotate mode. Fixed crash which was occuring with -log before
5105 (thanks to Jim Boyle).
5109 (thanks to Jim Boyle).
5106
5110
5107 2002-05-01 Fernando Perez <fperez@colorado.edu>
5111 2002-05-01 Fernando Perez <fperez@colorado.edu>
5108
5112
5109 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5113 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5110 was nasty -- though somewhat of a corner case).
5114 was nasty -- though somewhat of a corner case).
5111
5115
5112 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5116 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5113 text (was a bug).
5117 text (was a bug).
5114
5118
5115 2002-04-30 Fernando Perez <fperez@colorado.edu>
5119 2002-04-30 Fernando Perez <fperez@colorado.edu>
5116
5120
5117 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5121 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5118 a print after ^D or ^C from the user so that the In[] prompt
5122 a print after ^D or ^C from the user so that the In[] prompt
5119 doesn't over-run the gnuplot one.
5123 doesn't over-run the gnuplot one.
5120
5124
5121 2002-04-29 Fernando Perez <fperez@colorado.edu>
5125 2002-04-29 Fernando Perez <fperez@colorado.edu>
5122
5126
5123 * Released 0.2.10
5127 * Released 0.2.10
5124
5128
5125 * IPython/__release__.py (version): get date dynamically.
5129 * IPython/__release__.py (version): get date dynamically.
5126
5130
5127 * Misc. documentation updates thanks to Arnd's comments. Also ran
5131 * Misc. documentation updates thanks to Arnd's comments. Also ran
5128 a full spellcheck on the manual (hadn't been done in a while).
5132 a full spellcheck on the manual (hadn't been done in a while).
5129
5133
5130 2002-04-27 Fernando Perez <fperez@colorado.edu>
5134 2002-04-27 Fernando Perez <fperez@colorado.edu>
5131
5135
5132 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5136 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5133 starting a log in mid-session would reset the input history list.
5137 starting a log in mid-session would reset the input history list.
5134
5138
5135 2002-04-26 Fernando Perez <fperez@colorado.edu>
5139 2002-04-26 Fernando Perez <fperez@colorado.edu>
5136
5140
5137 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5141 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5138 all files were being included in an update. Now anything in
5142 all files were being included in an update. Now anything in
5139 UserConfig that matches [A-Za-z]*.py will go (this excludes
5143 UserConfig that matches [A-Za-z]*.py will go (this excludes
5140 __init__.py)
5144 __init__.py)
5141
5145
5142 2002-04-25 Fernando Perez <fperez@colorado.edu>
5146 2002-04-25 Fernando Perez <fperez@colorado.edu>
5143
5147
5144 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5148 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5145 to __builtins__ so that any form of embedded or imported code can
5149 to __builtins__ so that any form of embedded or imported code can
5146 test for being inside IPython.
5150 test for being inside IPython.
5147
5151
5148 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5152 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5149 changed to GnuplotMagic because it's now an importable module,
5153 changed to GnuplotMagic because it's now an importable module,
5150 this makes the name follow that of the standard Gnuplot module.
5154 this makes the name follow that of the standard Gnuplot module.
5151 GnuplotMagic can now be loaded at any time in mid-session.
5155 GnuplotMagic can now be loaded at any time in mid-session.
5152
5156
5153 2002-04-24 Fernando Perez <fperez@colorado.edu>
5157 2002-04-24 Fernando Perez <fperez@colorado.edu>
5154
5158
5155 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5159 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5156 the globals (IPython has its own namespace) and the
5160 the globals (IPython has its own namespace) and the
5157 PhysicalQuantity stuff is much better anyway.
5161 PhysicalQuantity stuff is much better anyway.
5158
5162
5159 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5163 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5160 embedding example to standard user directory for
5164 embedding example to standard user directory for
5161 distribution. Also put it in the manual.
5165 distribution. Also put it in the manual.
5162
5166
5163 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5167 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5164 instance as first argument (so it doesn't rely on some obscure
5168 instance as first argument (so it doesn't rely on some obscure
5165 hidden global).
5169 hidden global).
5166
5170
5167 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5171 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5168 delimiters. While it prevents ().TAB from working, it allows
5172 delimiters. While it prevents ().TAB from working, it allows
5169 completions in open (... expressions. This is by far a more common
5173 completions in open (... expressions. This is by far a more common
5170 case.
5174 case.
5171
5175
5172 2002-04-23 Fernando Perez <fperez@colorado.edu>
5176 2002-04-23 Fernando Perez <fperez@colorado.edu>
5173
5177
5174 * IPython/Extensions/InterpreterPasteInput.py: new
5178 * IPython/Extensions/InterpreterPasteInput.py: new
5175 syntax-processing module for pasting lines with >>> or ... at the
5179 syntax-processing module for pasting lines with >>> or ... at the
5176 start.
5180 start.
5177
5181
5178 * IPython/Extensions/PhysicalQ_Interactive.py
5182 * IPython/Extensions/PhysicalQ_Interactive.py
5179 (PhysicalQuantityInteractive.__int__): fixed to work with either
5183 (PhysicalQuantityInteractive.__int__): fixed to work with either
5180 Numeric or math.
5184 Numeric or math.
5181
5185
5182 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5186 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5183 provided profiles. Now we have:
5187 provided profiles. Now we have:
5184 -math -> math module as * and cmath with its own namespace.
5188 -math -> math module as * and cmath with its own namespace.
5185 -numeric -> Numeric as *, plus gnuplot & grace
5189 -numeric -> Numeric as *, plus gnuplot & grace
5186 -physics -> same as before
5190 -physics -> same as before
5187
5191
5188 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5192 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5189 user-defined magics wouldn't be found by @magic if they were
5193 user-defined magics wouldn't be found by @magic if they were
5190 defined as class methods. Also cleaned up the namespace search
5194 defined as class methods. Also cleaned up the namespace search
5191 logic and the string building (to use %s instead of many repeated
5195 logic and the string building (to use %s instead of many repeated
5192 string adds).
5196 string adds).
5193
5197
5194 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5198 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5195 of user-defined magics to operate with class methods (cleaner, in
5199 of user-defined magics to operate with class methods (cleaner, in
5196 line with the gnuplot code).
5200 line with the gnuplot code).
5197
5201
5198 2002-04-22 Fernando Perez <fperez@colorado.edu>
5202 2002-04-22 Fernando Perez <fperez@colorado.edu>
5199
5203
5200 * setup.py: updated dependency list so that manual is updated when
5204 * setup.py: updated dependency list so that manual is updated when
5201 all included files change.
5205 all included files change.
5202
5206
5203 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5207 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5204 the delimiter removal option (the fix is ugly right now).
5208 the delimiter removal option (the fix is ugly right now).
5205
5209
5206 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5210 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5207 all of the math profile (quicker loading, no conflict between
5211 all of the math profile (quicker loading, no conflict between
5208 g-9.8 and g-gnuplot).
5212 g-9.8 and g-gnuplot).
5209
5213
5210 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5214 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5211 name of post-mortem files to IPython_crash_report.txt.
5215 name of post-mortem files to IPython_crash_report.txt.
5212
5216
5213 * Cleanup/update of the docs. Added all the new readline info and
5217 * Cleanup/update of the docs. Added all the new readline info and
5214 formatted all lists as 'real lists'.
5218 formatted all lists as 'real lists'.
5215
5219
5216 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5220 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5217 tab-completion options, since the full readline parse_and_bind is
5221 tab-completion options, since the full readline parse_and_bind is
5218 now accessible.
5222 now accessible.
5219
5223
5220 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5224 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5221 handling of readline options. Now users can specify any string to
5225 handling of readline options. Now users can specify any string to
5222 be passed to parse_and_bind(), as well as the delimiters to be
5226 be passed to parse_and_bind(), as well as the delimiters to be
5223 removed.
5227 removed.
5224 (InteractiveShell.__init__): Added __name__ to the global
5228 (InteractiveShell.__init__): Added __name__ to the global
5225 namespace so that things like Itpl which rely on its existence
5229 namespace so that things like Itpl which rely on its existence
5226 don't crash.
5230 don't crash.
5227 (InteractiveShell._prefilter): Defined the default with a _ so
5231 (InteractiveShell._prefilter): Defined the default with a _ so
5228 that prefilter() is easier to override, while the default one
5232 that prefilter() is easier to override, while the default one
5229 remains available.
5233 remains available.
5230
5234
5231 2002-04-18 Fernando Perez <fperez@colorado.edu>
5235 2002-04-18 Fernando Perez <fperez@colorado.edu>
5232
5236
5233 * Added information about pdb in the docs.
5237 * Added information about pdb in the docs.
5234
5238
5235 2002-04-17 Fernando Perez <fperez@colorado.edu>
5239 2002-04-17 Fernando Perez <fperez@colorado.edu>
5236
5240
5237 * IPython/ipmaker.py (make_IPython): added rc_override option to
5241 * IPython/ipmaker.py (make_IPython): added rc_override option to
5238 allow passing config options at creation time which may override
5242 allow passing config options at creation time which may override
5239 anything set in the config files or command line. This is
5243 anything set in the config files or command line. This is
5240 particularly useful for configuring embedded instances.
5244 particularly useful for configuring embedded instances.
5241
5245
5242 2002-04-15 Fernando Perez <fperez@colorado.edu>
5246 2002-04-15 Fernando Perez <fperez@colorado.edu>
5243
5247
5244 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5248 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5245 crash embedded instances because of the input cache falling out of
5249 crash embedded instances because of the input cache falling out of
5246 sync with the output counter.
5250 sync with the output counter.
5247
5251
5248 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5252 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5249 mode which calls pdb after an uncaught exception in IPython itself.
5253 mode which calls pdb after an uncaught exception in IPython itself.
5250
5254
5251 2002-04-14 Fernando Perez <fperez@colorado.edu>
5255 2002-04-14 Fernando Perez <fperez@colorado.edu>
5252
5256
5253 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5257 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5254 readline, fix it back after each call.
5258 readline, fix it back after each call.
5255
5259
5256 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5260 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5257 method to force all access via __call__(), which guarantees that
5261 method to force all access via __call__(), which guarantees that
5258 traceback references are properly deleted.
5262 traceback references are properly deleted.
5259
5263
5260 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5264 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5261 improve printing when pprint is in use.
5265 improve printing when pprint is in use.
5262
5266
5263 2002-04-13 Fernando Perez <fperez@colorado.edu>
5267 2002-04-13 Fernando Perez <fperez@colorado.edu>
5264
5268
5265 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5269 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5266 exceptions aren't caught anymore. If the user triggers one, he
5270 exceptions aren't caught anymore. If the user triggers one, he
5267 should know why he's doing it and it should go all the way up,
5271 should know why he's doing it and it should go all the way up,
5268 just like any other exception. So now @abort will fully kill the
5272 just like any other exception. So now @abort will fully kill the
5269 embedded interpreter and the embedding code (unless that happens
5273 embedded interpreter and the embedding code (unless that happens
5270 to catch SystemExit).
5274 to catch SystemExit).
5271
5275
5272 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5276 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5273 and a debugger() method to invoke the interactive pdb debugger
5277 and a debugger() method to invoke the interactive pdb debugger
5274 after printing exception information. Also added the corresponding
5278 after printing exception information. Also added the corresponding
5275 -pdb option and @pdb magic to control this feature, and updated
5279 -pdb option and @pdb magic to control this feature, and updated
5276 the docs. After a suggestion from Christopher Hart
5280 the docs. After a suggestion from Christopher Hart
5277 (hart-AT-caltech.edu).
5281 (hart-AT-caltech.edu).
5278
5282
5279 2002-04-12 Fernando Perez <fperez@colorado.edu>
5283 2002-04-12 Fernando Perez <fperez@colorado.edu>
5280
5284
5281 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5285 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5282 the exception handlers defined by the user (not the CrashHandler)
5286 the exception handlers defined by the user (not the CrashHandler)
5283 so that user exceptions don't trigger an ipython bug report.
5287 so that user exceptions don't trigger an ipython bug report.
5284
5288
5285 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5289 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5286 configurable (it should have always been so).
5290 configurable (it should have always been so).
5287
5291
5288 2002-03-26 Fernando Perez <fperez@colorado.edu>
5292 2002-03-26 Fernando Perez <fperez@colorado.edu>
5289
5293
5290 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5294 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5291 and there to fix embedding namespace issues. This should all be
5295 and there to fix embedding namespace issues. This should all be
5292 done in a more elegant way.
5296 done in a more elegant way.
5293
5297
5294 2002-03-25 Fernando Perez <fperez@colorado.edu>
5298 2002-03-25 Fernando Perez <fperez@colorado.edu>
5295
5299
5296 * IPython/genutils.py (get_home_dir): Try to make it work under
5300 * IPython/genutils.py (get_home_dir): Try to make it work under
5297 win9x also.
5301 win9x also.
5298
5302
5299 2002-03-20 Fernando Perez <fperez@colorado.edu>
5303 2002-03-20 Fernando Perez <fperez@colorado.edu>
5300
5304
5301 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5305 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5302 sys.displayhook untouched upon __init__.
5306 sys.displayhook untouched upon __init__.
5303
5307
5304 2002-03-19 Fernando Perez <fperez@colorado.edu>
5308 2002-03-19 Fernando Perez <fperez@colorado.edu>
5305
5309
5306 * Released 0.2.9 (for embedding bug, basically).
5310 * Released 0.2.9 (for embedding bug, basically).
5307
5311
5308 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5312 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5309 exceptions so that enclosing shell's state can be restored.
5313 exceptions so that enclosing shell's state can be restored.
5310
5314
5311 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5315 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5312 naming conventions in the .ipython/ dir.
5316 naming conventions in the .ipython/ dir.
5313
5317
5314 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5318 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5315 from delimiters list so filenames with - in them get expanded.
5319 from delimiters list so filenames with - in them get expanded.
5316
5320
5317 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5321 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5318 sys.displayhook not being properly restored after an embedded call.
5322 sys.displayhook not being properly restored after an embedded call.
5319
5323
5320 2002-03-18 Fernando Perez <fperez@colorado.edu>
5324 2002-03-18 Fernando Perez <fperez@colorado.edu>
5321
5325
5322 * Released 0.2.8
5326 * Released 0.2.8
5323
5327
5324 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5328 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5325 some files weren't being included in a -upgrade.
5329 some files weren't being included in a -upgrade.
5326 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5330 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5327 on' so that the first tab completes.
5331 on' so that the first tab completes.
5328 (InteractiveShell.handle_magic): fixed bug with spaces around
5332 (InteractiveShell.handle_magic): fixed bug with spaces around
5329 quotes breaking many magic commands.
5333 quotes breaking many magic commands.
5330
5334
5331 * setup.py: added note about ignoring the syntax error messages at
5335 * setup.py: added note about ignoring the syntax error messages at
5332 installation.
5336 installation.
5333
5337
5334 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5338 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5335 streamlining the gnuplot interface, now there's only one magic @gp.
5339 streamlining the gnuplot interface, now there's only one magic @gp.
5336
5340
5337 2002-03-17 Fernando Perez <fperez@colorado.edu>
5341 2002-03-17 Fernando Perez <fperez@colorado.edu>
5338
5342
5339 * IPython/UserConfig/magic_gnuplot.py: new name for the
5343 * IPython/UserConfig/magic_gnuplot.py: new name for the
5340 example-magic_pm.py file. Much enhanced system, now with a shell
5344 example-magic_pm.py file. Much enhanced system, now with a shell
5341 for communicating directly with gnuplot, one command at a time.
5345 for communicating directly with gnuplot, one command at a time.
5342
5346
5343 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5347 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5344 setting __name__=='__main__'.
5348 setting __name__=='__main__'.
5345
5349
5346 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5350 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5347 mini-shell for accessing gnuplot from inside ipython. Should
5351 mini-shell for accessing gnuplot from inside ipython. Should
5348 extend it later for grace access too. Inspired by Arnd's
5352 extend it later for grace access too. Inspired by Arnd's
5349 suggestion.
5353 suggestion.
5350
5354
5351 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5355 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5352 calling magic functions with () in their arguments. Thanks to Arnd
5356 calling magic functions with () in their arguments. Thanks to Arnd
5353 Baecker for pointing this to me.
5357 Baecker for pointing this to me.
5354
5358
5355 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5359 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5356 infinitely for integer or complex arrays (only worked with floats).
5360 infinitely for integer or complex arrays (only worked with floats).
5357
5361
5358 2002-03-16 Fernando Perez <fperez@colorado.edu>
5362 2002-03-16 Fernando Perez <fperez@colorado.edu>
5359
5363
5360 * setup.py: Merged setup and setup_windows into a single script
5364 * setup.py: Merged setup and setup_windows into a single script
5361 which properly handles things for windows users.
5365 which properly handles things for windows users.
5362
5366
5363 2002-03-15 Fernando Perez <fperez@colorado.edu>
5367 2002-03-15 Fernando Perez <fperez@colorado.edu>
5364
5368
5365 * Big change to the manual: now the magics are all automatically
5369 * Big change to the manual: now the magics are all automatically
5366 documented. This information is generated from their docstrings
5370 documented. This information is generated from their docstrings
5367 and put in a latex file included by the manual lyx file. This way
5371 and put in a latex file included by the manual lyx file. This way
5368 we get always up to date information for the magics. The manual
5372 we get always up to date information for the magics. The manual
5369 now also has proper version information, also auto-synced.
5373 now also has proper version information, also auto-synced.
5370
5374
5371 For this to work, an undocumented --magic_docstrings option was added.
5375 For this to work, an undocumented --magic_docstrings option was added.
5372
5376
5373 2002-03-13 Fernando Perez <fperez@colorado.edu>
5377 2002-03-13 Fernando Perez <fperez@colorado.edu>
5374
5378
5375 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5379 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5376 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5380 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5377
5381
5378 2002-03-12 Fernando Perez <fperez@colorado.edu>
5382 2002-03-12 Fernando Perez <fperez@colorado.edu>
5379
5383
5380 * IPython/ultraTB.py (TermColors): changed color escapes again to
5384 * IPython/ultraTB.py (TermColors): changed color escapes again to
5381 fix the (old, reintroduced) line-wrapping bug. Basically, if
5385 fix the (old, reintroduced) line-wrapping bug. Basically, if
5382 \001..\002 aren't given in the color escapes, lines get wrapped
5386 \001..\002 aren't given in the color escapes, lines get wrapped
5383 weirdly. But giving those screws up old xterms and emacs terms. So
5387 weirdly. But giving those screws up old xterms and emacs terms. So
5384 I added some logic for emacs terms to be ok, but I can't identify old
5388 I added some logic for emacs terms to be ok, but I can't identify old
5385 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5389 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5386
5390
5387 2002-03-10 Fernando Perez <fperez@colorado.edu>
5391 2002-03-10 Fernando Perez <fperez@colorado.edu>
5388
5392
5389 * IPython/usage.py (__doc__): Various documentation cleanups and
5393 * IPython/usage.py (__doc__): Various documentation cleanups and
5390 updates, both in usage docstrings and in the manual.
5394 updates, both in usage docstrings and in the manual.
5391
5395
5392 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5396 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5393 handling of caching. Set minimum acceptabe value for having a
5397 handling of caching. Set minimum acceptabe value for having a
5394 cache at 20 values.
5398 cache at 20 values.
5395
5399
5396 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5400 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5397 install_first_time function to a method, renamed it and added an
5401 install_first_time function to a method, renamed it and added an
5398 'upgrade' mode. Now people can update their config directory with
5402 'upgrade' mode. Now people can update their config directory with
5399 a simple command line switch (-upgrade, also new).
5403 a simple command line switch (-upgrade, also new).
5400
5404
5401 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5405 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5402 @file (convenient for automagic users under Python >= 2.2).
5406 @file (convenient for automagic users under Python >= 2.2).
5403 Removed @files (it seemed more like a plural than an abbrev. of
5407 Removed @files (it seemed more like a plural than an abbrev. of
5404 'file show').
5408 'file show').
5405
5409
5406 * IPython/iplib.py (install_first_time): Fixed crash if there were
5410 * IPython/iplib.py (install_first_time): Fixed crash if there were
5407 backup files ('~') in .ipython/ install directory.
5411 backup files ('~') in .ipython/ install directory.
5408
5412
5409 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5413 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5410 system. Things look fine, but these changes are fairly
5414 system. Things look fine, but these changes are fairly
5411 intrusive. Test them for a few days.
5415 intrusive. Test them for a few days.
5412
5416
5413 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5417 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5414 the prompts system. Now all in/out prompt strings are user
5418 the prompts system. Now all in/out prompt strings are user
5415 controllable. This is particularly useful for embedding, as one
5419 controllable. This is particularly useful for embedding, as one
5416 can tag embedded instances with particular prompts.
5420 can tag embedded instances with particular prompts.
5417
5421
5418 Also removed global use of sys.ps1/2, which now allows nested
5422 Also removed global use of sys.ps1/2, which now allows nested
5419 embeddings without any problems. Added command-line options for
5423 embeddings without any problems. Added command-line options for
5420 the prompt strings.
5424 the prompt strings.
5421
5425
5422 2002-03-08 Fernando Perez <fperez@colorado.edu>
5426 2002-03-08 Fernando Perez <fperez@colorado.edu>
5423
5427
5424 * IPython/UserConfig/example-embed-short.py (ipshell): added
5428 * IPython/UserConfig/example-embed-short.py (ipshell): added
5425 example file with the bare minimum code for embedding.
5429 example file with the bare minimum code for embedding.
5426
5430
5427 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5431 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5428 functionality for the embeddable shell to be activated/deactivated
5432 functionality for the embeddable shell to be activated/deactivated
5429 either globally or at each call.
5433 either globally or at each call.
5430
5434
5431 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5435 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5432 rewriting the prompt with '--->' for auto-inputs with proper
5436 rewriting the prompt with '--->' for auto-inputs with proper
5433 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5437 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5434 this is handled by the prompts class itself, as it should.
5438 this is handled by the prompts class itself, as it should.
5435
5439
5436 2002-03-05 Fernando Perez <fperez@colorado.edu>
5440 2002-03-05 Fernando Perez <fperez@colorado.edu>
5437
5441
5438 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5442 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5439 @logstart to avoid name clashes with the math log function.
5443 @logstart to avoid name clashes with the math log function.
5440
5444
5441 * Big updates to X/Emacs section of the manual.
5445 * Big updates to X/Emacs section of the manual.
5442
5446
5443 * Removed ipython_emacs. Milan explained to me how to pass
5447 * Removed ipython_emacs. Milan explained to me how to pass
5444 arguments to ipython through Emacs. Some day I'm going to end up
5448 arguments to ipython through Emacs. Some day I'm going to end up
5445 learning some lisp...
5449 learning some lisp...
5446
5450
5447 2002-03-04 Fernando Perez <fperez@colorado.edu>
5451 2002-03-04 Fernando Perez <fperez@colorado.edu>
5448
5452
5449 * IPython/ipython_emacs: Created script to be used as the
5453 * IPython/ipython_emacs: Created script to be used as the
5450 py-python-command Emacs variable so we can pass IPython
5454 py-python-command Emacs variable so we can pass IPython
5451 parameters. I can't figure out how to tell Emacs directly to pass
5455 parameters. I can't figure out how to tell Emacs directly to pass
5452 parameters to IPython, so a dummy shell script will do it.
5456 parameters to IPython, so a dummy shell script will do it.
5453
5457
5454 Other enhancements made for things to work better under Emacs'
5458 Other enhancements made for things to work better under Emacs'
5455 various types of terminals. Many thanks to Milan Zamazal
5459 various types of terminals. Many thanks to Milan Zamazal
5456 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5460 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5457
5461
5458 2002-03-01 Fernando Perez <fperez@colorado.edu>
5462 2002-03-01 Fernando Perez <fperez@colorado.edu>
5459
5463
5460 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5464 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5461 that loading of readline is now optional. This gives better
5465 that loading of readline is now optional. This gives better
5462 control to emacs users.
5466 control to emacs users.
5463
5467
5464 * IPython/ultraTB.py (__date__): Modified color escape sequences
5468 * IPython/ultraTB.py (__date__): Modified color escape sequences
5465 and now things work fine under xterm and in Emacs' term buffers
5469 and now things work fine under xterm and in Emacs' term buffers
5466 (though not shell ones). Well, in emacs you get colors, but all
5470 (though not shell ones). Well, in emacs you get colors, but all
5467 seem to be 'light' colors (no difference between dark and light
5471 seem to be 'light' colors (no difference between dark and light
5468 ones). But the garbage chars are gone, and also in xterms. It
5472 ones). But the garbage chars are gone, and also in xterms. It
5469 seems that now I'm using 'cleaner' ansi sequences.
5473 seems that now I'm using 'cleaner' ansi sequences.
5470
5474
5471 2002-02-21 Fernando Perez <fperez@colorado.edu>
5475 2002-02-21 Fernando Perez <fperez@colorado.edu>
5472
5476
5473 * Released 0.2.7 (mainly to publish the scoping fix).
5477 * Released 0.2.7 (mainly to publish the scoping fix).
5474
5478
5475 * IPython/Logger.py (Logger.logstate): added. A corresponding
5479 * IPython/Logger.py (Logger.logstate): added. A corresponding
5476 @logstate magic was created.
5480 @logstate magic was created.
5477
5481
5478 * IPython/Magic.py: fixed nested scoping problem under Python
5482 * IPython/Magic.py: fixed nested scoping problem under Python
5479 2.1.x (automagic wasn't working).
5483 2.1.x (automagic wasn't working).
5480
5484
5481 2002-02-20 Fernando Perez <fperez@colorado.edu>
5485 2002-02-20 Fernando Perez <fperez@colorado.edu>
5482
5486
5483 * Released 0.2.6.
5487 * Released 0.2.6.
5484
5488
5485 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5489 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5486 option so that logs can come out without any headers at all.
5490 option so that logs can come out without any headers at all.
5487
5491
5488 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5492 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5489 SciPy.
5493 SciPy.
5490
5494
5491 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5495 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5492 that embedded IPython calls don't require vars() to be explicitly
5496 that embedded IPython calls don't require vars() to be explicitly
5493 passed. Now they are extracted from the caller's frame (code
5497 passed. Now they are extracted from the caller's frame (code
5494 snatched from Eric Jones' weave). Added better documentation to
5498 snatched from Eric Jones' weave). Added better documentation to
5495 the section on embedding and the example file.
5499 the section on embedding and the example file.
5496
5500
5497 * IPython/genutils.py (page): Changed so that under emacs, it just
5501 * IPython/genutils.py (page): Changed so that under emacs, it just
5498 prints the string. You can then page up and down in the emacs
5502 prints the string. You can then page up and down in the emacs
5499 buffer itself. This is how the builtin help() works.
5503 buffer itself. This is how the builtin help() works.
5500
5504
5501 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5505 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5502 macro scoping: macros need to be executed in the user's namespace
5506 macro scoping: macros need to be executed in the user's namespace
5503 to work as if they had been typed by the user.
5507 to work as if they had been typed by the user.
5504
5508
5505 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5509 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5506 execute automatically (no need to type 'exec...'). They then
5510 execute automatically (no need to type 'exec...'). They then
5507 behave like 'true macros'. The printing system was also modified
5511 behave like 'true macros'. The printing system was also modified
5508 for this to work.
5512 for this to work.
5509
5513
5510 2002-02-19 Fernando Perez <fperez@colorado.edu>
5514 2002-02-19 Fernando Perez <fperez@colorado.edu>
5511
5515
5512 * IPython/genutils.py (page_file): new function for paging files
5516 * IPython/genutils.py (page_file): new function for paging files
5513 in an OS-independent way. Also necessary for file viewing to work
5517 in an OS-independent way. Also necessary for file viewing to work
5514 well inside Emacs buffers.
5518 well inside Emacs buffers.
5515 (page): Added checks for being in an emacs buffer.
5519 (page): Added checks for being in an emacs buffer.
5516 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5520 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5517 same bug in iplib.
5521 same bug in iplib.
5518
5522
5519 2002-02-18 Fernando Perez <fperez@colorado.edu>
5523 2002-02-18 Fernando Perez <fperez@colorado.edu>
5520
5524
5521 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5525 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5522 of readline so that IPython can work inside an Emacs buffer.
5526 of readline so that IPython can work inside an Emacs buffer.
5523
5527
5524 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5528 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5525 method signatures (they weren't really bugs, but it looks cleaner
5529 method signatures (they weren't really bugs, but it looks cleaner
5526 and keeps PyChecker happy).
5530 and keeps PyChecker happy).
5527
5531
5528 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5532 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5529 for implementing various user-defined hooks. Currently only
5533 for implementing various user-defined hooks. Currently only
5530 display is done.
5534 display is done.
5531
5535
5532 * IPython/Prompts.py (CachedOutput._display): changed display
5536 * IPython/Prompts.py (CachedOutput._display): changed display
5533 functions so that they can be dynamically changed by users easily.
5537 functions so that they can be dynamically changed by users easily.
5534
5538
5535 * IPython/Extensions/numeric_formats.py (num_display): added an
5539 * IPython/Extensions/numeric_formats.py (num_display): added an
5536 extension for printing NumPy arrays in flexible manners. It
5540 extension for printing NumPy arrays in flexible manners. It
5537 doesn't do anything yet, but all the structure is in
5541 doesn't do anything yet, but all the structure is in
5538 place. Ultimately the plan is to implement output format control
5542 place. Ultimately the plan is to implement output format control
5539 like in Octave.
5543 like in Octave.
5540
5544
5541 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5545 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5542 methods are found at run-time by all the automatic machinery.
5546 methods are found at run-time by all the automatic machinery.
5543
5547
5544 2002-02-17 Fernando Perez <fperez@colorado.edu>
5548 2002-02-17 Fernando Perez <fperez@colorado.edu>
5545
5549
5546 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5550 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5547 whole file a little.
5551 whole file a little.
5548
5552
5549 * ToDo: closed this document. Now there's a new_design.lyx
5553 * ToDo: closed this document. Now there's a new_design.lyx
5550 document for all new ideas. Added making a pdf of it for the
5554 document for all new ideas. Added making a pdf of it for the
5551 end-user distro.
5555 end-user distro.
5552
5556
5553 * IPython/Logger.py (Logger.switch_log): Created this to replace
5557 * IPython/Logger.py (Logger.switch_log): Created this to replace
5554 logon() and logoff(). It also fixes a nasty crash reported by
5558 logon() and logoff(). It also fixes a nasty crash reported by
5555 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5559 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5556
5560
5557 * IPython/iplib.py (complete): got auto-completion to work with
5561 * IPython/iplib.py (complete): got auto-completion to work with
5558 automagic (I had wanted this for a long time).
5562 automagic (I had wanted this for a long time).
5559
5563
5560 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5564 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5561 to @file, since file() is now a builtin and clashes with automagic
5565 to @file, since file() is now a builtin and clashes with automagic
5562 for @file.
5566 for @file.
5563
5567
5564 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5568 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5565 of this was previously in iplib, which had grown to more than 2000
5569 of this was previously in iplib, which had grown to more than 2000
5566 lines, way too long. No new functionality, but it makes managing
5570 lines, way too long. No new functionality, but it makes managing
5567 the code a bit easier.
5571 the code a bit easier.
5568
5572
5569 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5573 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5570 information to crash reports.
5574 information to crash reports.
5571
5575
5572 2002-02-12 Fernando Perez <fperez@colorado.edu>
5576 2002-02-12 Fernando Perez <fperez@colorado.edu>
5573
5577
5574 * Released 0.2.5.
5578 * Released 0.2.5.
5575
5579
5576 2002-02-11 Fernando Perez <fperez@colorado.edu>
5580 2002-02-11 Fernando Perez <fperez@colorado.edu>
5577
5581
5578 * Wrote a relatively complete Windows installer. It puts
5582 * Wrote a relatively complete Windows installer. It puts
5579 everything in place, creates Start Menu entries and fixes the
5583 everything in place, creates Start Menu entries and fixes the
5580 color issues. Nothing fancy, but it works.
5584 color issues. Nothing fancy, but it works.
5581
5585
5582 2002-02-10 Fernando Perez <fperez@colorado.edu>
5586 2002-02-10 Fernando Perez <fperez@colorado.edu>
5583
5587
5584 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5588 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5585 os.path.expanduser() call so that we can type @run ~/myfile.py and
5589 os.path.expanduser() call so that we can type @run ~/myfile.py and
5586 have thigs work as expected.
5590 have thigs work as expected.
5587
5591
5588 * IPython/genutils.py (page): fixed exception handling so things
5592 * IPython/genutils.py (page): fixed exception handling so things
5589 work both in Unix and Windows correctly. Quitting a pager triggers
5593 work both in Unix and Windows correctly. Quitting a pager triggers
5590 an IOError/broken pipe in Unix, and in windows not finding a pager
5594 an IOError/broken pipe in Unix, and in windows not finding a pager
5591 is also an IOError, so I had to actually look at the return value
5595 is also an IOError, so I had to actually look at the return value
5592 of the exception, not just the exception itself. Should be ok now.
5596 of the exception, not just the exception itself. Should be ok now.
5593
5597
5594 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5598 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5595 modified to allow case-insensitive color scheme changes.
5599 modified to allow case-insensitive color scheme changes.
5596
5600
5597 2002-02-09 Fernando Perez <fperez@colorado.edu>
5601 2002-02-09 Fernando Perez <fperez@colorado.edu>
5598
5602
5599 * IPython/genutils.py (native_line_ends): new function to leave
5603 * IPython/genutils.py (native_line_ends): new function to leave
5600 user config files with os-native line-endings.
5604 user config files with os-native line-endings.
5601
5605
5602 * README and manual updates.
5606 * README and manual updates.
5603
5607
5604 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5608 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5605 instead of StringType to catch Unicode strings.
5609 instead of StringType to catch Unicode strings.
5606
5610
5607 * IPython/genutils.py (filefind): fixed bug for paths with
5611 * IPython/genutils.py (filefind): fixed bug for paths with
5608 embedded spaces (very common in Windows).
5612 embedded spaces (very common in Windows).
5609
5613
5610 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5614 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5611 files under Windows, so that they get automatically associated
5615 files under Windows, so that they get automatically associated
5612 with a text editor. Windows makes it a pain to handle
5616 with a text editor. Windows makes it a pain to handle
5613 extension-less files.
5617 extension-less files.
5614
5618
5615 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5619 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5616 warning about readline only occur for Posix. In Windows there's no
5620 warning about readline only occur for Posix. In Windows there's no
5617 way to get readline, so why bother with the warning.
5621 way to get readline, so why bother with the warning.
5618
5622
5619 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5623 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5620 for __str__ instead of dir(self), since dir() changed in 2.2.
5624 for __str__ instead of dir(self), since dir() changed in 2.2.
5621
5625
5622 * Ported to Windows! Tested on XP, I suspect it should work fine
5626 * Ported to Windows! Tested on XP, I suspect it should work fine
5623 on NT/2000, but I don't think it will work on 98 et al. That
5627 on NT/2000, but I don't think it will work on 98 et al. That
5624 series of Windows is such a piece of junk anyway that I won't try
5628 series of Windows is such a piece of junk anyway that I won't try
5625 porting it there. The XP port was straightforward, showed a few
5629 porting it there. The XP port was straightforward, showed a few
5626 bugs here and there (fixed all), in particular some string
5630 bugs here and there (fixed all), in particular some string
5627 handling stuff which required considering Unicode strings (which
5631 handling stuff which required considering Unicode strings (which
5628 Windows uses). This is good, but hasn't been too tested :) No
5632 Windows uses). This is good, but hasn't been too tested :) No
5629 fancy installer yet, I'll put a note in the manual so people at
5633 fancy installer yet, I'll put a note in the manual so people at
5630 least make manually a shortcut.
5634 least make manually a shortcut.
5631
5635
5632 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5636 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5633 into a single one, "colors". This now controls both prompt and
5637 into a single one, "colors". This now controls both prompt and
5634 exception color schemes, and can be changed both at startup
5638 exception color schemes, and can be changed both at startup
5635 (either via command-line switches or via ipythonrc files) and at
5639 (either via command-line switches or via ipythonrc files) and at
5636 runtime, with @colors.
5640 runtime, with @colors.
5637 (Magic.magic_run): renamed @prun to @run and removed the old
5641 (Magic.magic_run): renamed @prun to @run and removed the old
5638 @run. The two were too similar to warrant keeping both.
5642 @run. The two were too similar to warrant keeping both.
5639
5643
5640 2002-02-03 Fernando Perez <fperez@colorado.edu>
5644 2002-02-03 Fernando Perez <fperez@colorado.edu>
5641
5645
5642 * IPython/iplib.py (install_first_time): Added comment on how to
5646 * IPython/iplib.py (install_first_time): Added comment on how to
5643 configure the color options for first-time users. Put a <return>
5647 configure the color options for first-time users. Put a <return>
5644 request at the end so that small-terminal users get a chance to
5648 request at the end so that small-terminal users get a chance to
5645 read the startup info.
5649 read the startup info.
5646
5650
5647 2002-01-23 Fernando Perez <fperez@colorado.edu>
5651 2002-01-23 Fernando Perez <fperez@colorado.edu>
5648
5652
5649 * IPython/iplib.py (CachedOutput.update): Changed output memory
5653 * IPython/iplib.py (CachedOutput.update): Changed output memory
5650 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5654 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5651 input history we still use _i. Did this b/c these variable are
5655 input history we still use _i. Did this b/c these variable are
5652 very commonly used in interactive work, so the less we need to
5656 very commonly used in interactive work, so the less we need to
5653 type the better off we are.
5657 type the better off we are.
5654 (Magic.magic_prun): updated @prun to better handle the namespaces
5658 (Magic.magic_prun): updated @prun to better handle the namespaces
5655 the file will run in, including a fix for __name__ not being set
5659 the file will run in, including a fix for __name__ not being set
5656 before.
5660 before.
5657
5661
5658 2002-01-20 Fernando Perez <fperez@colorado.edu>
5662 2002-01-20 Fernando Perez <fperez@colorado.edu>
5659
5663
5660 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5664 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5661 extra garbage for Python 2.2. Need to look more carefully into
5665 extra garbage for Python 2.2. Need to look more carefully into
5662 this later.
5666 this later.
5663
5667
5664 2002-01-19 Fernando Perez <fperez@colorado.edu>
5668 2002-01-19 Fernando Perez <fperez@colorado.edu>
5665
5669
5666 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5670 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5667 display SyntaxError exceptions properly formatted when they occur
5671 display SyntaxError exceptions properly formatted when they occur
5668 (they can be triggered by imported code).
5672 (they can be triggered by imported code).
5669
5673
5670 2002-01-18 Fernando Perez <fperez@colorado.edu>
5674 2002-01-18 Fernando Perez <fperez@colorado.edu>
5671
5675
5672 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5676 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5673 SyntaxError exceptions are reported nicely formatted, instead of
5677 SyntaxError exceptions are reported nicely formatted, instead of
5674 spitting out only offset information as before.
5678 spitting out only offset information as before.
5675 (Magic.magic_prun): Added the @prun function for executing
5679 (Magic.magic_prun): Added the @prun function for executing
5676 programs with command line args inside IPython.
5680 programs with command line args inside IPython.
5677
5681
5678 2002-01-16 Fernando Perez <fperez@colorado.edu>
5682 2002-01-16 Fernando Perez <fperez@colorado.edu>
5679
5683
5680 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5684 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5681 to *not* include the last item given in a range. This brings their
5685 to *not* include the last item given in a range. This brings their
5682 behavior in line with Python's slicing:
5686 behavior in line with Python's slicing:
5683 a[n1:n2] -> a[n1]...a[n2-1]
5687 a[n1:n2] -> a[n1]...a[n2-1]
5684 It may be a bit less convenient, but I prefer to stick to Python's
5688 It may be a bit less convenient, but I prefer to stick to Python's
5685 conventions *everywhere*, so users never have to wonder.
5689 conventions *everywhere*, so users never have to wonder.
5686 (Magic.magic_macro): Added @macro function to ease the creation of
5690 (Magic.magic_macro): Added @macro function to ease the creation of
5687 macros.
5691 macros.
5688
5692
5689 2002-01-05 Fernando Perez <fperez@colorado.edu>
5693 2002-01-05 Fernando Perez <fperez@colorado.edu>
5690
5694
5691 * Released 0.2.4.
5695 * Released 0.2.4.
5692
5696
5693 * IPython/iplib.py (Magic.magic_pdef):
5697 * IPython/iplib.py (Magic.magic_pdef):
5694 (InteractiveShell.safe_execfile): report magic lines and error
5698 (InteractiveShell.safe_execfile): report magic lines and error
5695 lines without line numbers so one can easily copy/paste them for
5699 lines without line numbers so one can easily copy/paste them for
5696 re-execution.
5700 re-execution.
5697
5701
5698 * Updated manual with recent changes.
5702 * Updated manual with recent changes.
5699
5703
5700 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5704 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5701 docstring printing when class? is called. Very handy for knowing
5705 docstring printing when class? is called. Very handy for knowing
5702 how to create class instances (as long as __init__ is well
5706 how to create class instances (as long as __init__ is well
5703 documented, of course :)
5707 documented, of course :)
5704 (Magic.magic_doc): print both class and constructor docstrings.
5708 (Magic.magic_doc): print both class and constructor docstrings.
5705 (Magic.magic_pdef): give constructor info if passed a class and
5709 (Magic.magic_pdef): give constructor info if passed a class and
5706 __call__ info for callable object instances.
5710 __call__ info for callable object instances.
5707
5711
5708 2002-01-04 Fernando Perez <fperez@colorado.edu>
5712 2002-01-04 Fernando Perez <fperez@colorado.edu>
5709
5713
5710 * Made deep_reload() off by default. It doesn't always work
5714 * Made deep_reload() off by default. It doesn't always work
5711 exactly as intended, so it's probably safer to have it off. It's
5715 exactly as intended, so it's probably safer to have it off. It's
5712 still available as dreload() anyway, so nothing is lost.
5716 still available as dreload() anyway, so nothing is lost.
5713
5717
5714 2002-01-02 Fernando Perez <fperez@colorado.edu>
5718 2002-01-02 Fernando Perez <fperez@colorado.edu>
5715
5719
5716 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5720 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5717 so I wanted an updated release).
5721 so I wanted an updated release).
5718
5722
5719 2001-12-27 Fernando Perez <fperez@colorado.edu>
5723 2001-12-27 Fernando Perez <fperez@colorado.edu>
5720
5724
5721 * IPython/iplib.py (InteractiveShell.interact): Added the original
5725 * IPython/iplib.py (InteractiveShell.interact): Added the original
5722 code from 'code.py' for this module in order to change the
5726 code from 'code.py' for this module in order to change the
5723 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5727 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5724 the history cache would break when the user hit Ctrl-C, and
5728 the history cache would break when the user hit Ctrl-C, and
5725 interact() offers no way to add any hooks to it.
5729 interact() offers no way to add any hooks to it.
5726
5730
5727 2001-12-23 Fernando Perez <fperez@colorado.edu>
5731 2001-12-23 Fernando Perez <fperez@colorado.edu>
5728
5732
5729 * setup.py: added check for 'MANIFEST' before trying to remove
5733 * setup.py: added check for 'MANIFEST' before trying to remove
5730 it. Thanks to Sean Reifschneider.
5734 it. Thanks to Sean Reifschneider.
5731
5735
5732 2001-12-22 Fernando Perez <fperez@colorado.edu>
5736 2001-12-22 Fernando Perez <fperez@colorado.edu>
5733
5737
5734 * Released 0.2.2.
5738 * Released 0.2.2.
5735
5739
5736 * Finished (reasonably) writing the manual. Later will add the
5740 * Finished (reasonably) writing the manual. Later will add the
5737 python-standard navigation stylesheets, but for the time being
5741 python-standard navigation stylesheets, but for the time being
5738 it's fairly complete. Distribution will include html and pdf
5742 it's fairly complete. Distribution will include html and pdf
5739 versions.
5743 versions.
5740
5744
5741 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5745 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5742 (MayaVi author).
5746 (MayaVi author).
5743
5747
5744 2001-12-21 Fernando Perez <fperez@colorado.edu>
5748 2001-12-21 Fernando Perez <fperez@colorado.edu>
5745
5749
5746 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5750 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5747 good public release, I think (with the manual and the distutils
5751 good public release, I think (with the manual and the distutils
5748 installer). The manual can use some work, but that can go
5752 installer). The manual can use some work, but that can go
5749 slowly. Otherwise I think it's quite nice for end users. Next
5753 slowly. Otherwise I think it's quite nice for end users. Next
5750 summer, rewrite the guts of it...
5754 summer, rewrite the guts of it...
5751
5755
5752 * Changed format of ipythonrc files to use whitespace as the
5756 * Changed format of ipythonrc files to use whitespace as the
5753 separator instead of an explicit '='. Cleaner.
5757 separator instead of an explicit '='. Cleaner.
5754
5758
5755 2001-12-20 Fernando Perez <fperez@colorado.edu>
5759 2001-12-20 Fernando Perez <fperez@colorado.edu>
5756
5760
5757 * Started a manual in LyX. For now it's just a quick merge of the
5761 * Started a manual in LyX. For now it's just a quick merge of the
5758 various internal docstrings and READMEs. Later it may grow into a
5762 various internal docstrings and READMEs. Later it may grow into a
5759 nice, full-blown manual.
5763 nice, full-blown manual.
5760
5764
5761 * Set up a distutils based installer. Installation should now be
5765 * Set up a distutils based installer. Installation should now be
5762 trivially simple for end-users.
5766 trivially simple for end-users.
5763
5767
5764 2001-12-11 Fernando Perez <fperez@colorado.edu>
5768 2001-12-11 Fernando Perez <fperez@colorado.edu>
5765
5769
5766 * Released 0.2.0. First public release, announced it at
5770 * Released 0.2.0. First public release, announced it at
5767 comp.lang.python. From now on, just bugfixes...
5771 comp.lang.python. From now on, just bugfixes...
5768
5772
5769 * Went through all the files, set copyright/license notices and
5773 * Went through all the files, set copyright/license notices and
5770 cleaned up things. Ready for release.
5774 cleaned up things. Ready for release.
5771
5775
5772 2001-12-10 Fernando Perez <fperez@colorado.edu>
5776 2001-12-10 Fernando Perez <fperez@colorado.edu>
5773
5777
5774 * Changed the first-time installer not to use tarfiles. It's more
5778 * Changed the first-time installer not to use tarfiles. It's more
5775 robust now and less unix-dependent. Also makes it easier for
5779 robust now and less unix-dependent. Also makes it easier for
5776 people to later upgrade versions.
5780 people to later upgrade versions.
5777
5781
5778 * Changed @exit to @abort to reflect the fact that it's pretty
5782 * Changed @exit to @abort to reflect the fact that it's pretty
5779 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5783 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5780 becomes significant only when IPyhton is embedded: in that case,
5784 becomes significant only when IPyhton is embedded: in that case,
5781 C-D closes IPython only, but @abort kills the enclosing program
5785 C-D closes IPython only, but @abort kills the enclosing program
5782 too (unless it had called IPython inside a try catching
5786 too (unless it had called IPython inside a try catching
5783 SystemExit).
5787 SystemExit).
5784
5788
5785 * Created Shell module which exposes the actuall IPython Shell
5789 * Created Shell module which exposes the actuall IPython Shell
5786 classes, currently the normal and the embeddable one. This at
5790 classes, currently the normal and the embeddable one. This at
5787 least offers a stable interface we won't need to change when
5791 least offers a stable interface we won't need to change when
5788 (later) the internals are rewritten. That rewrite will be confined
5792 (later) the internals are rewritten. That rewrite will be confined
5789 to iplib and ipmaker, but the Shell interface should remain as is.
5793 to iplib and ipmaker, but the Shell interface should remain as is.
5790
5794
5791 * Added embed module which offers an embeddable IPShell object,
5795 * Added embed module which offers an embeddable IPShell object,
5792 useful to fire up IPython *inside* a running program. Great for
5796 useful to fire up IPython *inside* a running program. Great for
5793 debugging or dynamical data analysis.
5797 debugging or dynamical data analysis.
5794
5798
5795 2001-12-08 Fernando Perez <fperez@colorado.edu>
5799 2001-12-08 Fernando Perez <fperez@colorado.edu>
5796
5800
5797 * Fixed small bug preventing seeing info from methods of defined
5801 * Fixed small bug preventing seeing info from methods of defined
5798 objects (incorrect namespace in _ofind()).
5802 objects (incorrect namespace in _ofind()).
5799
5803
5800 * Documentation cleanup. Moved the main usage docstrings to a
5804 * Documentation cleanup. Moved the main usage docstrings to a
5801 separate file, usage.py (cleaner to maintain, and hopefully in the
5805 separate file, usage.py (cleaner to maintain, and hopefully in the
5802 future some perlpod-like way of producing interactive, man and
5806 future some perlpod-like way of producing interactive, man and
5803 html docs out of it will be found).
5807 html docs out of it will be found).
5804
5808
5805 * Added @profile to see your profile at any time.
5809 * Added @profile to see your profile at any time.
5806
5810
5807 * Added @p as an alias for 'print'. It's especially convenient if
5811 * Added @p as an alias for 'print'. It's especially convenient if
5808 using automagic ('p x' prints x).
5812 using automagic ('p x' prints x).
5809
5813
5810 * Small cleanups and fixes after a pychecker run.
5814 * Small cleanups and fixes after a pychecker run.
5811
5815
5812 * Changed the @cd command to handle @cd - and @cd -<n> for
5816 * Changed the @cd command to handle @cd - and @cd -<n> for
5813 visiting any directory in _dh.
5817 visiting any directory in _dh.
5814
5818
5815 * Introduced _dh, a history of visited directories. @dhist prints
5819 * Introduced _dh, a history of visited directories. @dhist prints
5816 it out with numbers.
5820 it out with numbers.
5817
5821
5818 2001-12-07 Fernando Perez <fperez@colorado.edu>
5822 2001-12-07 Fernando Perez <fperez@colorado.edu>
5819
5823
5820 * Released 0.1.22
5824 * Released 0.1.22
5821
5825
5822 * Made initialization a bit more robust against invalid color
5826 * Made initialization a bit more robust against invalid color
5823 options in user input (exit, not traceback-crash).
5827 options in user input (exit, not traceback-crash).
5824
5828
5825 * Changed the bug crash reporter to write the report only in the
5829 * Changed the bug crash reporter to write the report only in the
5826 user's .ipython directory. That way IPython won't litter people's
5830 user's .ipython directory. That way IPython won't litter people's
5827 hard disks with crash files all over the place. Also print on
5831 hard disks with crash files all over the place. Also print on
5828 screen the necessary mail command.
5832 screen the necessary mail command.
5829
5833
5830 * With the new ultraTB, implemented LightBG color scheme for light
5834 * With the new ultraTB, implemented LightBG color scheme for light
5831 background terminals. A lot of people like white backgrounds, so I
5835 background terminals. A lot of people like white backgrounds, so I
5832 guess we should at least give them something readable.
5836 guess we should at least give them something readable.
5833
5837
5834 2001-12-06 Fernando Perez <fperez@colorado.edu>
5838 2001-12-06 Fernando Perez <fperez@colorado.edu>
5835
5839
5836 * Modified the structure of ultraTB. Now there's a proper class
5840 * Modified the structure of ultraTB. Now there's a proper class
5837 for tables of color schemes which allow adding schemes easily and
5841 for tables of color schemes which allow adding schemes easily and
5838 switching the active scheme without creating a new instance every
5842 switching the active scheme without creating a new instance every
5839 time (which was ridiculous). The syntax for creating new schemes
5843 time (which was ridiculous). The syntax for creating new schemes
5840 is also cleaner. I think ultraTB is finally done, with a clean
5844 is also cleaner. I think ultraTB is finally done, with a clean
5841 class structure. Names are also much cleaner (now there's proper
5845 class structure. Names are also much cleaner (now there's proper
5842 color tables, no need for every variable to also have 'color' in
5846 color tables, no need for every variable to also have 'color' in
5843 its name).
5847 its name).
5844
5848
5845 * Broke down genutils into separate files. Now genutils only
5849 * Broke down genutils into separate files. Now genutils only
5846 contains utility functions, and classes have been moved to their
5850 contains utility functions, and classes have been moved to their
5847 own files (they had enough independent functionality to warrant
5851 own files (they had enough independent functionality to warrant
5848 it): ConfigLoader, OutputTrap, Struct.
5852 it): ConfigLoader, OutputTrap, Struct.
5849
5853
5850 2001-12-05 Fernando Perez <fperez@colorado.edu>
5854 2001-12-05 Fernando Perez <fperez@colorado.edu>
5851
5855
5852 * IPython turns 21! Released version 0.1.21, as a candidate for
5856 * IPython turns 21! Released version 0.1.21, as a candidate for
5853 public consumption. If all goes well, release in a few days.
5857 public consumption. If all goes well, release in a few days.
5854
5858
5855 * Fixed path bug (files in Extensions/ directory wouldn't be found
5859 * Fixed path bug (files in Extensions/ directory wouldn't be found
5856 unless IPython/ was explicitly in sys.path).
5860 unless IPython/ was explicitly in sys.path).
5857
5861
5858 * Extended the FlexCompleter class as MagicCompleter to allow
5862 * Extended the FlexCompleter class as MagicCompleter to allow
5859 completion of @-starting lines.
5863 completion of @-starting lines.
5860
5864
5861 * Created __release__.py file as a central repository for release
5865 * Created __release__.py file as a central repository for release
5862 info that other files can read from.
5866 info that other files can read from.
5863
5867
5864 * Fixed small bug in logging: when logging was turned on in
5868 * Fixed small bug in logging: when logging was turned on in
5865 mid-session, old lines with special meanings (!@?) were being
5869 mid-session, old lines with special meanings (!@?) were being
5866 logged without the prepended comment, which is necessary since
5870 logged without the prepended comment, which is necessary since
5867 they are not truly valid python syntax. This should make session
5871 they are not truly valid python syntax. This should make session
5868 restores produce less errors.
5872 restores produce less errors.
5869
5873
5870 * The namespace cleanup forced me to make a FlexCompleter class
5874 * The namespace cleanup forced me to make a FlexCompleter class
5871 which is nothing but a ripoff of rlcompleter, but with selectable
5875 which is nothing but a ripoff of rlcompleter, but with selectable
5872 namespace (rlcompleter only works in __main__.__dict__). I'll try
5876 namespace (rlcompleter only works in __main__.__dict__). I'll try
5873 to submit a note to the authors to see if this change can be
5877 to submit a note to the authors to see if this change can be
5874 incorporated in future rlcompleter releases (Dec.6: done)
5878 incorporated in future rlcompleter releases (Dec.6: done)
5875
5879
5876 * More fixes to namespace handling. It was a mess! Now all
5880 * More fixes to namespace handling. It was a mess! Now all
5877 explicit references to __main__.__dict__ are gone (except when
5881 explicit references to __main__.__dict__ are gone (except when
5878 really needed) and everything is handled through the namespace
5882 really needed) and everything is handled through the namespace
5879 dicts in the IPython instance. We seem to be getting somewhere
5883 dicts in the IPython instance. We seem to be getting somewhere
5880 with this, finally...
5884 with this, finally...
5881
5885
5882 * Small documentation updates.
5886 * Small documentation updates.
5883
5887
5884 * Created the Extensions directory under IPython (with an
5888 * Created the Extensions directory under IPython (with an
5885 __init__.py). Put the PhysicalQ stuff there. This directory should
5889 __init__.py). Put the PhysicalQ stuff there. This directory should
5886 be used for all special-purpose extensions.
5890 be used for all special-purpose extensions.
5887
5891
5888 * File renaming:
5892 * File renaming:
5889 ipythonlib --> ipmaker
5893 ipythonlib --> ipmaker
5890 ipplib --> iplib
5894 ipplib --> iplib
5891 This makes a bit more sense in terms of what these files actually do.
5895 This makes a bit more sense in terms of what these files actually do.
5892
5896
5893 * Moved all the classes and functions in ipythonlib to ipplib, so
5897 * Moved all the classes and functions in ipythonlib to ipplib, so
5894 now ipythonlib only has make_IPython(). This will ease up its
5898 now ipythonlib only has make_IPython(). This will ease up its
5895 splitting in smaller functional chunks later.
5899 splitting in smaller functional chunks later.
5896
5900
5897 * Cleaned up (done, I think) output of @whos. Better column
5901 * Cleaned up (done, I think) output of @whos. Better column
5898 formatting, and now shows str(var) for as much as it can, which is
5902 formatting, and now shows str(var) for as much as it can, which is
5899 typically what one gets with a 'print var'.
5903 typically what one gets with a 'print var'.
5900
5904
5901 2001-12-04 Fernando Perez <fperez@colorado.edu>
5905 2001-12-04 Fernando Perez <fperez@colorado.edu>
5902
5906
5903 * Fixed namespace problems. Now builtin/IPyhton/user names get
5907 * Fixed namespace problems. Now builtin/IPyhton/user names get
5904 properly reported in their namespace. Internal namespace handling
5908 properly reported in their namespace. Internal namespace handling
5905 is finally getting decent (not perfect yet, but much better than
5909 is finally getting decent (not perfect yet, but much better than
5906 the ad-hoc mess we had).
5910 the ad-hoc mess we had).
5907
5911
5908 * Removed -exit option. If people just want to run a python
5912 * Removed -exit option. If people just want to run a python
5909 script, that's what the normal interpreter is for. Less
5913 script, that's what the normal interpreter is for. Less
5910 unnecessary options, less chances for bugs.
5914 unnecessary options, less chances for bugs.
5911
5915
5912 * Added a crash handler which generates a complete post-mortem if
5916 * Added a crash handler which generates a complete post-mortem if
5913 IPython crashes. This will help a lot in tracking bugs down the
5917 IPython crashes. This will help a lot in tracking bugs down the
5914 road.
5918 road.
5915
5919
5916 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5920 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5917 which were boud to functions being reassigned would bypass the
5921 which were boud to functions being reassigned would bypass the
5918 logger, breaking the sync of _il with the prompt counter. This
5922 logger, breaking the sync of _il with the prompt counter. This
5919 would then crash IPython later when a new line was logged.
5923 would then crash IPython later when a new line was logged.
5920
5924
5921 2001-12-02 Fernando Perez <fperez@colorado.edu>
5925 2001-12-02 Fernando Perez <fperez@colorado.edu>
5922
5926
5923 * Made IPython a package. This means people don't have to clutter
5927 * Made IPython a package. This means people don't have to clutter
5924 their sys.path with yet another directory. Changed the INSTALL
5928 their sys.path with yet another directory. Changed the INSTALL
5925 file accordingly.
5929 file accordingly.
5926
5930
5927 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5931 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5928 sorts its output (so @who shows it sorted) and @whos formats the
5932 sorts its output (so @who shows it sorted) and @whos formats the
5929 table according to the width of the first column. Nicer, easier to
5933 table according to the width of the first column. Nicer, easier to
5930 read. Todo: write a generic table_format() which takes a list of
5934 read. Todo: write a generic table_format() which takes a list of
5931 lists and prints it nicely formatted, with optional row/column
5935 lists and prints it nicely formatted, with optional row/column
5932 separators and proper padding and justification.
5936 separators and proper padding and justification.
5933
5937
5934 * Released 0.1.20
5938 * Released 0.1.20
5935
5939
5936 * Fixed bug in @log which would reverse the inputcache list (a
5940 * Fixed bug in @log which would reverse the inputcache list (a
5937 copy operation was missing).
5941 copy operation was missing).
5938
5942
5939 * Code cleanup. @config was changed to use page(). Better, since
5943 * Code cleanup. @config was changed to use page(). Better, since
5940 its output is always quite long.
5944 its output is always quite long.
5941
5945
5942 * Itpl is back as a dependency. I was having too many problems
5946 * Itpl is back as a dependency. I was having too many problems
5943 getting the parametric aliases to work reliably, and it's just
5947 getting the parametric aliases to work reliably, and it's just
5944 easier to code weird string operations with it than playing %()s
5948 easier to code weird string operations with it than playing %()s
5945 games. It's only ~6k, so I don't think it's too big a deal.
5949 games. It's only ~6k, so I don't think it's too big a deal.
5946
5950
5947 * Found (and fixed) a very nasty bug with history. !lines weren't
5951 * Found (and fixed) a very nasty bug with history. !lines weren't
5948 getting cached, and the out of sync caches would crash
5952 getting cached, and the out of sync caches would crash
5949 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5953 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5950 division of labor a bit better. Bug fixed, cleaner structure.
5954 division of labor a bit better. Bug fixed, cleaner structure.
5951
5955
5952 2001-12-01 Fernando Perez <fperez@colorado.edu>
5956 2001-12-01 Fernando Perez <fperez@colorado.edu>
5953
5957
5954 * Released 0.1.19
5958 * Released 0.1.19
5955
5959
5956 * Added option -n to @hist to prevent line number printing. Much
5960 * Added option -n to @hist to prevent line number printing. Much
5957 easier to copy/paste code this way.
5961 easier to copy/paste code this way.
5958
5962
5959 * Created global _il to hold the input list. Allows easy
5963 * Created global _il to hold the input list. Allows easy
5960 re-execution of blocks of code by slicing it (inspired by Janko's
5964 re-execution of blocks of code by slicing it (inspired by Janko's
5961 comment on 'macros').
5965 comment on 'macros').
5962
5966
5963 * Small fixes and doc updates.
5967 * Small fixes and doc updates.
5964
5968
5965 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5969 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5966 much too fragile with automagic. Handles properly multi-line
5970 much too fragile with automagic. Handles properly multi-line
5967 statements and takes parameters.
5971 statements and takes parameters.
5968
5972
5969 2001-11-30 Fernando Perez <fperez@colorado.edu>
5973 2001-11-30 Fernando Perez <fperez@colorado.edu>
5970
5974
5971 * Version 0.1.18 released.
5975 * Version 0.1.18 released.
5972
5976
5973 * Fixed nasty namespace bug in initial module imports.
5977 * Fixed nasty namespace bug in initial module imports.
5974
5978
5975 * Added copyright/license notes to all code files (except
5979 * Added copyright/license notes to all code files (except
5976 DPyGetOpt). For the time being, LGPL. That could change.
5980 DPyGetOpt). For the time being, LGPL. That could change.
5977
5981
5978 * Rewrote a much nicer README, updated INSTALL, cleaned up
5982 * Rewrote a much nicer README, updated INSTALL, cleaned up
5979 ipythonrc-* samples.
5983 ipythonrc-* samples.
5980
5984
5981 * Overall code/documentation cleanup. Basically ready for
5985 * Overall code/documentation cleanup. Basically ready for
5982 release. Only remaining thing: licence decision (LGPL?).
5986 release. Only remaining thing: licence decision (LGPL?).
5983
5987
5984 * Converted load_config to a class, ConfigLoader. Now recursion
5988 * Converted load_config to a class, ConfigLoader. Now recursion
5985 control is better organized. Doesn't include the same file twice.
5989 control is better organized. Doesn't include the same file twice.
5986
5990
5987 2001-11-29 Fernando Perez <fperez@colorado.edu>
5991 2001-11-29 Fernando Perez <fperez@colorado.edu>
5988
5992
5989 * Got input history working. Changed output history variables from
5993 * Got input history working. Changed output history variables from
5990 _p to _o so that _i is for input and _o for output. Just cleaner
5994 _p to _o so that _i is for input and _o for output. Just cleaner
5991 convention.
5995 convention.
5992
5996
5993 * Implemented parametric aliases. This pretty much allows the
5997 * Implemented parametric aliases. This pretty much allows the
5994 alias system to offer full-blown shell convenience, I think.
5998 alias system to offer full-blown shell convenience, I think.
5995
5999
5996 * Version 0.1.17 released, 0.1.18 opened.
6000 * Version 0.1.17 released, 0.1.18 opened.
5997
6001
5998 * dot_ipython/ipythonrc (alias): added documentation.
6002 * dot_ipython/ipythonrc (alias): added documentation.
5999 (xcolor): Fixed small bug (xcolors -> xcolor)
6003 (xcolor): Fixed small bug (xcolors -> xcolor)
6000
6004
6001 * Changed the alias system. Now alias is a magic command to define
6005 * Changed the alias system. Now alias is a magic command to define
6002 aliases just like the shell. Rationale: the builtin magics should
6006 aliases just like the shell. Rationale: the builtin magics should
6003 be there for things deeply connected to IPython's
6007 be there for things deeply connected to IPython's
6004 architecture. And this is a much lighter system for what I think
6008 architecture. And this is a much lighter system for what I think
6005 is the really important feature: allowing users to define quickly
6009 is the really important feature: allowing users to define quickly
6006 magics that will do shell things for them, so they can customize
6010 magics that will do shell things for them, so they can customize
6007 IPython easily to match their work habits. If someone is really
6011 IPython easily to match their work habits. If someone is really
6008 desperate to have another name for a builtin alias, they can
6012 desperate to have another name for a builtin alias, they can
6009 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6013 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6010 works.
6014 works.
6011
6015
6012 2001-11-28 Fernando Perez <fperez@colorado.edu>
6016 2001-11-28 Fernando Perez <fperez@colorado.edu>
6013
6017
6014 * Changed @file so that it opens the source file at the proper
6018 * Changed @file so that it opens the source file at the proper
6015 line. Since it uses less, if your EDITOR environment is
6019 line. Since it uses less, if your EDITOR environment is
6016 configured, typing v will immediately open your editor of choice
6020 configured, typing v will immediately open your editor of choice
6017 right at the line where the object is defined. Not as quick as
6021 right at the line where the object is defined. Not as quick as
6018 having a direct @edit command, but for all intents and purposes it
6022 having a direct @edit command, but for all intents and purposes it
6019 works. And I don't have to worry about writing @edit to deal with
6023 works. And I don't have to worry about writing @edit to deal with
6020 all the editors, less does that.
6024 all the editors, less does that.
6021
6025
6022 * Version 0.1.16 released, 0.1.17 opened.
6026 * Version 0.1.16 released, 0.1.17 opened.
6023
6027
6024 * Fixed some nasty bugs in the page/page_dumb combo that could
6028 * Fixed some nasty bugs in the page/page_dumb combo that could
6025 crash IPython.
6029 crash IPython.
6026
6030
6027 2001-11-27 Fernando Perez <fperez@colorado.edu>
6031 2001-11-27 Fernando Perez <fperez@colorado.edu>
6028
6032
6029 * Version 0.1.15 released, 0.1.16 opened.
6033 * Version 0.1.15 released, 0.1.16 opened.
6030
6034
6031 * Finally got ? and ?? to work for undefined things: now it's
6035 * Finally got ? and ?? to work for undefined things: now it's
6032 possible to type {}.get? and get information about the get method
6036 possible to type {}.get? and get information about the get method
6033 of dicts, or os.path? even if only os is defined (so technically
6037 of dicts, or os.path? even if only os is defined (so technically
6034 os.path isn't). Works at any level. For example, after import os,
6038 os.path isn't). Works at any level. For example, after import os,
6035 os?, os.path?, os.path.abspath? all work. This is great, took some
6039 os?, os.path?, os.path.abspath? all work. This is great, took some
6036 work in _ofind.
6040 work in _ofind.
6037
6041
6038 * Fixed more bugs with logging. The sanest way to do it was to add
6042 * Fixed more bugs with logging. The sanest way to do it was to add
6039 to @log a 'mode' parameter. Killed two in one shot (this mode
6043 to @log a 'mode' parameter. Killed two in one shot (this mode
6040 option was a request of Janko's). I think it's finally clean
6044 option was a request of Janko's). I think it's finally clean
6041 (famous last words).
6045 (famous last words).
6042
6046
6043 * Added a page_dumb() pager which does a decent job of paging on
6047 * Added a page_dumb() pager which does a decent job of paging on
6044 screen, if better things (like less) aren't available. One less
6048 screen, if better things (like less) aren't available. One less
6045 unix dependency (someday maybe somebody will port this to
6049 unix dependency (someday maybe somebody will port this to
6046 windows).
6050 windows).
6047
6051
6048 * Fixed problem in magic_log: would lock of logging out if log
6052 * Fixed problem in magic_log: would lock of logging out if log
6049 creation failed (because it would still think it had succeeded).
6053 creation failed (because it would still think it had succeeded).
6050
6054
6051 * Improved the page() function using curses to auto-detect screen
6055 * Improved the page() function using curses to auto-detect screen
6052 size. Now it can make a much better decision on whether to print
6056 size. Now it can make a much better decision on whether to print
6053 or page a string. Option screen_length was modified: a value 0
6057 or page a string. Option screen_length was modified: a value 0
6054 means auto-detect, and that's the default now.
6058 means auto-detect, and that's the default now.
6055
6059
6056 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6060 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6057 go out. I'll test it for a few days, then talk to Janko about
6061 go out. I'll test it for a few days, then talk to Janko about
6058 licences and announce it.
6062 licences and announce it.
6059
6063
6060 * Fixed the length of the auto-generated ---> prompt which appears
6064 * Fixed the length of the auto-generated ---> prompt which appears
6061 for auto-parens and auto-quotes. Getting this right isn't trivial,
6065 for auto-parens and auto-quotes. Getting this right isn't trivial,
6062 with all the color escapes, different prompt types and optional
6066 with all the color escapes, different prompt types and optional
6063 separators. But it seems to be working in all the combinations.
6067 separators. But it seems to be working in all the combinations.
6064
6068
6065 2001-11-26 Fernando Perez <fperez@colorado.edu>
6069 2001-11-26 Fernando Perez <fperez@colorado.edu>
6066
6070
6067 * Wrote a regexp filter to get option types from the option names
6071 * Wrote a regexp filter to get option types from the option names
6068 string. This eliminates the need to manually keep two duplicate
6072 string. This eliminates the need to manually keep two duplicate
6069 lists.
6073 lists.
6070
6074
6071 * Removed the unneeded check_option_names. Now options are handled
6075 * Removed the unneeded check_option_names. Now options are handled
6072 in a much saner manner and it's easy to visually check that things
6076 in a much saner manner and it's easy to visually check that things
6073 are ok.
6077 are ok.
6074
6078
6075 * Updated version numbers on all files I modified to carry a
6079 * Updated version numbers on all files I modified to carry a
6076 notice so Janko and Nathan have clear version markers.
6080 notice so Janko and Nathan have clear version markers.
6077
6081
6078 * Updated docstring for ultraTB with my changes. I should send
6082 * Updated docstring for ultraTB with my changes. I should send
6079 this to Nathan.
6083 this to Nathan.
6080
6084
6081 * Lots of small fixes. Ran everything through pychecker again.
6085 * Lots of small fixes. Ran everything through pychecker again.
6082
6086
6083 * Made loading of deep_reload an cmd line option. If it's not too
6087 * Made loading of deep_reload an cmd line option. If it's not too
6084 kosher, now people can just disable it. With -nodeep_reload it's
6088 kosher, now people can just disable it. With -nodeep_reload it's
6085 still available as dreload(), it just won't overwrite reload().
6089 still available as dreload(), it just won't overwrite reload().
6086
6090
6087 * Moved many options to the no| form (-opt and -noopt
6091 * Moved many options to the no| form (-opt and -noopt
6088 accepted). Cleaner.
6092 accepted). Cleaner.
6089
6093
6090 * Changed magic_log so that if called with no parameters, it uses
6094 * Changed magic_log so that if called with no parameters, it uses
6091 'rotate' mode. That way auto-generated logs aren't automatically
6095 'rotate' mode. That way auto-generated logs aren't automatically
6092 over-written. For normal logs, now a backup is made if it exists
6096 over-written. For normal logs, now a backup is made if it exists
6093 (only 1 level of backups). A new 'backup' mode was added to the
6097 (only 1 level of backups). A new 'backup' mode was added to the
6094 Logger class to support this. This was a request by Janko.
6098 Logger class to support this. This was a request by Janko.
6095
6099
6096 * Added @logoff/@logon to stop/restart an active log.
6100 * Added @logoff/@logon to stop/restart an active log.
6097
6101
6098 * Fixed a lot of bugs in log saving/replay. It was pretty
6102 * Fixed a lot of bugs in log saving/replay. It was pretty
6099 broken. Now special lines (!@,/) appear properly in the command
6103 broken. Now special lines (!@,/) appear properly in the command
6100 history after a log replay.
6104 history after a log replay.
6101
6105
6102 * Tried and failed to implement full session saving via pickle. My
6106 * Tried and failed to implement full session saving via pickle. My
6103 idea was to pickle __main__.__dict__, but modules can't be
6107 idea was to pickle __main__.__dict__, but modules can't be
6104 pickled. This would be a better alternative to replaying logs, but
6108 pickled. This would be a better alternative to replaying logs, but
6105 seems quite tricky to get to work. Changed -session to be called
6109 seems quite tricky to get to work. Changed -session to be called
6106 -logplay, which more accurately reflects what it does. And if we
6110 -logplay, which more accurately reflects what it does. And if we
6107 ever get real session saving working, -session is now available.
6111 ever get real session saving working, -session is now available.
6108
6112
6109 * Implemented color schemes for prompts also. As for tracebacks,
6113 * Implemented color schemes for prompts also. As for tracebacks,
6110 currently only NoColor and Linux are supported. But now the
6114 currently only NoColor and Linux are supported. But now the
6111 infrastructure is in place, based on a generic ColorScheme
6115 infrastructure is in place, based on a generic ColorScheme
6112 class. So writing and activating new schemes both for the prompts
6116 class. So writing and activating new schemes both for the prompts
6113 and the tracebacks should be straightforward.
6117 and the tracebacks should be straightforward.
6114
6118
6115 * Version 0.1.13 released, 0.1.14 opened.
6119 * Version 0.1.13 released, 0.1.14 opened.
6116
6120
6117 * Changed handling of options for output cache. Now counter is
6121 * Changed handling of options for output cache. Now counter is
6118 hardwired starting at 1 and one specifies the maximum number of
6122 hardwired starting at 1 and one specifies the maximum number of
6119 entries *in the outcache* (not the max prompt counter). This is
6123 entries *in the outcache* (not the max prompt counter). This is
6120 much better, since many statements won't increase the cache
6124 much better, since many statements won't increase the cache
6121 count. It also eliminated some confusing options, now there's only
6125 count. It also eliminated some confusing options, now there's only
6122 one: cache_size.
6126 one: cache_size.
6123
6127
6124 * Added 'alias' magic function and magic_alias option in the
6128 * Added 'alias' magic function and magic_alias option in the
6125 ipythonrc file. Now the user can easily define whatever names he
6129 ipythonrc file. Now the user can easily define whatever names he
6126 wants for the magic functions without having to play weird
6130 wants for the magic functions without having to play weird
6127 namespace games. This gives IPython a real shell-like feel.
6131 namespace games. This gives IPython a real shell-like feel.
6128
6132
6129 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6133 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6130 @ or not).
6134 @ or not).
6131
6135
6132 This was one of the last remaining 'visible' bugs (that I know
6136 This was one of the last remaining 'visible' bugs (that I know
6133 of). I think if I can clean up the session loading so it works
6137 of). I think if I can clean up the session loading so it works
6134 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6138 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6135 about licensing).
6139 about licensing).
6136
6140
6137 2001-11-25 Fernando Perez <fperez@colorado.edu>
6141 2001-11-25 Fernando Perez <fperez@colorado.edu>
6138
6142
6139 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6143 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6140 there's a cleaner distinction between what ? and ?? show.
6144 there's a cleaner distinction between what ? and ?? show.
6141
6145
6142 * Added screen_length option. Now the user can define his own
6146 * Added screen_length option. Now the user can define his own
6143 screen size for page() operations.
6147 screen size for page() operations.
6144
6148
6145 * Implemented magic shell-like functions with automatic code
6149 * Implemented magic shell-like functions with automatic code
6146 generation. Now adding another function is just a matter of adding
6150 generation. Now adding another function is just a matter of adding
6147 an entry to a dict, and the function is dynamically generated at
6151 an entry to a dict, and the function is dynamically generated at
6148 run-time. Python has some really cool features!
6152 run-time. Python has some really cool features!
6149
6153
6150 * Renamed many options to cleanup conventions a little. Now all
6154 * Renamed many options to cleanup conventions a little. Now all
6151 are lowercase, and only underscores where needed. Also in the code
6155 are lowercase, and only underscores where needed. Also in the code
6152 option name tables are clearer.
6156 option name tables are clearer.
6153
6157
6154 * Changed prompts a little. Now input is 'In [n]:' instead of
6158 * Changed prompts a little. Now input is 'In [n]:' instead of
6155 'In[n]:='. This allows it the numbers to be aligned with the
6159 'In[n]:='. This allows it the numbers to be aligned with the
6156 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6160 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6157 Python (it was a Mathematica thing). The '...' continuation prompt
6161 Python (it was a Mathematica thing). The '...' continuation prompt
6158 was also changed a little to align better.
6162 was also changed a little to align better.
6159
6163
6160 * Fixed bug when flushing output cache. Not all _p<n> variables
6164 * Fixed bug when flushing output cache. Not all _p<n> variables
6161 exist, so their deletion needs to be wrapped in a try:
6165 exist, so their deletion needs to be wrapped in a try:
6162
6166
6163 * Figured out how to properly use inspect.formatargspec() (it
6167 * Figured out how to properly use inspect.formatargspec() (it
6164 requires the args preceded by *). So I removed all the code from
6168 requires the args preceded by *). So I removed all the code from
6165 _get_pdef in Magic, which was just replicating that.
6169 _get_pdef in Magic, which was just replicating that.
6166
6170
6167 * Added test to prefilter to allow redefining magic function names
6171 * Added test to prefilter to allow redefining magic function names
6168 as variables. This is ok, since the @ form is always available,
6172 as variables. This is ok, since the @ form is always available,
6169 but whe should allow the user to define a variable called 'ls' if
6173 but whe should allow the user to define a variable called 'ls' if
6170 he needs it.
6174 he needs it.
6171
6175
6172 * Moved the ToDo information from README into a separate ToDo.
6176 * Moved the ToDo information from README into a separate ToDo.
6173
6177
6174 * General code cleanup and small bugfixes. I think it's close to a
6178 * General code cleanup and small bugfixes. I think it's close to a
6175 state where it can be released, obviously with a big 'beta'
6179 state where it can be released, obviously with a big 'beta'
6176 warning on it.
6180 warning on it.
6177
6181
6178 * Got the magic function split to work. Now all magics are defined
6182 * Got the magic function split to work. Now all magics are defined
6179 in a separate class. It just organizes things a bit, and now
6183 in a separate class. It just organizes things a bit, and now
6180 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6184 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6181 was too long).
6185 was too long).
6182
6186
6183 * Changed @clear to @reset to avoid potential confusions with
6187 * Changed @clear to @reset to avoid potential confusions with
6184 the shell command clear. Also renamed @cl to @clear, which does
6188 the shell command clear. Also renamed @cl to @clear, which does
6185 exactly what people expect it to from their shell experience.
6189 exactly what people expect it to from their shell experience.
6186
6190
6187 Added a check to the @reset command (since it's so
6191 Added a check to the @reset command (since it's so
6188 destructive, it's probably a good idea to ask for confirmation).
6192 destructive, it's probably a good idea to ask for confirmation).
6189 But now reset only works for full namespace resetting. Since the
6193 But now reset only works for full namespace resetting. Since the
6190 del keyword is already there for deleting a few specific
6194 del keyword is already there for deleting a few specific
6191 variables, I don't see the point of having a redundant magic
6195 variables, I don't see the point of having a redundant magic
6192 function for the same task.
6196 function for the same task.
6193
6197
6194 2001-11-24 Fernando Perez <fperez@colorado.edu>
6198 2001-11-24 Fernando Perez <fperez@colorado.edu>
6195
6199
6196 * Updated the builtin docs (esp. the ? ones).
6200 * Updated the builtin docs (esp. the ? ones).
6197
6201
6198 * Ran all the code through pychecker. Not terribly impressed with
6202 * Ran all the code through pychecker. Not terribly impressed with
6199 it: lots of spurious warnings and didn't really find anything of
6203 it: lots of spurious warnings and didn't really find anything of
6200 substance (just a few modules being imported and not used).
6204 substance (just a few modules being imported and not used).
6201
6205
6202 * Implemented the new ultraTB functionality into IPython. New
6206 * Implemented the new ultraTB functionality into IPython. New
6203 option: xcolors. This chooses color scheme. xmode now only selects
6207 option: xcolors. This chooses color scheme. xmode now only selects
6204 between Plain and Verbose. Better orthogonality.
6208 between Plain and Verbose. Better orthogonality.
6205
6209
6206 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6210 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6207 mode and color scheme for the exception handlers. Now it's
6211 mode and color scheme for the exception handlers. Now it's
6208 possible to have the verbose traceback with no coloring.
6212 possible to have the verbose traceback with no coloring.
6209
6213
6210 2001-11-23 Fernando Perez <fperez@colorado.edu>
6214 2001-11-23 Fernando Perez <fperez@colorado.edu>
6211
6215
6212 * Version 0.1.12 released, 0.1.13 opened.
6216 * Version 0.1.12 released, 0.1.13 opened.
6213
6217
6214 * Removed option to set auto-quote and auto-paren escapes by
6218 * Removed option to set auto-quote and auto-paren escapes by
6215 user. The chances of breaking valid syntax are just too high. If
6219 user. The chances of breaking valid syntax are just too high. If
6216 someone *really* wants, they can always dig into the code.
6220 someone *really* wants, they can always dig into the code.
6217
6221
6218 * Made prompt separators configurable.
6222 * Made prompt separators configurable.
6219
6223
6220 2001-11-22 Fernando Perez <fperez@colorado.edu>
6224 2001-11-22 Fernando Perez <fperez@colorado.edu>
6221
6225
6222 * Small bugfixes in many places.
6226 * Small bugfixes in many places.
6223
6227
6224 * Removed the MyCompleter class from ipplib. It seemed redundant
6228 * Removed the MyCompleter class from ipplib. It seemed redundant
6225 with the C-p,C-n history search functionality. Less code to
6229 with the C-p,C-n history search functionality. Less code to
6226 maintain.
6230 maintain.
6227
6231
6228 * Moved all the original ipython.py code into ipythonlib.py. Right
6232 * Moved all the original ipython.py code into ipythonlib.py. Right
6229 now it's just one big dump into a function called make_IPython, so
6233 now it's just one big dump into a function called make_IPython, so
6230 no real modularity has been gained. But at least it makes the
6234 no real modularity has been gained. But at least it makes the
6231 wrapper script tiny, and since ipythonlib is a module, it gets
6235 wrapper script tiny, and since ipythonlib is a module, it gets
6232 compiled and startup is much faster.
6236 compiled and startup is much faster.
6233
6237
6234 This is a reasobably 'deep' change, so we should test it for a
6238 This is a reasobably 'deep' change, so we should test it for a
6235 while without messing too much more with the code.
6239 while without messing too much more with the code.
6236
6240
6237 2001-11-21 Fernando Perez <fperez@colorado.edu>
6241 2001-11-21 Fernando Perez <fperez@colorado.edu>
6238
6242
6239 * Version 0.1.11 released, 0.1.12 opened for further work.
6243 * Version 0.1.11 released, 0.1.12 opened for further work.
6240
6244
6241 * Removed dependency on Itpl. It was only needed in one place. It
6245 * Removed dependency on Itpl. It was only needed in one place. It
6242 would be nice if this became part of python, though. It makes life
6246 would be nice if this became part of python, though. It makes life
6243 *a lot* easier in some cases.
6247 *a lot* easier in some cases.
6244
6248
6245 * Simplified the prefilter code a bit. Now all handlers are
6249 * Simplified the prefilter code a bit. Now all handlers are
6246 expected to explicitly return a value (at least a blank string).
6250 expected to explicitly return a value (at least a blank string).
6247
6251
6248 * Heavy edits in ipplib. Removed the help system altogether. Now
6252 * Heavy edits in ipplib. Removed the help system altogether. Now
6249 obj?/?? is used for inspecting objects, a magic @doc prints
6253 obj?/?? is used for inspecting objects, a magic @doc prints
6250 docstrings, and full-blown Python help is accessed via the 'help'
6254 docstrings, and full-blown Python help is accessed via the 'help'
6251 keyword. This cleans up a lot of code (less to maintain) and does
6255 keyword. This cleans up a lot of code (less to maintain) and does
6252 the job. Since 'help' is now a standard Python component, might as
6256 the job. Since 'help' is now a standard Python component, might as
6253 well use it and remove duplicate functionality.
6257 well use it and remove duplicate functionality.
6254
6258
6255 Also removed the option to use ipplib as a standalone program. By
6259 Also removed the option to use ipplib as a standalone program. By
6256 now it's too dependent on other parts of IPython to function alone.
6260 now it's too dependent on other parts of IPython to function alone.
6257
6261
6258 * Fixed bug in genutils.pager. It would crash if the pager was
6262 * Fixed bug in genutils.pager. It would crash if the pager was
6259 exited immediately after opening (broken pipe).
6263 exited immediately after opening (broken pipe).
6260
6264
6261 * Trimmed down the VerboseTB reporting a little. The header is
6265 * Trimmed down the VerboseTB reporting a little. The header is
6262 much shorter now and the repeated exception arguments at the end
6266 much shorter now and the repeated exception arguments at the end
6263 have been removed. For interactive use the old header seemed a bit
6267 have been removed. For interactive use the old header seemed a bit
6264 excessive.
6268 excessive.
6265
6269
6266 * Fixed small bug in output of @whos for variables with multi-word
6270 * Fixed small bug in output of @whos for variables with multi-word
6267 types (only first word was displayed).
6271 types (only first word was displayed).
6268
6272
6269 2001-11-17 Fernando Perez <fperez@colorado.edu>
6273 2001-11-17 Fernando Perez <fperez@colorado.edu>
6270
6274
6271 * Version 0.1.10 released, 0.1.11 opened for further work.
6275 * Version 0.1.10 released, 0.1.11 opened for further work.
6272
6276
6273 * Modified dirs and friends. dirs now *returns* the stack (not
6277 * Modified dirs and friends. dirs now *returns* the stack (not
6274 prints), so one can manipulate it as a variable. Convenient to
6278 prints), so one can manipulate it as a variable. Convenient to
6275 travel along many directories.
6279 travel along many directories.
6276
6280
6277 * Fixed bug in magic_pdef: would only work with functions with
6281 * Fixed bug in magic_pdef: would only work with functions with
6278 arguments with default values.
6282 arguments with default values.
6279
6283
6280 2001-11-14 Fernando Perez <fperez@colorado.edu>
6284 2001-11-14 Fernando Perez <fperez@colorado.edu>
6281
6285
6282 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6286 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6283 example with IPython. Various other minor fixes and cleanups.
6287 example with IPython. Various other minor fixes and cleanups.
6284
6288
6285 * Version 0.1.9 released, 0.1.10 opened for further work.
6289 * Version 0.1.9 released, 0.1.10 opened for further work.
6286
6290
6287 * Added sys.path to the list of directories searched in the
6291 * Added sys.path to the list of directories searched in the
6288 execfile= option. It used to be the current directory and the
6292 execfile= option. It used to be the current directory and the
6289 user's IPYTHONDIR only.
6293 user's IPYTHONDIR only.
6290
6294
6291 2001-11-13 Fernando Perez <fperez@colorado.edu>
6295 2001-11-13 Fernando Perez <fperez@colorado.edu>
6292
6296
6293 * Reinstated the raw_input/prefilter separation that Janko had
6297 * Reinstated the raw_input/prefilter separation that Janko had
6294 initially. This gives a more convenient setup for extending the
6298 initially. This gives a more convenient setup for extending the
6295 pre-processor from the outside: raw_input always gets a string,
6299 pre-processor from the outside: raw_input always gets a string,
6296 and prefilter has to process it. We can then redefine prefilter
6300 and prefilter has to process it. We can then redefine prefilter
6297 from the outside and implement extensions for special
6301 from the outside and implement extensions for special
6298 purposes.
6302 purposes.
6299
6303
6300 Today I got one for inputting PhysicalQuantity objects
6304 Today I got one for inputting PhysicalQuantity objects
6301 (from Scientific) without needing any function calls at
6305 (from Scientific) without needing any function calls at
6302 all. Extremely convenient, and it's all done as a user-level
6306 all. Extremely convenient, and it's all done as a user-level
6303 extension (no IPython code was touched). Now instead of:
6307 extension (no IPython code was touched). Now instead of:
6304 a = PhysicalQuantity(4.2,'m/s**2')
6308 a = PhysicalQuantity(4.2,'m/s**2')
6305 one can simply say
6309 one can simply say
6306 a = 4.2 m/s**2
6310 a = 4.2 m/s**2
6307 or even
6311 or even
6308 a = 4.2 m/s^2
6312 a = 4.2 m/s^2
6309
6313
6310 I use this, but it's also a proof of concept: IPython really is
6314 I use this, but it's also a proof of concept: IPython really is
6311 fully user-extensible, even at the level of the parsing of the
6315 fully user-extensible, even at the level of the parsing of the
6312 command line. It's not trivial, but it's perfectly doable.
6316 command line. It's not trivial, but it's perfectly doable.
6313
6317
6314 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6318 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6315 the problem of modules being loaded in the inverse order in which
6319 the problem of modules being loaded in the inverse order in which
6316 they were defined in
6320 they were defined in
6317
6321
6318 * Version 0.1.8 released, 0.1.9 opened for further work.
6322 * Version 0.1.8 released, 0.1.9 opened for further work.
6319
6323
6320 * Added magics pdef, source and file. They respectively show the
6324 * Added magics pdef, source and file. They respectively show the
6321 definition line ('prototype' in C), source code and full python
6325 definition line ('prototype' in C), source code and full python
6322 file for any callable object. The object inspector oinfo uses
6326 file for any callable object. The object inspector oinfo uses
6323 these to show the same information.
6327 these to show the same information.
6324
6328
6325 * Version 0.1.7 released, 0.1.8 opened for further work.
6329 * Version 0.1.7 released, 0.1.8 opened for further work.
6326
6330
6327 * Separated all the magic functions into a class called Magic. The
6331 * Separated all the magic functions into a class called Magic. The
6328 InteractiveShell class was becoming too big for Xemacs to handle
6332 InteractiveShell class was becoming too big for Xemacs to handle
6329 (de-indenting a line would lock it up for 10 seconds while it
6333 (de-indenting a line would lock it up for 10 seconds while it
6330 backtracked on the whole class!)
6334 backtracked on the whole class!)
6331
6335
6332 FIXME: didn't work. It can be done, but right now namespaces are
6336 FIXME: didn't work. It can be done, but right now namespaces are
6333 all messed up. Do it later (reverted it for now, so at least
6337 all messed up. Do it later (reverted it for now, so at least
6334 everything works as before).
6338 everything works as before).
6335
6339
6336 * Got the object introspection system (magic_oinfo) working! I
6340 * Got the object introspection system (magic_oinfo) working! I
6337 think this is pretty much ready for release to Janko, so he can
6341 think this is pretty much ready for release to Janko, so he can
6338 test it for a while and then announce it. Pretty much 100% of what
6342 test it for a while and then announce it. Pretty much 100% of what
6339 I wanted for the 'phase 1' release is ready. Happy, tired.
6343 I wanted for the 'phase 1' release is ready. Happy, tired.
6340
6344
6341 2001-11-12 Fernando Perez <fperez@colorado.edu>
6345 2001-11-12 Fernando Perez <fperez@colorado.edu>
6342
6346
6343 * Version 0.1.6 released, 0.1.7 opened for further work.
6347 * Version 0.1.6 released, 0.1.7 opened for further work.
6344
6348
6345 * Fixed bug in printing: it used to test for truth before
6349 * Fixed bug in printing: it used to test for truth before
6346 printing, so 0 wouldn't print. Now checks for None.
6350 printing, so 0 wouldn't print. Now checks for None.
6347
6351
6348 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6352 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6349 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6353 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6350 reaches by hand into the outputcache. Think of a better way to do
6354 reaches by hand into the outputcache. Think of a better way to do
6351 this later.
6355 this later.
6352
6356
6353 * Various small fixes thanks to Nathan's comments.
6357 * Various small fixes thanks to Nathan's comments.
6354
6358
6355 * Changed magic_pprint to magic_Pprint. This way it doesn't
6359 * Changed magic_pprint to magic_Pprint. This way it doesn't
6356 collide with pprint() and the name is consistent with the command
6360 collide with pprint() and the name is consistent with the command
6357 line option.
6361 line option.
6358
6362
6359 * Changed prompt counter behavior to be fully like
6363 * Changed prompt counter behavior to be fully like
6360 Mathematica's. That is, even input that doesn't return a result
6364 Mathematica's. That is, even input that doesn't return a result
6361 raises the prompt counter. The old behavior was kind of confusing
6365 raises the prompt counter. The old behavior was kind of confusing
6362 (getting the same prompt number several times if the operation
6366 (getting the same prompt number several times if the operation
6363 didn't return a result).
6367 didn't return a result).
6364
6368
6365 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6369 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6366
6370
6367 * Fixed -Classic mode (wasn't working anymore).
6371 * Fixed -Classic mode (wasn't working anymore).
6368
6372
6369 * Added colored prompts using Nathan's new code. Colors are
6373 * Added colored prompts using Nathan's new code. Colors are
6370 currently hardwired, they can be user-configurable. For
6374 currently hardwired, they can be user-configurable. For
6371 developers, they can be chosen in file ipythonlib.py, at the
6375 developers, they can be chosen in file ipythonlib.py, at the
6372 beginning of the CachedOutput class def.
6376 beginning of the CachedOutput class def.
6373
6377
6374 2001-11-11 Fernando Perez <fperez@colorado.edu>
6378 2001-11-11 Fernando Perez <fperez@colorado.edu>
6375
6379
6376 * Version 0.1.5 released, 0.1.6 opened for further work.
6380 * Version 0.1.5 released, 0.1.6 opened for further work.
6377
6381
6378 * Changed magic_env to *return* the environment as a dict (not to
6382 * Changed magic_env to *return* the environment as a dict (not to
6379 print it). This way it prints, but it can also be processed.
6383 print it). This way it prints, but it can also be processed.
6380
6384
6381 * Added Verbose exception reporting to interactive
6385 * Added Verbose exception reporting to interactive
6382 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6386 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6383 traceback. Had to make some changes to the ultraTB file. This is
6387 traceback. Had to make some changes to the ultraTB file. This is
6384 probably the last 'big' thing in my mental todo list. This ties
6388 probably the last 'big' thing in my mental todo list. This ties
6385 in with the next entry:
6389 in with the next entry:
6386
6390
6387 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6391 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6388 has to specify is Plain, Color or Verbose for all exception
6392 has to specify is Plain, Color or Verbose for all exception
6389 handling.
6393 handling.
6390
6394
6391 * Removed ShellServices option. All this can really be done via
6395 * Removed ShellServices option. All this can really be done via
6392 the magic system. It's easier to extend, cleaner and has automatic
6396 the magic system. It's easier to extend, cleaner and has automatic
6393 namespace protection and documentation.
6397 namespace protection and documentation.
6394
6398
6395 2001-11-09 Fernando Perez <fperez@colorado.edu>
6399 2001-11-09 Fernando Perez <fperez@colorado.edu>
6396
6400
6397 * Fixed bug in output cache flushing (missing parameter to
6401 * Fixed bug in output cache flushing (missing parameter to
6398 __init__). Other small bugs fixed (found using pychecker).
6402 __init__). Other small bugs fixed (found using pychecker).
6399
6403
6400 * Version 0.1.4 opened for bugfixing.
6404 * Version 0.1.4 opened for bugfixing.
6401
6405
6402 2001-11-07 Fernando Perez <fperez@colorado.edu>
6406 2001-11-07 Fernando Perez <fperez@colorado.edu>
6403
6407
6404 * Version 0.1.3 released, mainly because of the raw_input bug.
6408 * Version 0.1.3 released, mainly because of the raw_input bug.
6405
6409
6406 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6410 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6407 and when testing for whether things were callable, a call could
6411 and when testing for whether things were callable, a call could
6408 actually be made to certain functions. They would get called again
6412 actually be made to certain functions. They would get called again
6409 once 'really' executed, with a resulting double call. A disaster
6413 once 'really' executed, with a resulting double call. A disaster
6410 in many cases (list.reverse() would never work!).
6414 in many cases (list.reverse() would never work!).
6411
6415
6412 * Removed prefilter() function, moved its code to raw_input (which
6416 * Removed prefilter() function, moved its code to raw_input (which
6413 after all was just a near-empty caller for prefilter). This saves
6417 after all was just a near-empty caller for prefilter). This saves
6414 a function call on every prompt, and simplifies the class a tiny bit.
6418 a function call on every prompt, and simplifies the class a tiny bit.
6415
6419
6416 * Fix _ip to __ip name in magic example file.
6420 * Fix _ip to __ip name in magic example file.
6417
6421
6418 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6422 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6419 work with non-gnu versions of tar.
6423 work with non-gnu versions of tar.
6420
6424
6421 2001-11-06 Fernando Perez <fperez@colorado.edu>
6425 2001-11-06 Fernando Perez <fperez@colorado.edu>
6422
6426
6423 * Version 0.1.2. Just to keep track of the recent changes.
6427 * Version 0.1.2. Just to keep track of the recent changes.
6424
6428
6425 * Fixed nasty bug in output prompt routine. It used to check 'if
6429 * Fixed nasty bug in output prompt routine. It used to check 'if
6426 arg != None...'. Problem is, this fails if arg implements a
6430 arg != None...'. Problem is, this fails if arg implements a
6427 special comparison (__cmp__) which disallows comparing to
6431 special comparison (__cmp__) which disallows comparing to
6428 None. Found it when trying to use the PhysicalQuantity module from
6432 None. Found it when trying to use the PhysicalQuantity module from
6429 ScientificPython.
6433 ScientificPython.
6430
6434
6431 2001-11-05 Fernando Perez <fperez@colorado.edu>
6435 2001-11-05 Fernando Perez <fperez@colorado.edu>
6432
6436
6433 * Also added dirs. Now the pushd/popd/dirs family functions
6437 * Also added dirs. Now the pushd/popd/dirs family functions
6434 basically like the shell, with the added convenience of going home
6438 basically like the shell, with the added convenience of going home
6435 when called with no args.
6439 when called with no args.
6436
6440
6437 * pushd/popd slightly modified to mimic shell behavior more
6441 * pushd/popd slightly modified to mimic shell behavior more
6438 closely.
6442 closely.
6439
6443
6440 * Added env,pushd,popd from ShellServices as magic functions. I
6444 * Added env,pushd,popd from ShellServices as magic functions. I
6441 think the cleanest will be to port all desired functions from
6445 think the cleanest will be to port all desired functions from
6442 ShellServices as magics and remove ShellServices altogether. This
6446 ShellServices as magics and remove ShellServices altogether. This
6443 will provide a single, clean way of adding functionality
6447 will provide a single, clean way of adding functionality
6444 (shell-type or otherwise) to IP.
6448 (shell-type or otherwise) to IP.
6445
6449
6446 2001-11-04 Fernando Perez <fperez@colorado.edu>
6450 2001-11-04 Fernando Perez <fperez@colorado.edu>
6447
6451
6448 * Added .ipython/ directory to sys.path. This way users can keep
6452 * Added .ipython/ directory to sys.path. This way users can keep
6449 customizations there and access them via import.
6453 customizations there and access them via import.
6450
6454
6451 2001-11-03 Fernando Perez <fperez@colorado.edu>
6455 2001-11-03 Fernando Perez <fperez@colorado.edu>
6452
6456
6453 * Opened version 0.1.1 for new changes.
6457 * Opened version 0.1.1 for new changes.
6454
6458
6455 * Changed version number to 0.1.0: first 'public' release, sent to
6459 * Changed version number to 0.1.0: first 'public' release, sent to
6456 Nathan and Janko.
6460 Nathan and Janko.
6457
6461
6458 * Lots of small fixes and tweaks.
6462 * Lots of small fixes and tweaks.
6459
6463
6460 * Minor changes to whos format. Now strings are shown, snipped if
6464 * Minor changes to whos format. Now strings are shown, snipped if
6461 too long.
6465 too long.
6462
6466
6463 * Changed ShellServices to work on __main__ so they show up in @who
6467 * Changed ShellServices to work on __main__ so they show up in @who
6464
6468
6465 * Help also works with ? at the end of a line:
6469 * Help also works with ? at the end of a line:
6466 ?sin and sin?
6470 ?sin and sin?
6467 both produce the same effect. This is nice, as often I use the
6471 both produce the same effect. This is nice, as often I use the
6468 tab-complete to find the name of a method, but I used to then have
6472 tab-complete to find the name of a method, but I used to then have
6469 to go to the beginning of the line to put a ? if I wanted more
6473 to go to the beginning of the line to put a ? if I wanted more
6470 info. Now I can just add the ? and hit return. Convenient.
6474 info. Now I can just add the ? and hit return. Convenient.
6471
6475
6472 2001-11-02 Fernando Perez <fperez@colorado.edu>
6476 2001-11-02 Fernando Perez <fperez@colorado.edu>
6473
6477
6474 * Python version check (>=2.1) added.
6478 * Python version check (>=2.1) added.
6475
6479
6476 * Added LazyPython documentation. At this point the docs are quite
6480 * Added LazyPython documentation. At this point the docs are quite
6477 a mess. A cleanup is in order.
6481 a mess. A cleanup is in order.
6478
6482
6479 * Auto-installer created. For some bizarre reason, the zipfiles
6483 * Auto-installer created. For some bizarre reason, the zipfiles
6480 module isn't working on my system. So I made a tar version
6484 module isn't working on my system. So I made a tar version
6481 (hopefully the command line options in various systems won't kill
6485 (hopefully the command line options in various systems won't kill
6482 me).
6486 me).
6483
6487
6484 * Fixes to Struct in genutils. Now all dictionary-like methods are
6488 * Fixes to Struct in genutils. Now all dictionary-like methods are
6485 protected (reasonably).
6489 protected (reasonably).
6486
6490
6487 * Added pager function to genutils and changed ? to print usage
6491 * Added pager function to genutils and changed ? to print usage
6488 note through it (it was too long).
6492 note through it (it was too long).
6489
6493
6490 * Added the LazyPython functionality. Works great! I changed the
6494 * Added the LazyPython functionality. Works great! I changed the
6491 auto-quote escape to ';', it's on home row and next to '. But
6495 auto-quote escape to ';', it's on home row and next to '. But
6492 both auto-quote and auto-paren (still /) escapes are command-line
6496 both auto-quote and auto-paren (still /) escapes are command-line
6493 parameters.
6497 parameters.
6494
6498
6495
6499
6496 2001-11-01 Fernando Perez <fperez@colorado.edu>
6500 2001-11-01 Fernando Perez <fperez@colorado.edu>
6497
6501
6498 * Version changed to 0.0.7. Fairly large change: configuration now
6502 * Version changed to 0.0.7. Fairly large change: configuration now
6499 is all stored in a directory, by default .ipython. There, all
6503 is all stored in a directory, by default .ipython. There, all
6500 config files have normal looking names (not .names)
6504 config files have normal looking names (not .names)
6501
6505
6502 * Version 0.0.6 Released first to Lucas and Archie as a test
6506 * Version 0.0.6 Released first to Lucas and Archie as a test
6503 run. Since it's the first 'semi-public' release, change version to
6507 run. Since it's the first 'semi-public' release, change version to
6504 > 0.0.6 for any changes now.
6508 > 0.0.6 for any changes now.
6505
6509
6506 * Stuff I had put in the ipplib.py changelog:
6510 * Stuff I had put in the ipplib.py changelog:
6507
6511
6508 Changes to InteractiveShell:
6512 Changes to InteractiveShell:
6509
6513
6510 - Made the usage message a parameter.
6514 - Made the usage message a parameter.
6511
6515
6512 - Require the name of the shell variable to be given. It's a bit
6516 - Require the name of the shell variable to be given. It's a bit
6513 of a hack, but allows the name 'shell' not to be hardwired in the
6517 of a hack, but allows the name 'shell' not to be hardwired in the
6514 magic (@) handler, which is problematic b/c it requires
6518 magic (@) handler, which is problematic b/c it requires
6515 polluting the global namespace with 'shell'. This in turn is
6519 polluting the global namespace with 'shell'. This in turn is
6516 fragile: if a user redefines a variable called shell, things
6520 fragile: if a user redefines a variable called shell, things
6517 break.
6521 break.
6518
6522
6519 - magic @: all functions available through @ need to be defined
6523 - magic @: all functions available through @ need to be defined
6520 as magic_<name>, even though they can be called simply as
6524 as magic_<name>, even though they can be called simply as
6521 @<name>. This allows the special command @magic to gather
6525 @<name>. This allows the special command @magic to gather
6522 information automatically about all existing magic functions,
6526 information automatically about all existing magic functions,
6523 even if they are run-time user extensions, by parsing the shell
6527 even if they are run-time user extensions, by parsing the shell
6524 instance __dict__ looking for special magic_ names.
6528 instance __dict__ looking for special magic_ names.
6525
6529
6526 - mainloop: added *two* local namespace parameters. This allows
6530 - mainloop: added *two* local namespace parameters. This allows
6527 the class to differentiate between parameters which were there
6531 the class to differentiate between parameters which were there
6528 before and after command line initialization was processed. This
6532 before and after command line initialization was processed. This
6529 way, later @who can show things loaded at startup by the
6533 way, later @who can show things loaded at startup by the
6530 user. This trick was necessary to make session saving/reloading
6534 user. This trick was necessary to make session saving/reloading
6531 really work: ideally after saving/exiting/reloading a session,
6535 really work: ideally after saving/exiting/reloading a session,
6532 *everything* should look the same, including the output of @who. I
6536 *everything* should look the same, including the output of @who. I
6533 was only able to make this work with this double namespace
6537 was only able to make this work with this double namespace
6534 trick.
6538 trick.
6535
6539
6536 - added a header to the logfile which allows (almost) full
6540 - added a header to the logfile which allows (almost) full
6537 session restoring.
6541 session restoring.
6538
6542
6539 - prepend lines beginning with @ or !, with a and log
6543 - prepend lines beginning with @ or !, with a and log
6540 them. Why? !lines: may be useful to know what you did @lines:
6544 them. Why? !lines: may be useful to know what you did @lines:
6541 they may affect session state. So when restoring a session, at
6545 they may affect session state. So when restoring a session, at
6542 least inform the user of their presence. I couldn't quite get
6546 least inform the user of their presence. I couldn't quite get
6543 them to properly re-execute, but at least the user is warned.
6547 them to properly re-execute, but at least the user is warned.
6544
6548
6545 * Started ChangeLog.
6549 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now