##// END OF EJS Templates
implemented ledit extension (line editor) that adds %led magic
vivainio -
Show More
@@ -0,0 +1,98 b''
1 """ Fun magic line editor for ipython
2
3 Use this to easily edit lists of strings gradually without crafting long
4 list comprehensions.
5
6 'l' is the magic variable name for every line (array element). Save the current
7 result (or more exactly, retrieve the last ipython computation result into
8 %led work area) by running '%led s'. Just run '%led' to show the current work
9 area data.
10
11 Example use:
12
13 [ipython]|25> setups = !ls *setup*.py
14 ==
15 ['eggsetup.py', 'setup.py', 'setup_bdist_egg.py']
16 [ipython]|26> setups
17 <26> ['eggsetup.py', 'setup.py', 'setup_bdist_egg.py']
18 [ipython]|27> %led s
19 Data set from last result (_)
20 <27> ['eggsetup.py', 'setup.py', 'setup_bdist_egg.py']
21 [ipython]|28> %led upper
22 cmd translated => l.upper()
23 <28> ['EGGSETUP.PY', 'SETUP.PY', 'SETUP_BDIST_EGG.PY']
24 [ipython]|29> %led
25 Magic line editor (for lists of strings)
26 current data is:
27 ['eggsetup.py', 'setup.py', 'setup_bdist_egg.py']
28 [ipython]|30> %led upper
29 cmd translated => l.upper()
30 <30> ['EGGSETUP.PY', 'SETUP.PY', 'SETUP_BDIST_EGG.PY']
31 [ipython]|31> %led s
32 Data set from last result (_)
33 <31> ['EGGSETUP.PY', 'SETUP.PY', 'SETUP_BDIST_EGG.PY']
34 [ipython]|32> %led "n:" + l
35 <32> ['n:EGGSETUP.PY', 'n:SETUP.PY', 'n:SETUP_BDIST_EGG.PY']
36 [ipython]|33> %led s
37 Data set from last result (_)
38 <33> ['n:EGGSETUP.PY', 'n:SETUP.PY', 'n:SETUP_BDIST_EGG.PY']
39 [ipython]|34> %led l.
40 l.__add__ l.__gt__ l.__reduce_ex__ l.endswith l.join l.rstrip
41 l.__class__ l.__hash__ l.__repr__ l.expandtabs l.ljust l.split
42
43 ... (completions for string variable shown ) ...
44
45 """
46 import IPython.ipapi
47 import pprint
48 ip = IPython.ipapi.get()
49
50 curdata = []
51
52 def line_edit_f(self, cmd ):
53 global curdata
54
55 if not cmd:
56
57 print "Magic line editor (for lists of strings)"
58 if curdata:
59 print "current data is:"
60 pprint.pprint(curdata)
61 else:
62 print "No current data, you should set it by running '%led s'"
63 print "When you have your data in _ (result of last computation)."
64 return
65
66 if cmd == 's':
67 curdata = ip.ev('_')
68 print "Data set from last result (_)"
69 newlines = curdata
70
71 else:
72 # simple method call, e.g. upper
73 if cmd.isalpha():
74 cmd = 'l.' + cmd + '()'
75 print "cmd translated =>",cmd
76
77 newlines = []
78 for l in curdata:
79 try:
80 l2 = eval(cmd)
81 except Exception,e:
82 print "Dropping exception",e,"on line:",l
83 continue
84 newlines.append(l2)
85
86
87 return newlines
88
89 def line_edit_complete_f(self,event):
90 """ Show all string methods in completions """
91 if event.symbol.startswith('l.'):
92 return ['l.' + func for func in dir('')]
93
94 return dir('') + ['l.' + func for func in dir('')]
95
96 ip.set_hook('complete_command', line_edit_complete_f , str_key = '%led')
97
98 ip.expose_magic('led', line_edit_f) No newline at end of file
@@ -1,5853 +1,5857 b''
1 2006-10-31 Ville Vainio <vivainio@gmail.com>
1 2006-10-31 Ville Vainio <vivainio@gmail.com>
2
2
3 * strdispatch.py, completer.py, ipy_stock_completers.py:
3 * strdispatch.py, completer.py, ipy_stock_completers.py:
4 Allow str_key ("command") in completer hooks. Implement
4 Allow str_key ("command") in completer hooks. Implement
5 trivial completer for 'import' (stdlib modules only). Rename
5 trivial completer for 'import' (stdlib modules only). Rename
6 ipy_linux_package_managers.py to ipy_stock_completers.py.
6 ipy_linux_package_managers.py to ipy_stock_completers.py.
7 SVN completer.
7 SVN completer.
8
9 * Extensions/ledit.py: %magic line editor for easily and
10 incrementally manipulating lists of strings. The magic command
11 name is %led.
8
12
9 2006-10-30 Ville Vainio <vivainio@gmail.com>
13 2006-10-30 Ville Vainio <vivainio@gmail.com>
10
14
11 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
15 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
12 Bernsteins's patches for pydb integration.
16 Bernsteins's patches for pydb integration.
13 http://bashdb.sourceforge.net/pydb/
17 http://bashdb.sourceforge.net/pydb/
14
18
15 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
19 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
16 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
20 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
17 custom completer hook to allow the users to implement their own
21 custom completer hook to allow the users to implement their own
18 completers. See ipy_linux_package_managers.py for example. The
22 completers. See ipy_linux_package_managers.py for example. The
19 hook name is 'complete_command'.
23 hook name is 'complete_command'.
20
24
21 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
25 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
22
26
23 * IPython/UserConfig/ipythonrc-scipy: minor clenaups to remove old
27 * IPython/UserConfig/ipythonrc-scipy: minor clenaups to remove old
24 Numeric leftovers.
28 Numeric leftovers.
25
29
26 * ipython.el (py-execute-region): apply Stefan's patch to fix
30 * ipython.el (py-execute-region): apply Stefan's patch to fix
27 garbled results if the python shell hasn't been previously started.
31 garbled results if the python shell hasn't been previously started.
28
32
29 * IPython/genutils.py (arg_split): moved to genutils, since it's a
33 * IPython/genutils.py (arg_split): moved to genutils, since it's a
30 pretty generic function and useful for other things.
34 pretty generic function and useful for other things.
31
35
32 * IPython/OInspect.py (getsource): Add customizable source
36 * IPython/OInspect.py (getsource): Add customizable source
33 extractor. After a request/patch form W. Stein (SAGE).
37 extractor. After a request/patch form W. Stein (SAGE).
34
38
35 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
39 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
36 window size to a more reasonable value from what pexpect does,
40 window size to a more reasonable value from what pexpect does,
37 since their choice causes wrapping bugs with long input lines.
41 since their choice causes wrapping bugs with long input lines.
38
42
39 2006-10-28 Ville Vainio <vivainio@gmail.com>
43 2006-10-28 Ville Vainio <vivainio@gmail.com>
40
44
41 * Magic.py (%run): Save and restore the readline history from
45 * Magic.py (%run): Save and restore the readline history from
42 file around %run commands to prevent side effects from
46 file around %run commands to prevent side effects from
43 %runned programs that might use readline (e.g. pydb).
47 %runned programs that might use readline (e.g. pydb).
44
48
45 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
49 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
46 invoking the pydb enhanced debugger.
50 invoking the pydb enhanced debugger.
47
51
48 2006-10-23 Walter Doerwald <walter@livinglogic.de>
52 2006-10-23 Walter Doerwald <walter@livinglogic.de>
49
53
50 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
54 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
51 call the base class method and propagate the return value to
55 call the base class method and propagate the return value to
52 ifile. This is now done by path itself.
56 ifile. This is now done by path itself.
53
57
54 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
58 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
55
59
56 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
60 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
57 api: set_crash_handler(), to expose the ability to change the
61 api: set_crash_handler(), to expose the ability to change the
58 internal crash handler.
62 internal crash handler.
59
63
60 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
64 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
61 the various parameters of the crash handler so that apps using
65 the various parameters of the crash handler so that apps using
62 IPython as their engine can customize crash handling. Ipmlemented
66 IPython as their engine can customize crash handling. Ipmlemented
63 at the request of SAGE.
67 at the request of SAGE.
64
68
65 2006-10-14 Ville Vainio <vivainio@gmail.com>
69 2006-10-14 Ville Vainio <vivainio@gmail.com>
66
70
67 * Magic.py, ipython.el: applied first "safe" part of Rocky
71 * Magic.py, ipython.el: applied first "safe" part of Rocky
68 Bernstein's patch set for pydb integration.
72 Bernstein's patch set for pydb integration.
69
73
70 * Magic.py (%unalias, %alias): %store'd aliases can now be
74 * Magic.py (%unalias, %alias): %store'd aliases can now be
71 removed with '%unalias'. %alias w/o args now shows most
75 removed with '%unalias'. %alias w/o args now shows most
72 interesting (stored / manually defined) aliases last
76 interesting (stored / manually defined) aliases last
73 where they catch the eye w/o scrolling.
77 where they catch the eye w/o scrolling.
74
78
75 * Magic.py (%rehashx), ext_rehashdir.py: files with
79 * Magic.py (%rehashx), ext_rehashdir.py: files with
76 'py' extension are always considered executable, even
80 'py' extension are always considered executable, even
77 when not in PATHEXT environment variable.
81 when not in PATHEXT environment variable.
78
82
79 2006-10-12 Ville Vainio <vivainio@gmail.com>
83 2006-10-12 Ville Vainio <vivainio@gmail.com>
80
84
81 * jobctrl.py: Add new "jobctrl" extension for spawning background
85 * jobctrl.py: Add new "jobctrl" extension for spawning background
82 processes with "&find /". 'import jobctrl' to try it out. Requires
86 processes with "&find /". 'import jobctrl' to try it out. Requires
83 'subprocess' module, standard in python 2.4+.
87 'subprocess' module, standard in python 2.4+.
84
88
85 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
89 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
86 so if foo -> bar and bar -> baz, then foo -> baz.
90 so if foo -> bar and bar -> baz, then foo -> baz.
87
91
88 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
92 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
89
93
90 * IPython/Magic.py (Magic.parse_options): add a new posix option
94 * IPython/Magic.py (Magic.parse_options): add a new posix option
91 to allow parsing of input args in magics that doesn't strip quotes
95 to allow parsing of input args in magics that doesn't strip quotes
92 (if posix=False). This also closes %timeit bug reported by
96 (if posix=False). This also closes %timeit bug reported by
93 Stefan.
97 Stefan.
94
98
95 2006-10-03 Ville Vainio <vivainio@gmail.com>
99 2006-10-03 Ville Vainio <vivainio@gmail.com>
96
100
97 * iplib.py (raw_input, interact): Return ValueError catching for
101 * iplib.py (raw_input, interact): Return ValueError catching for
98 raw_input. Fixes infinite loop for sys.stdin.close() or
102 raw_input. Fixes infinite loop for sys.stdin.close() or
99 sys.stdout.close().
103 sys.stdout.close().
100
104
101 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
105 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
102
106
103 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
107 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
104 to help in handling doctests. irunner is now pretty useful for
108 to help in handling doctests. irunner is now pretty useful for
105 running standalone scripts and simulate a full interactive session
109 running standalone scripts and simulate a full interactive session
106 in a format that can be then pasted as a doctest.
110 in a format that can be then pasted as a doctest.
107
111
108 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
112 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
109 on top of the default (useless) ones. This also fixes the nasty
113 on top of the default (useless) ones. This also fixes the nasty
110 way in which 2.5's Quitter() exits (reverted [1785]).
114 way in which 2.5's Quitter() exits (reverted [1785]).
111
115
112 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
116 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
113 2.5.
117 2.5.
114
118
115 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
119 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
116 color scheme is updated as well when color scheme is changed
120 color scheme is updated as well when color scheme is changed
117 interactively.
121 interactively.
118
122
119 2006-09-27 Ville Vainio <vivainio@gmail.com>
123 2006-09-27 Ville Vainio <vivainio@gmail.com>
120
124
121 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
125 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
122 infinite loop and just exit. It's a hack, but will do for a while.
126 infinite loop and just exit. It's a hack, but will do for a while.
123
127
124 2006-08-25 Walter Doerwald <walter@livinglogic.de>
128 2006-08-25 Walter Doerwald <walter@livinglogic.de>
125
129
126 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
130 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
127 the constructor, this makes it possible to get a list of only directories
131 the constructor, this makes it possible to get a list of only directories
128 or only files.
132 or only files.
129
133
130 2006-08-12 Ville Vainio <vivainio@gmail.com>
134 2006-08-12 Ville Vainio <vivainio@gmail.com>
131
135
132 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
136 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
133 they broke unittest
137 they broke unittest
134
138
135 2006-08-11 Ville Vainio <vivainio@gmail.com>
139 2006-08-11 Ville Vainio <vivainio@gmail.com>
136
140
137 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
141 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
138 by resolving issue properly, i.e. by inheriting FakeModule
142 by resolving issue properly, i.e. by inheriting FakeModule
139 from types.ModuleType. Pickling ipython interactive data
143 from types.ModuleType. Pickling ipython interactive data
140 should still work as usual (testing appreciated).
144 should still work as usual (testing appreciated).
141
145
142 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
146 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
143
147
144 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
148 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
145 running under python 2.3 with code from 2.4 to fix a bug with
149 running under python 2.3 with code from 2.4 to fix a bug with
146 help(). Reported by the Debian maintainers, Norbert Tretkowski
150 help(). Reported by the Debian maintainers, Norbert Tretkowski
147 <norbert-AT-tretkowski.de> and Alexandre Fayolle
151 <norbert-AT-tretkowski.de> and Alexandre Fayolle
148 <afayolle-AT-debian.org>.
152 <afayolle-AT-debian.org>.
149
153
150 2006-08-04 Walter Doerwald <walter@livinglogic.de>
154 2006-08-04 Walter Doerwald <walter@livinglogic.de>
151
155
152 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
156 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
153 (which was displaying "quit" twice).
157 (which was displaying "quit" twice).
154
158
155 2006-07-28 Walter Doerwald <walter@livinglogic.de>
159 2006-07-28 Walter Doerwald <walter@livinglogic.de>
156
160
157 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
161 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
158 the mode argument).
162 the mode argument).
159
163
160 2006-07-27 Walter Doerwald <walter@livinglogic.de>
164 2006-07-27 Walter Doerwald <walter@livinglogic.de>
161
165
162 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
166 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
163 not running under IPython.
167 not running under IPython.
164
168
165 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
169 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
166 and make it iterable (iterating over the attribute itself). Add two new
170 and make it iterable (iterating over the attribute itself). Add two new
167 magic strings for __xattrs__(): If the string starts with "-", the attribute
171 magic strings for __xattrs__(): If the string starts with "-", the attribute
168 will not be displayed in ibrowse's detail view (but it can still be
172 will not be displayed in ibrowse's detail view (but it can still be
169 iterated over). This makes it possible to add attributes that are large
173 iterated over). This makes it possible to add attributes that are large
170 lists or generator methods to the detail view. Replace magic attribute names
174 lists or generator methods to the detail view. Replace magic attribute names
171 and _attrname() and _getattr() with "descriptors": For each type of magic
175 and _attrname() and _getattr() with "descriptors": For each type of magic
172 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
176 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
173 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
177 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
174 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
178 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
175 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
179 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
176 are still supported.
180 are still supported.
177
181
178 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
182 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
179 fails in ibrowse.fetch(), the exception object is added as the last item
183 fails in ibrowse.fetch(), the exception object is added as the last item
180 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
184 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
181 a generator throws an exception midway through execution.
185 a generator throws an exception midway through execution.
182
186
183 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
187 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
184 encoding into methods.
188 encoding into methods.
185
189
186 2006-07-26 Ville Vainio <vivainio@gmail.com>
190 2006-07-26 Ville Vainio <vivainio@gmail.com>
187
191
188 * iplib.py: history now stores multiline input as single
192 * iplib.py: history now stores multiline input as single
189 history entries. Patch by Jorgen Cederlof.
193 history entries. Patch by Jorgen Cederlof.
190
194
191 2006-07-18 Walter Doerwald <walter@livinglogic.de>
195 2006-07-18 Walter Doerwald <walter@livinglogic.de>
192
196
193 * IPython/Extensions/ibrowse.py: Make cursor visible over
197 * IPython/Extensions/ibrowse.py: Make cursor visible over
194 non existing attributes.
198 non existing attributes.
195
199
196 2006-07-14 Walter Doerwald <walter@livinglogic.de>
200 2006-07-14 Walter Doerwald <walter@livinglogic.de>
197
201
198 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
202 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
199 error output of the running command doesn't mess up the screen.
203 error output of the running command doesn't mess up the screen.
200
204
201 2006-07-13 Walter Doerwald <walter@livinglogic.de>
205 2006-07-13 Walter Doerwald <walter@livinglogic.de>
202
206
203 * IPython/Extensions/ipipe.py (isort): Make isort usable without
207 * IPython/Extensions/ipipe.py (isort): Make isort usable without
204 argument. This sorts the items themselves.
208 argument. This sorts the items themselves.
205
209
206 2006-07-12 Walter Doerwald <walter@livinglogic.de>
210 2006-07-12 Walter Doerwald <walter@livinglogic.de>
207
211
208 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
212 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
209 Compile expression strings into code objects. This should speed
213 Compile expression strings into code objects. This should speed
210 up ifilter and friends somewhat.
214 up ifilter and friends somewhat.
211
215
212 2006-07-08 Ville Vainio <vivainio@gmail.com>
216 2006-07-08 Ville Vainio <vivainio@gmail.com>
213
217
214 * Magic.py: %cpaste now strips > from the beginning of lines
218 * Magic.py: %cpaste now strips > from the beginning of lines
215 to ease pasting quoted code from emails. Contributed by
219 to ease pasting quoted code from emails. Contributed by
216 Stefan van der Walt.
220 Stefan van der Walt.
217
221
218 2006-06-29 Ville Vainio <vivainio@gmail.com>
222 2006-06-29 Ville Vainio <vivainio@gmail.com>
219
223
220 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
224 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
221 mode, patch contributed by Darren Dale. NEEDS TESTING!
225 mode, patch contributed by Darren Dale. NEEDS TESTING!
222
226
223 2006-06-28 Walter Doerwald <walter@livinglogic.de>
227 2006-06-28 Walter Doerwald <walter@livinglogic.de>
224
228
225 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
229 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
226 a blue background. Fix fetching new display rows when the browser
230 a blue background. Fix fetching new display rows when the browser
227 scrolls more than a screenful (e.g. by using the goto command).
231 scrolls more than a screenful (e.g. by using the goto command).
228
232
229 2006-06-27 Ville Vainio <vivainio@gmail.com>
233 2006-06-27 Ville Vainio <vivainio@gmail.com>
230
234
231 * Magic.py (_inspect, _ofind) Apply David Huard's
235 * Magic.py (_inspect, _ofind) Apply David Huard's
232 patch for displaying the correct docstring for 'property'
236 patch for displaying the correct docstring for 'property'
233 attributes.
237 attributes.
234
238
235 2006-06-23 Walter Doerwald <walter@livinglogic.de>
239 2006-06-23 Walter Doerwald <walter@livinglogic.de>
236
240
237 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
241 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
238 commands into the methods implementing them.
242 commands into the methods implementing them.
239
243
240 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
244 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
241
245
242 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
246 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
243 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
247 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
244 autoindent support was authored by Jin Liu.
248 autoindent support was authored by Jin Liu.
245
249
246 2006-06-22 Walter Doerwald <walter@livinglogic.de>
250 2006-06-22 Walter Doerwald <walter@livinglogic.de>
247
251
248 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
252 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
249 for keymaps with a custom class that simplifies handling.
253 for keymaps with a custom class that simplifies handling.
250
254
251 2006-06-19 Walter Doerwald <walter@livinglogic.de>
255 2006-06-19 Walter Doerwald <walter@livinglogic.de>
252
256
253 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
257 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
254 resizing. This requires Python 2.5 to work.
258 resizing. This requires Python 2.5 to work.
255
259
256 2006-06-16 Walter Doerwald <walter@livinglogic.de>
260 2006-06-16 Walter Doerwald <walter@livinglogic.de>
257
261
258 * IPython/Extensions/ibrowse.py: Add two new commands to
262 * IPython/Extensions/ibrowse.py: Add two new commands to
259 ibrowse: "hideattr" (mapped to "h") hides the attribute under
263 ibrowse: "hideattr" (mapped to "h") hides the attribute under
260 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
264 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
261 attributes again. Remapped the help command to "?". Display
265 attributes again. Remapped the help command to "?". Display
262 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
266 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
263 as keys for the "home" and "end" commands. Add three new commands
267 as keys for the "home" and "end" commands. Add three new commands
264 to the input mode for "find" and friends: "delend" (CTRL-K)
268 to the input mode for "find" and friends: "delend" (CTRL-K)
265 deletes to the end of line. "incsearchup" searches upwards in the
269 deletes to the end of line. "incsearchup" searches upwards in the
266 command history for an input that starts with the text before the cursor.
270 command history for an input that starts with the text before the cursor.
267 "incsearchdown" does the same downwards. Removed a bogus mapping of
271 "incsearchdown" does the same downwards. Removed a bogus mapping of
268 the x key to "delete".
272 the x key to "delete".
269
273
270 2006-06-15 Ville Vainio <vivainio@gmail.com>
274 2006-06-15 Ville Vainio <vivainio@gmail.com>
271
275
272 * iplib.py, hooks.py: Added new generate_prompt hook that can be
276 * iplib.py, hooks.py: Added new generate_prompt hook that can be
273 used to create prompts dynamically, instead of the "old" way of
277 used to create prompts dynamically, instead of the "old" way of
274 assigning "magic" strings to prompt_in1 and prompt_in2. The old
278 assigning "magic" strings to prompt_in1 and prompt_in2. The old
275 way still works (it's invoked by the default hook), of course.
279 way still works (it's invoked by the default hook), of course.
276
280
277 * Prompts.py: added generate_output_prompt hook for altering output
281 * Prompts.py: added generate_output_prompt hook for altering output
278 prompt
282 prompt
279
283
280 * Release.py: Changed version string to 0.7.3.svn.
284 * Release.py: Changed version string to 0.7.3.svn.
281
285
282 2006-06-15 Walter Doerwald <walter@livinglogic.de>
286 2006-06-15 Walter Doerwald <walter@livinglogic.de>
283
287
284 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
288 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
285 the call to fetch() always tries to fetch enough data for at least one
289 the call to fetch() always tries to fetch enough data for at least one
286 full screen. This makes it possible to simply call moveto(0,0,True) in
290 full screen. This makes it possible to simply call moveto(0,0,True) in
287 the constructor. Fix typos and removed the obsolete goto attribute.
291 the constructor. Fix typos and removed the obsolete goto attribute.
288
292
289 2006-06-12 Ville Vainio <vivainio@gmail.com>
293 2006-06-12 Ville Vainio <vivainio@gmail.com>
290
294
291 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
295 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
292 allowing $variable interpolation within multiline statements,
296 allowing $variable interpolation within multiline statements,
293 though so far only with "sh" profile for a testing period.
297 though so far only with "sh" profile for a testing period.
294 The patch also enables splitting long commands with \ but it
298 The patch also enables splitting long commands with \ but it
295 doesn't work properly yet.
299 doesn't work properly yet.
296
300
297 2006-06-12 Walter Doerwald <walter@livinglogic.de>
301 2006-06-12 Walter Doerwald <walter@livinglogic.de>
298
302
299 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
303 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
300 input history and the position of the cursor in the input history for
304 input history and the position of the cursor in the input history for
301 the find, findbackwards and goto command.
305 the find, findbackwards and goto command.
302
306
303 2006-06-10 Walter Doerwald <walter@livinglogic.de>
307 2006-06-10 Walter Doerwald <walter@livinglogic.de>
304
308
305 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
309 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
306 implements the basic functionality of browser commands that require
310 implements the basic functionality of browser commands that require
307 input. Reimplement the goto, find and findbackwards commands as
311 input. Reimplement the goto, find and findbackwards commands as
308 subclasses of _CommandInput. Add an input history and keymaps to those
312 subclasses of _CommandInput. Add an input history and keymaps to those
309 commands. Add "\r" as a keyboard shortcut for the enterdefault and
313 commands. Add "\r" as a keyboard shortcut for the enterdefault and
310 execute commands.
314 execute commands.
311
315
312 2006-06-07 Ville Vainio <vivainio@gmail.com>
316 2006-06-07 Ville Vainio <vivainio@gmail.com>
313
317
314 * iplib.py: ipython mybatch.ipy exits ipython immediately after
318 * iplib.py: ipython mybatch.ipy exits ipython immediately after
315 running the batch files instead of leaving the session open.
319 running the batch files instead of leaving the session open.
316
320
317 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
321 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
318
322
319 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
323 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
320 the original fix was incomplete. Patch submitted by W. Maier.
324 the original fix was incomplete. Patch submitted by W. Maier.
321
325
322 2006-06-07 Ville Vainio <vivainio@gmail.com>
326 2006-06-07 Ville Vainio <vivainio@gmail.com>
323
327
324 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
328 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
325 Confirmation prompts can be supressed by 'quiet' option.
329 Confirmation prompts can be supressed by 'quiet' option.
326 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
330 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
327
331
328 2006-06-06 *** Released version 0.7.2
332 2006-06-06 *** Released version 0.7.2
329
333
330 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
334 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
331
335
332 * IPython/Release.py (version): Made 0.7.2 final for release.
336 * IPython/Release.py (version): Made 0.7.2 final for release.
333 Repo tagged and release cut.
337 Repo tagged and release cut.
334
338
335 2006-06-05 Ville Vainio <vivainio@gmail.com>
339 2006-06-05 Ville Vainio <vivainio@gmail.com>
336
340
337 * Magic.py (magic_rehashx): Honor no_alias list earlier in
341 * Magic.py (magic_rehashx): Honor no_alias list earlier in
338 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
342 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
339
343
340 * upgrade_dir.py: try import 'path' module a bit harder
344 * upgrade_dir.py: try import 'path' module a bit harder
341 (for %upgrade)
345 (for %upgrade)
342
346
343 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
347 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
344
348
345 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
349 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
346 instead of looping 20 times.
350 instead of looping 20 times.
347
351
348 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
352 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
349 correctly at initialization time. Bug reported by Krishna Mohan
353 correctly at initialization time. Bug reported by Krishna Mohan
350 Gundu <gkmohan-AT-gmail.com> on the user list.
354 Gundu <gkmohan-AT-gmail.com> on the user list.
351
355
352 * IPython/Release.py (version): Mark 0.7.2 version to start
356 * IPython/Release.py (version): Mark 0.7.2 version to start
353 testing for release on 06/06.
357 testing for release on 06/06.
354
358
355 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
359 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
356
360
357 * scripts/irunner: thin script interface so users don't have to
361 * scripts/irunner: thin script interface so users don't have to
358 find the module and call it as an executable, since modules rarely
362 find the module and call it as an executable, since modules rarely
359 live in people's PATH.
363 live in people's PATH.
360
364
361 * IPython/irunner.py (InteractiveRunner.__init__): added
365 * IPython/irunner.py (InteractiveRunner.__init__): added
362 delaybeforesend attribute to control delays with newer versions of
366 delaybeforesend attribute to control delays with newer versions of
363 pexpect. Thanks to detailed help from pexpect's author, Noah
367 pexpect. Thanks to detailed help from pexpect's author, Noah
364 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
368 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
365 correctly (it works in NoColor mode).
369 correctly (it works in NoColor mode).
366
370
367 * IPython/iplib.py (handle_normal): fix nasty crash reported on
371 * IPython/iplib.py (handle_normal): fix nasty crash reported on
368 SAGE list, from improper log() calls.
372 SAGE list, from improper log() calls.
369
373
370 2006-05-31 Ville Vainio <vivainio@gmail.com>
374 2006-05-31 Ville Vainio <vivainio@gmail.com>
371
375
372 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
376 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
373 with args in parens to work correctly with dirs that have spaces.
377 with args in parens to work correctly with dirs that have spaces.
374
378
375 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
379 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
376
380
377 * IPython/Logger.py (Logger.logstart): add option to log raw input
381 * IPython/Logger.py (Logger.logstart): add option to log raw input
378 instead of the processed one. A -r flag was added to the
382 instead of the processed one. A -r flag was added to the
379 %logstart magic used for controlling logging.
383 %logstart magic used for controlling logging.
380
384
381 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
385 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
382
386
383 * IPython/iplib.py (InteractiveShell.__init__): add check for the
387 * IPython/iplib.py (InteractiveShell.__init__): add check for the
384 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
388 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
385 recognize the option. After a bug report by Will Maier. This
389 recognize the option. After a bug report by Will Maier. This
386 closes #64 (will do it after confirmation from W. Maier).
390 closes #64 (will do it after confirmation from W. Maier).
387
391
388 * IPython/irunner.py: New module to run scripts as if manually
392 * IPython/irunner.py: New module to run scripts as if manually
389 typed into an interactive environment, based on pexpect. After a
393 typed into an interactive environment, based on pexpect. After a
390 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
394 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
391 ipython-user list. Simple unittests in the tests/ directory.
395 ipython-user list. Simple unittests in the tests/ directory.
392
396
393 * tools/release: add Will Maier, OpenBSD port maintainer, to
397 * tools/release: add Will Maier, OpenBSD port maintainer, to
394 recepients list. We are now officially part of the OpenBSD ports:
398 recepients list. We are now officially part of the OpenBSD ports:
395 http://www.openbsd.org/ports.html ! Many thanks to Will for the
399 http://www.openbsd.org/ports.html ! Many thanks to Will for the
396 work.
400 work.
397
401
398 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
402 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
399
403
400 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
404 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
401 so that it doesn't break tkinter apps.
405 so that it doesn't break tkinter apps.
402
406
403 * IPython/iplib.py (_prefilter): fix bug where aliases would
407 * IPython/iplib.py (_prefilter): fix bug where aliases would
404 shadow variables when autocall was fully off. Reported by SAGE
408 shadow variables when autocall was fully off. Reported by SAGE
405 author William Stein.
409 author William Stein.
406
410
407 * IPython/OInspect.py (Inspector.__init__): add a flag to control
411 * IPython/OInspect.py (Inspector.__init__): add a flag to control
408 at what detail level strings are computed when foo? is requested.
412 at what detail level strings are computed when foo? is requested.
409 This allows users to ask for example that the string form of an
413 This allows users to ask for example that the string form of an
410 object is only computed when foo?? is called, or even never, by
414 object is only computed when foo?? is called, or even never, by
411 setting the object_info_string_level >= 2 in the configuration
415 setting the object_info_string_level >= 2 in the configuration
412 file. This new option has been added and documented. After a
416 file. This new option has been added and documented. After a
413 request by SAGE to be able to control the printing of very large
417 request by SAGE to be able to control the printing of very large
414 objects more easily.
418 objects more easily.
415
419
416 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
420 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
417
421
418 * IPython/ipmaker.py (make_IPython): remove the ipython call path
422 * IPython/ipmaker.py (make_IPython): remove the ipython call path
419 from sys.argv, to be 100% consistent with how Python itself works
423 from sys.argv, to be 100% consistent with how Python itself works
420 (as seen for example with python -i file.py). After a bug report
424 (as seen for example with python -i file.py). After a bug report
421 by Jeffrey Collins.
425 by Jeffrey Collins.
422
426
423 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
427 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
424 nasty bug which was preventing custom namespaces with -pylab,
428 nasty bug which was preventing custom namespaces with -pylab,
425 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
429 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
426 compatibility (long gone from mpl).
430 compatibility (long gone from mpl).
427
431
428 * IPython/ipapi.py (make_session): name change: create->make. We
432 * IPython/ipapi.py (make_session): name change: create->make. We
429 use make in other places (ipmaker,...), it's shorter and easier to
433 use make in other places (ipmaker,...), it's shorter and easier to
430 type and say, etc. I'm trying to clean things before 0.7.2 so
434 type and say, etc. I'm trying to clean things before 0.7.2 so
431 that I can keep things stable wrt to ipapi in the chainsaw branch.
435 that I can keep things stable wrt to ipapi in the chainsaw branch.
432
436
433 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
437 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
434 python-mode recognizes our debugger mode. Add support for
438 python-mode recognizes our debugger mode. Add support for
435 autoindent inside (X)emacs. After a patch sent in by Jin Liu
439 autoindent inside (X)emacs. After a patch sent in by Jin Liu
436 <m.liu.jin-AT-gmail.com> originally written by
440 <m.liu.jin-AT-gmail.com> originally written by
437 doxgen-AT-newsmth.net (with minor modifications for xemacs
441 doxgen-AT-newsmth.net (with minor modifications for xemacs
438 compatibility)
442 compatibility)
439
443
440 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
444 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
441 tracebacks when walking the stack so that the stack tracking system
445 tracebacks when walking the stack so that the stack tracking system
442 in emacs' python-mode can identify the frames correctly.
446 in emacs' python-mode can identify the frames correctly.
443
447
444 * IPython/ipmaker.py (make_IPython): make the internal (and
448 * IPython/ipmaker.py (make_IPython): make the internal (and
445 default config) autoedit_syntax value false by default. Too many
449 default config) autoedit_syntax value false by default. Too many
446 users have complained to me (both on and off-list) about problems
450 users have complained to me (both on and off-list) about problems
447 with this option being on by default, so I'm making it default to
451 with this option being on by default, so I'm making it default to
448 off. It can still be enabled by anyone via the usual mechanisms.
452 off. It can still be enabled by anyone via the usual mechanisms.
449
453
450 * IPython/completer.py (Completer.attr_matches): add support for
454 * IPython/completer.py (Completer.attr_matches): add support for
451 PyCrust-style _getAttributeNames magic method. Patch contributed
455 PyCrust-style _getAttributeNames magic method. Patch contributed
452 by <mscott-AT-goldenspud.com>. Closes #50.
456 by <mscott-AT-goldenspud.com>. Closes #50.
453
457
454 * IPython/iplib.py (InteractiveShell.__init__): remove the
458 * IPython/iplib.py (InteractiveShell.__init__): remove the
455 deletion of exit/quit from __builtin__, which can break
459 deletion of exit/quit from __builtin__, which can break
456 third-party tools like the Zope debugging console. The
460 third-party tools like the Zope debugging console. The
457 %exit/%quit magics remain. In general, it's probably a good idea
461 %exit/%quit magics remain. In general, it's probably a good idea
458 not to delete anything from __builtin__, since we never know what
462 not to delete anything from __builtin__, since we never know what
459 that will break. In any case, python now (for 2.5) will support
463 that will break. In any case, python now (for 2.5) will support
460 'real' exit/quit, so this issue is moot. Closes #55.
464 'real' exit/quit, so this issue is moot. Closes #55.
461
465
462 * IPython/genutils.py (with_obj): rename the 'with' function to
466 * IPython/genutils.py (with_obj): rename the 'with' function to
463 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
467 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
464 becomes a language keyword. Closes #53.
468 becomes a language keyword. Closes #53.
465
469
466 * IPython/FakeModule.py (FakeModule.__init__): add a proper
470 * IPython/FakeModule.py (FakeModule.__init__): add a proper
467 __file__ attribute to this so it fools more things into thinking
471 __file__ attribute to this so it fools more things into thinking
468 it is a real module. Closes #59.
472 it is a real module. Closes #59.
469
473
470 * IPython/Magic.py (magic_edit): add -n option to open the editor
474 * IPython/Magic.py (magic_edit): add -n option to open the editor
471 at a specific line number. After a patch by Stefan van der Walt.
475 at a specific line number. After a patch by Stefan van der Walt.
472
476
473 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
477 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
474
478
475 * IPython/iplib.py (edit_syntax_error): fix crash when for some
479 * IPython/iplib.py (edit_syntax_error): fix crash when for some
476 reason the file could not be opened. After automatic crash
480 reason the file could not be opened. After automatic crash
477 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
481 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
478 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
482 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
479 (_should_recompile): Don't fire editor if using %bg, since there
483 (_should_recompile): Don't fire editor if using %bg, since there
480 is no file in the first place. From the same report as above.
484 is no file in the first place. From the same report as above.
481 (raw_input): protect against faulty third-party prefilters. After
485 (raw_input): protect against faulty third-party prefilters. After
482 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
486 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
483 while running under SAGE.
487 while running under SAGE.
484
488
485 2006-05-23 Ville Vainio <vivainio@gmail.com>
489 2006-05-23 Ville Vainio <vivainio@gmail.com>
486
490
487 * ipapi.py: Stripped down ip.to_user_ns() to work only as
491 * ipapi.py: Stripped down ip.to_user_ns() to work only as
488 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
492 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
489 now returns None (again), unless dummy is specifically allowed by
493 now returns None (again), unless dummy is specifically allowed by
490 ipapi.get(allow_dummy=True).
494 ipapi.get(allow_dummy=True).
491
495
492 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
496 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
493
497
494 * IPython: remove all 2.2-compatibility objects and hacks from
498 * IPython: remove all 2.2-compatibility objects and hacks from
495 everywhere, since we only support 2.3 at this point. Docs
499 everywhere, since we only support 2.3 at this point. Docs
496 updated.
500 updated.
497
501
498 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
502 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
499 Anything requiring extra validation can be turned into a Python
503 Anything requiring extra validation can be turned into a Python
500 property in the future. I used a property for the db one b/c
504 property in the future. I used a property for the db one b/c
501 there was a nasty circularity problem with the initialization
505 there was a nasty circularity problem with the initialization
502 order, which right now I don't have time to clean up.
506 order, which right now I don't have time to clean up.
503
507
504 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
508 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
505 another locking bug reported by Jorgen. I'm not 100% sure though,
509 another locking bug reported by Jorgen. I'm not 100% sure though,
506 so more testing is needed...
510 so more testing is needed...
507
511
508 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
512 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
509
513
510 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
514 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
511 local variables from any routine in user code (typically executed
515 local variables from any routine in user code (typically executed
512 with %run) directly into the interactive namespace. Very useful
516 with %run) directly into the interactive namespace. Very useful
513 when doing complex debugging.
517 when doing complex debugging.
514 (IPythonNotRunning): Changed the default None object to a dummy
518 (IPythonNotRunning): Changed the default None object to a dummy
515 whose attributes can be queried as well as called without
519 whose attributes can be queried as well as called without
516 exploding, to ease writing code which works transparently both in
520 exploding, to ease writing code which works transparently both in
517 and out of ipython and uses some of this API.
521 and out of ipython and uses some of this API.
518
522
519 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
523 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
520
524
521 * IPython/hooks.py (result_display): Fix the fact that our display
525 * IPython/hooks.py (result_display): Fix the fact that our display
522 hook was using str() instead of repr(), as the default python
526 hook was using str() instead of repr(), as the default python
523 console does. This had gone unnoticed b/c it only happened if
527 console does. This had gone unnoticed b/c it only happened if
524 %Pprint was off, but the inconsistency was there.
528 %Pprint was off, but the inconsistency was there.
525
529
526 2006-05-15 Ville Vainio <vivainio@gmail.com>
530 2006-05-15 Ville Vainio <vivainio@gmail.com>
527
531
528 * Oinspect.py: Only show docstring for nonexisting/binary files
532 * Oinspect.py: Only show docstring for nonexisting/binary files
529 when doing object??, closing ticket #62
533 when doing object??, closing ticket #62
530
534
531 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
535 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
532
536
533 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
537 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
534 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
538 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
535 was being released in a routine which hadn't checked if it had
539 was being released in a routine which hadn't checked if it had
536 been the one to acquire it.
540 been the one to acquire it.
537
541
538 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
542 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
539
543
540 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
544 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
541
545
542 2006-04-11 Ville Vainio <vivainio@gmail.com>
546 2006-04-11 Ville Vainio <vivainio@gmail.com>
543
547
544 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
548 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
545 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
549 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
546 prefilters, allowing stuff like magics and aliases in the file.
550 prefilters, allowing stuff like magics and aliases in the file.
547
551
548 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
552 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
549 added. Supported now are "%clear in" and "%clear out" (clear input and
553 added. Supported now are "%clear in" and "%clear out" (clear input and
550 output history, respectively). Also fixed CachedOutput.flush to
554 output history, respectively). Also fixed CachedOutput.flush to
551 properly flush the output cache.
555 properly flush the output cache.
552
556
553 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
557 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
554 half-success (and fail explicitly).
558 half-success (and fail explicitly).
555
559
556 2006-03-28 Ville Vainio <vivainio@gmail.com>
560 2006-03-28 Ville Vainio <vivainio@gmail.com>
557
561
558 * iplib.py: Fix quoting of aliases so that only argless ones
562 * iplib.py: Fix quoting of aliases so that only argless ones
559 are quoted
563 are quoted
560
564
561 2006-03-28 Ville Vainio <vivainio@gmail.com>
565 2006-03-28 Ville Vainio <vivainio@gmail.com>
562
566
563 * iplib.py: Quote aliases with spaces in the name.
567 * iplib.py: Quote aliases with spaces in the name.
564 "c:\program files\blah\bin" is now legal alias target.
568 "c:\program files\blah\bin" is now legal alias target.
565
569
566 * ext_rehashdir.py: Space no longer allowed as arg
570 * ext_rehashdir.py: Space no longer allowed as arg
567 separator, since space is legal in path names.
571 separator, since space is legal in path names.
568
572
569 2006-03-16 Ville Vainio <vivainio@gmail.com>
573 2006-03-16 Ville Vainio <vivainio@gmail.com>
570
574
571 * upgrade_dir.py: Take path.py from Extensions, correcting
575 * upgrade_dir.py: Take path.py from Extensions, correcting
572 %upgrade magic
576 %upgrade magic
573
577
574 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
578 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
575
579
576 * hooks.py: Only enclose editor binary in quotes if legal and
580 * hooks.py: Only enclose editor binary in quotes if legal and
577 necessary (space in the name, and is an existing file). Fixes a bug
581 necessary (space in the name, and is an existing file). Fixes a bug
578 reported by Zachary Pincus.
582 reported by Zachary Pincus.
579
583
580 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
584 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
581
585
582 * Manual: thanks to a tip on proper color handling for Emacs, by
586 * Manual: thanks to a tip on proper color handling for Emacs, by
583 Eric J Haywiser <ejh1-AT-MIT.EDU>.
587 Eric J Haywiser <ejh1-AT-MIT.EDU>.
584
588
585 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
589 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
586 by applying the provided patch. Thanks to Liu Jin
590 by applying the provided patch. Thanks to Liu Jin
587 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
591 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
588 XEmacs/Linux, I'm trusting the submitter that it actually helps
592 XEmacs/Linux, I'm trusting the submitter that it actually helps
589 under win32/GNU Emacs. Will revisit if any problems are reported.
593 under win32/GNU Emacs. Will revisit if any problems are reported.
590
594
591 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
595 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
592
596
593 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
597 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
594 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
598 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
595
599
596 2006-03-12 Ville Vainio <vivainio@gmail.com>
600 2006-03-12 Ville Vainio <vivainio@gmail.com>
597
601
598 * Magic.py (magic_timeit): Added %timeit magic, contributed by
602 * Magic.py (magic_timeit): Added %timeit magic, contributed by
599 Torsten Marek.
603 Torsten Marek.
600
604
601 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
605 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
602
606
603 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
607 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
604 line ranges works again.
608 line ranges works again.
605
609
606 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
610 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
607
611
608 * IPython/iplib.py (showtraceback): add back sys.last_traceback
612 * IPython/iplib.py (showtraceback): add back sys.last_traceback
609 and friends, after a discussion with Zach Pincus on ipython-user.
613 and friends, after a discussion with Zach Pincus on ipython-user.
610 I'm not 100% sure, but after thinking about it quite a bit, it may
614 I'm not 100% sure, but after thinking about it quite a bit, it may
611 be OK. Testing with the multithreaded shells didn't reveal any
615 be OK. Testing with the multithreaded shells didn't reveal any
612 problems, but let's keep an eye out.
616 problems, but let's keep an eye out.
613
617
614 In the process, I fixed a few things which were calling
618 In the process, I fixed a few things which were calling
615 self.InteractiveTB() directly (like safe_execfile), which is a
619 self.InteractiveTB() directly (like safe_execfile), which is a
616 mistake: ALL exception reporting should be done by calling
620 mistake: ALL exception reporting should be done by calling
617 self.showtraceback(), which handles state and tab-completion and
621 self.showtraceback(), which handles state and tab-completion and
618 more.
622 more.
619
623
620 2006-03-01 Ville Vainio <vivainio@gmail.com>
624 2006-03-01 Ville Vainio <vivainio@gmail.com>
621
625
622 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
626 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
623 To use, do "from ipipe import *".
627 To use, do "from ipipe import *".
624
628
625 2006-02-24 Ville Vainio <vivainio@gmail.com>
629 2006-02-24 Ville Vainio <vivainio@gmail.com>
626
630
627 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
631 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
628 "cleanly" and safely than the older upgrade mechanism.
632 "cleanly" and safely than the older upgrade mechanism.
629
633
630 2006-02-21 Ville Vainio <vivainio@gmail.com>
634 2006-02-21 Ville Vainio <vivainio@gmail.com>
631
635
632 * Magic.py: %save works again.
636 * Magic.py: %save works again.
633
637
634 2006-02-15 Ville Vainio <vivainio@gmail.com>
638 2006-02-15 Ville Vainio <vivainio@gmail.com>
635
639
636 * Magic.py: %Pprint works again
640 * Magic.py: %Pprint works again
637
641
638 * Extensions/ipy_sane_defaults.py: Provide everything provided
642 * Extensions/ipy_sane_defaults.py: Provide everything provided
639 in default ipythonrc, to make it possible to have a completely empty
643 in default ipythonrc, to make it possible to have a completely empty
640 ipythonrc (and thus completely rc-file free configuration)
644 ipythonrc (and thus completely rc-file free configuration)
641
645
642 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
646 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
643
647
644 * IPython/hooks.py (editor): quote the call to the editor command,
648 * IPython/hooks.py (editor): quote the call to the editor command,
645 to allow commands with spaces in them. Problem noted by watching
649 to allow commands with spaces in them. Problem noted by watching
646 Ian Oswald's video about textpad under win32 at
650 Ian Oswald's video about textpad under win32 at
647 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
651 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
648
652
649 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
653 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
650 describing magics (we haven't used @ for a loong time).
654 describing magics (we haven't used @ for a loong time).
651
655
652 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
656 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
653 contributed by marienz to close
657 contributed by marienz to close
654 http://www.scipy.net/roundup/ipython/issue53.
658 http://www.scipy.net/roundup/ipython/issue53.
655
659
656 2006-02-10 Ville Vainio <vivainio@gmail.com>
660 2006-02-10 Ville Vainio <vivainio@gmail.com>
657
661
658 * genutils.py: getoutput now works in win32 too
662 * genutils.py: getoutput now works in win32 too
659
663
660 * completer.py: alias and magic completion only invoked
664 * completer.py: alias and magic completion only invoked
661 at the first "item" in the line, to avoid "cd %store"
665 at the first "item" in the line, to avoid "cd %store"
662 nonsense.
666 nonsense.
663
667
664 2006-02-09 Ville Vainio <vivainio@gmail.com>
668 2006-02-09 Ville Vainio <vivainio@gmail.com>
665
669
666 * test/*: Added a unit testing framework (finally).
670 * test/*: Added a unit testing framework (finally).
667 '%run runtests.py' to run test_*.
671 '%run runtests.py' to run test_*.
668
672
669 * ipapi.py: Exposed runlines and set_custom_exc
673 * ipapi.py: Exposed runlines and set_custom_exc
670
674
671 2006-02-07 Ville Vainio <vivainio@gmail.com>
675 2006-02-07 Ville Vainio <vivainio@gmail.com>
672
676
673 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
677 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
674 instead use "f(1 2)" as before.
678 instead use "f(1 2)" as before.
675
679
676 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
680 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
677
681
678 * IPython/demo.py (IPythonDemo): Add new classes to the demo
682 * IPython/demo.py (IPythonDemo): Add new classes to the demo
679 facilities, for demos processed by the IPython input filter
683 facilities, for demos processed by the IPython input filter
680 (IPythonDemo), and for running a script one-line-at-a-time as a
684 (IPythonDemo), and for running a script one-line-at-a-time as a
681 demo, both for pure Python (LineDemo) and for IPython-processed
685 demo, both for pure Python (LineDemo) and for IPython-processed
682 input (IPythonLineDemo). After a request by Dave Kohel, from the
686 input (IPythonLineDemo). After a request by Dave Kohel, from the
683 SAGE team.
687 SAGE team.
684 (Demo.edit): added an edit() method to the demo objects, to edit
688 (Demo.edit): added an edit() method to the demo objects, to edit
685 the in-memory copy of the last executed block.
689 the in-memory copy of the last executed block.
686
690
687 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
691 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
688 processing to %edit, %macro and %save. These commands can now be
692 processing to %edit, %macro and %save. These commands can now be
689 invoked on the unprocessed input as it was typed by the user
693 invoked on the unprocessed input as it was typed by the user
690 (without any prefilters applied). After requests by the SAGE team
694 (without any prefilters applied). After requests by the SAGE team
691 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
695 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
692
696
693 2006-02-01 Ville Vainio <vivainio@gmail.com>
697 2006-02-01 Ville Vainio <vivainio@gmail.com>
694
698
695 * setup.py, eggsetup.py: easy_install ipython==dev works
699 * setup.py, eggsetup.py: easy_install ipython==dev works
696 correctly now (on Linux)
700 correctly now (on Linux)
697
701
698 * ipy_user_conf,ipmaker: user config changes, removed spurious
702 * ipy_user_conf,ipmaker: user config changes, removed spurious
699 warnings
703 warnings
700
704
701 * iplib: if rc.banner is string, use it as is.
705 * iplib: if rc.banner is string, use it as is.
702
706
703 * Magic: %pycat accepts a string argument and pages it's contents.
707 * Magic: %pycat accepts a string argument and pages it's contents.
704
708
705
709
706 2006-01-30 Ville Vainio <vivainio@gmail.com>
710 2006-01-30 Ville Vainio <vivainio@gmail.com>
707
711
708 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
712 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
709 Now %store and bookmarks work through PickleShare, meaning that
713 Now %store and bookmarks work through PickleShare, meaning that
710 concurrent access is possible and all ipython sessions see the
714 concurrent access is possible and all ipython sessions see the
711 same database situation all the time, instead of snapshot of
715 same database situation all the time, instead of snapshot of
712 the situation when the session was started. Hence, %bookmark
716 the situation when the session was started. Hence, %bookmark
713 results are immediately accessible from othes sessions. The database
717 results are immediately accessible from othes sessions. The database
714 is also available for use by user extensions. See:
718 is also available for use by user extensions. See:
715 http://www.python.org/pypi/pickleshare
719 http://www.python.org/pypi/pickleshare
716
720
717 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
721 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
718
722
719 * aliases can now be %store'd
723 * aliases can now be %store'd
720
724
721 * path.py moved to Extensions so that pickleshare does not need
725 * path.py moved to Extensions so that pickleshare does not need
722 IPython-specific import. Extensions added to pythonpath right
726 IPython-specific import. Extensions added to pythonpath right
723 at __init__.
727 at __init__.
724
728
725 * iplib.py: ipalias deprecated/redundant; aliases are converted and
729 * iplib.py: ipalias deprecated/redundant; aliases are converted and
726 called with _ip.system and the pre-transformed command string.
730 called with _ip.system and the pre-transformed command string.
727
731
728 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
732 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
729
733
730 * IPython/iplib.py (interact): Fix that we were not catching
734 * IPython/iplib.py (interact): Fix that we were not catching
731 KeyboardInterrupt exceptions properly. I'm not quite sure why the
735 KeyboardInterrupt exceptions properly. I'm not quite sure why the
732 logic here had to change, but it's fixed now.
736 logic here had to change, but it's fixed now.
733
737
734 2006-01-29 Ville Vainio <vivainio@gmail.com>
738 2006-01-29 Ville Vainio <vivainio@gmail.com>
735
739
736 * iplib.py: Try to import pyreadline on Windows.
740 * iplib.py: Try to import pyreadline on Windows.
737
741
738 2006-01-27 Ville Vainio <vivainio@gmail.com>
742 2006-01-27 Ville Vainio <vivainio@gmail.com>
739
743
740 * iplib.py: Expose ipapi as _ip in builtin namespace.
744 * iplib.py: Expose ipapi as _ip in builtin namespace.
741 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
745 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
742 and ip_set_hook (-> _ip.set_hook) redundant. % and !
746 and ip_set_hook (-> _ip.set_hook) redundant. % and !
743 syntax now produce _ip.* variant of the commands.
747 syntax now produce _ip.* variant of the commands.
744
748
745 * "_ip.options().autoedit_syntax = 2" automatically throws
749 * "_ip.options().autoedit_syntax = 2" automatically throws
746 user to editor for syntax error correction without prompting.
750 user to editor for syntax error correction without prompting.
747
751
748 2006-01-27 Ville Vainio <vivainio@gmail.com>
752 2006-01-27 Ville Vainio <vivainio@gmail.com>
749
753
750 * ipmaker.py: Give "realistic" sys.argv for scripts (without
754 * ipmaker.py: Give "realistic" sys.argv for scripts (without
751 'ipython' at argv[0]) executed through command line.
755 'ipython' at argv[0]) executed through command line.
752 NOTE: this DEPRECATES calling ipython with multiple scripts
756 NOTE: this DEPRECATES calling ipython with multiple scripts
753 ("ipython a.py b.py c.py")
757 ("ipython a.py b.py c.py")
754
758
755 * iplib.py, hooks.py: Added configurable input prefilter,
759 * iplib.py, hooks.py: Added configurable input prefilter,
756 named 'input_prefilter'. See ext_rescapture.py for example
760 named 'input_prefilter'. See ext_rescapture.py for example
757 usage.
761 usage.
758
762
759 * ext_rescapture.py, Magic.py: Better system command output capture
763 * ext_rescapture.py, Magic.py: Better system command output capture
760 through 'var = !ls' (deprecates user-visible %sc). Same notation
764 through 'var = !ls' (deprecates user-visible %sc). Same notation
761 applies for magics, 'var = %alias' assigns alias list to var.
765 applies for magics, 'var = %alias' assigns alias list to var.
762
766
763 * ipapi.py: added meta() for accessing extension-usable data store.
767 * ipapi.py: added meta() for accessing extension-usable data store.
764
768
765 * iplib.py: added InteractiveShell.getapi(). New magics should be
769 * iplib.py: added InteractiveShell.getapi(). New magics should be
766 written doing self.getapi() instead of using the shell directly.
770 written doing self.getapi() instead of using the shell directly.
767
771
768 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
772 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
769 %store foo >> ~/myfoo.txt to store variables to files (in clean
773 %store foo >> ~/myfoo.txt to store variables to files (in clean
770 textual form, not a restorable pickle).
774 textual form, not a restorable pickle).
771
775
772 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
776 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
773
777
774 * usage.py, Magic.py: added %quickref
778 * usage.py, Magic.py: added %quickref
775
779
776 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
780 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
777
781
778 * GetoptErrors when invoking magics etc. with wrong args
782 * GetoptErrors when invoking magics etc. with wrong args
779 are now more helpful:
783 are now more helpful:
780 GetoptError: option -l not recognized (allowed: "qb" )
784 GetoptError: option -l not recognized (allowed: "qb" )
781
785
782 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
786 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
783
787
784 * IPython/demo.py (Demo.show): Flush stdout after each block, so
788 * IPython/demo.py (Demo.show): Flush stdout after each block, so
785 computationally intensive blocks don't appear to stall the demo.
789 computationally intensive blocks don't appear to stall the demo.
786
790
787 2006-01-24 Ville Vainio <vivainio@gmail.com>
791 2006-01-24 Ville Vainio <vivainio@gmail.com>
788
792
789 * iplib.py, hooks.py: 'result_display' hook can return a non-None
793 * iplib.py, hooks.py: 'result_display' hook can return a non-None
790 value to manipulate resulting history entry.
794 value to manipulate resulting history entry.
791
795
792 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
796 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
793 to instance methods of IPApi class, to make extending an embedded
797 to instance methods of IPApi class, to make extending an embedded
794 IPython feasible. See ext_rehashdir.py for example usage.
798 IPython feasible. See ext_rehashdir.py for example usage.
795
799
796 * Merged 1071-1076 from branches/0.7.1
800 * Merged 1071-1076 from branches/0.7.1
797
801
798
802
799 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
803 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
800
804
801 * tools/release (daystamp): Fix build tools to use the new
805 * tools/release (daystamp): Fix build tools to use the new
802 eggsetup.py script to build lightweight eggs.
806 eggsetup.py script to build lightweight eggs.
803
807
804 * Applied changesets 1062 and 1064 before 0.7.1 release.
808 * Applied changesets 1062 and 1064 before 0.7.1 release.
805
809
806 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
810 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
807 see the raw input history (without conversions like %ls ->
811 see the raw input history (without conversions like %ls ->
808 ipmagic("ls")). After a request from W. Stein, SAGE
812 ipmagic("ls")). After a request from W. Stein, SAGE
809 (http://modular.ucsd.edu/sage) developer. This information is
813 (http://modular.ucsd.edu/sage) developer. This information is
810 stored in the input_hist_raw attribute of the IPython instance, so
814 stored in the input_hist_raw attribute of the IPython instance, so
811 developers can access it if needed (it's an InputList instance).
815 developers can access it if needed (it's an InputList instance).
812
816
813 * Versionstring = 0.7.2.svn
817 * Versionstring = 0.7.2.svn
814
818
815 * eggsetup.py: A separate script for constructing eggs, creates
819 * eggsetup.py: A separate script for constructing eggs, creates
816 proper launch scripts even on Windows (an .exe file in
820 proper launch scripts even on Windows (an .exe file in
817 \python24\scripts).
821 \python24\scripts).
818
822
819 * ipapi.py: launch_new_instance, launch entry point needed for the
823 * ipapi.py: launch_new_instance, launch entry point needed for the
820 egg.
824 egg.
821
825
822 2006-01-23 Ville Vainio <vivainio@gmail.com>
826 2006-01-23 Ville Vainio <vivainio@gmail.com>
823
827
824 * Added %cpaste magic for pasting python code
828 * Added %cpaste magic for pasting python code
825
829
826 2006-01-22 Ville Vainio <vivainio@gmail.com>
830 2006-01-22 Ville Vainio <vivainio@gmail.com>
827
831
828 * Merge from branches/0.7.1 into trunk, revs 1052-1057
832 * Merge from branches/0.7.1 into trunk, revs 1052-1057
829
833
830 * Versionstring = 0.7.2.svn
834 * Versionstring = 0.7.2.svn
831
835
832 * eggsetup.py: A separate script for constructing eggs, creates
836 * eggsetup.py: A separate script for constructing eggs, creates
833 proper launch scripts even on Windows (an .exe file in
837 proper launch scripts even on Windows (an .exe file in
834 \python24\scripts).
838 \python24\scripts).
835
839
836 * ipapi.py: launch_new_instance, launch entry point needed for the
840 * ipapi.py: launch_new_instance, launch entry point needed for the
837 egg.
841 egg.
838
842
839 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
843 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
840
844
841 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
845 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
842 %pfile foo would print the file for foo even if it was a binary.
846 %pfile foo would print the file for foo even if it was a binary.
843 Now, extensions '.so' and '.dll' are skipped.
847 Now, extensions '.so' and '.dll' are skipped.
844
848
845 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
849 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
846 bug, where macros would fail in all threaded modes. I'm not 100%
850 bug, where macros would fail in all threaded modes. I'm not 100%
847 sure, so I'm going to put out an rc instead of making a release
851 sure, so I'm going to put out an rc instead of making a release
848 today, and wait for feedback for at least a few days.
852 today, and wait for feedback for at least a few days.
849
853
850 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
854 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
851 it...) the handling of pasting external code with autoindent on.
855 it...) the handling of pasting external code with autoindent on.
852 To get out of a multiline input, the rule will appear for most
856 To get out of a multiline input, the rule will appear for most
853 users unchanged: two blank lines or change the indent level
857 users unchanged: two blank lines or change the indent level
854 proposed by IPython. But there is a twist now: you can
858 proposed by IPython. But there is a twist now: you can
855 add/subtract only *one or two spaces*. If you add/subtract three
859 add/subtract only *one or two spaces*. If you add/subtract three
856 or more (unless you completely delete the line), IPython will
860 or more (unless you completely delete the line), IPython will
857 accept that line, and you'll need to enter a second one of pure
861 accept that line, and you'll need to enter a second one of pure
858 whitespace. I know it sounds complicated, but I can't find a
862 whitespace. I know it sounds complicated, but I can't find a
859 different solution that covers all the cases, with the right
863 different solution that covers all the cases, with the right
860 heuristics. Hopefully in actual use, nobody will really notice
864 heuristics. Hopefully in actual use, nobody will really notice
861 all these strange rules and things will 'just work'.
865 all these strange rules and things will 'just work'.
862
866
863 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
867 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
864
868
865 * IPython/iplib.py (interact): catch exceptions which can be
869 * IPython/iplib.py (interact): catch exceptions which can be
866 triggered asynchronously by signal handlers. Thanks to an
870 triggered asynchronously by signal handlers. Thanks to an
867 automatic crash report, submitted by Colin Kingsley
871 automatic crash report, submitted by Colin Kingsley
868 <tercel-AT-gentoo.org>.
872 <tercel-AT-gentoo.org>.
869
873
870 2006-01-20 Ville Vainio <vivainio@gmail.com>
874 2006-01-20 Ville Vainio <vivainio@gmail.com>
871
875
872 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
876 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
873 (%rehashdir, very useful, try it out) of how to extend ipython
877 (%rehashdir, very useful, try it out) of how to extend ipython
874 with new magics. Also added Extensions dir to pythonpath to make
878 with new magics. Also added Extensions dir to pythonpath to make
875 importing extensions easy.
879 importing extensions easy.
876
880
877 * %store now complains when trying to store interactively declared
881 * %store now complains when trying to store interactively declared
878 classes / instances of those classes.
882 classes / instances of those classes.
879
883
880 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
884 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
881 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
885 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
882 if they exist, and ipy_user_conf.py with some defaults is created for
886 if they exist, and ipy_user_conf.py with some defaults is created for
883 the user.
887 the user.
884
888
885 * Startup rehashing done by the config file, not InterpreterExec.
889 * Startup rehashing done by the config file, not InterpreterExec.
886 This means system commands are available even without selecting the
890 This means system commands are available even without selecting the
887 pysh profile. It's the sensible default after all.
891 pysh profile. It's the sensible default after all.
888
892
889 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
893 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
890
894
891 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
895 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
892 multiline code with autoindent on working. But I am really not
896 multiline code with autoindent on working. But I am really not
893 sure, so this needs more testing. Will commit a debug-enabled
897 sure, so this needs more testing. Will commit a debug-enabled
894 version for now, while I test it some more, so that Ville and
898 version for now, while I test it some more, so that Ville and
895 others may also catch any problems. Also made
899 others may also catch any problems. Also made
896 self.indent_current_str() a method, to ensure that there's no
900 self.indent_current_str() a method, to ensure that there's no
897 chance of the indent space count and the corresponding string
901 chance of the indent space count and the corresponding string
898 falling out of sync. All code needing the string should just call
902 falling out of sync. All code needing the string should just call
899 the method.
903 the method.
900
904
901 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
905 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
902
906
903 * IPython/Magic.py (magic_edit): fix check for when users don't
907 * IPython/Magic.py (magic_edit): fix check for when users don't
904 save their output files, the try/except was in the wrong section.
908 save their output files, the try/except was in the wrong section.
905
909
906 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
910 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
907
911
908 * IPython/Magic.py (magic_run): fix __file__ global missing from
912 * IPython/Magic.py (magic_run): fix __file__ global missing from
909 script's namespace when executed via %run. After a report by
913 script's namespace when executed via %run. After a report by
910 Vivian.
914 Vivian.
911
915
912 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
916 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
913 when using python 2.4. The parent constructor changed in 2.4, and
917 when using python 2.4. The parent constructor changed in 2.4, and
914 we need to track it directly (we can't call it, as it messes up
918 we need to track it directly (we can't call it, as it messes up
915 readline and tab-completion inside our pdb would stop working).
919 readline and tab-completion inside our pdb would stop working).
916 After a bug report by R. Bernstein <rocky-AT-panix.com>.
920 After a bug report by R. Bernstein <rocky-AT-panix.com>.
917
921
918 2006-01-16 Ville Vainio <vivainio@gmail.com>
922 2006-01-16 Ville Vainio <vivainio@gmail.com>
919
923
920 * Ipython/magic.py: Reverted back to old %edit functionality
924 * Ipython/magic.py: Reverted back to old %edit functionality
921 that returns file contents on exit.
925 that returns file contents on exit.
922
926
923 * IPython/path.py: Added Jason Orendorff's "path" module to
927 * IPython/path.py: Added Jason Orendorff's "path" module to
924 IPython tree, http://www.jorendorff.com/articles/python/path/.
928 IPython tree, http://www.jorendorff.com/articles/python/path/.
925 You can get path objects conveniently through %sc, and !!, e.g.:
929 You can get path objects conveniently through %sc, and !!, e.g.:
926 sc files=ls
930 sc files=ls
927 for p in files.paths: # or files.p
931 for p in files.paths: # or files.p
928 print p,p.mtime
932 print p,p.mtime
929
933
930 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
934 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
931 now work again without considering the exclusion regexp -
935 now work again without considering the exclusion regexp -
932 hence, things like ',foo my/path' turn to 'foo("my/path")'
936 hence, things like ',foo my/path' turn to 'foo("my/path")'
933 instead of syntax error.
937 instead of syntax error.
934
938
935
939
936 2006-01-14 Ville Vainio <vivainio@gmail.com>
940 2006-01-14 Ville Vainio <vivainio@gmail.com>
937
941
938 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
942 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
939 ipapi decorators for python 2.4 users, options() provides access to rc
943 ipapi decorators for python 2.4 users, options() provides access to rc
940 data.
944 data.
941
945
942 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
946 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
943 as path separators (even on Linux ;-). Space character after
947 as path separators (even on Linux ;-). Space character after
944 backslash (as yielded by tab completer) is still space;
948 backslash (as yielded by tab completer) is still space;
945 "%cd long\ name" works as expected.
949 "%cd long\ name" works as expected.
946
950
947 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
951 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
948 as "chain of command", with priority. API stays the same,
952 as "chain of command", with priority. API stays the same,
949 TryNext exception raised by a hook function signals that
953 TryNext exception raised by a hook function signals that
950 current hook failed and next hook should try handling it, as
954 current hook failed and next hook should try handling it, as
951 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
955 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
952 requested configurable display hook, which is now implemented.
956 requested configurable display hook, which is now implemented.
953
957
954 2006-01-13 Ville Vainio <vivainio@gmail.com>
958 2006-01-13 Ville Vainio <vivainio@gmail.com>
955
959
956 * IPython/platutils*.py: platform specific utility functions,
960 * IPython/platutils*.py: platform specific utility functions,
957 so far only set_term_title is implemented (change terminal
961 so far only set_term_title is implemented (change terminal
958 label in windowing systems). %cd now changes the title to
962 label in windowing systems). %cd now changes the title to
959 current dir.
963 current dir.
960
964
961 * IPython/Release.py: Added myself to "authors" list,
965 * IPython/Release.py: Added myself to "authors" list,
962 had to create new files.
966 had to create new files.
963
967
964 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
968 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
965 shell escape; not a known bug but had potential to be one in the
969 shell escape; not a known bug but had potential to be one in the
966 future.
970 future.
967
971
968 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
972 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
969 extension API for IPython! See the module for usage example. Fix
973 extension API for IPython! See the module for usage example. Fix
970 OInspect for docstring-less magic functions.
974 OInspect for docstring-less magic functions.
971
975
972
976
973 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
977 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
974
978
975 * IPython/iplib.py (raw_input): temporarily deactivate all
979 * IPython/iplib.py (raw_input): temporarily deactivate all
976 attempts at allowing pasting of code with autoindent on. It
980 attempts at allowing pasting of code with autoindent on. It
977 introduced bugs (reported by Prabhu) and I can't seem to find a
981 introduced bugs (reported by Prabhu) and I can't seem to find a
978 robust combination which works in all cases. Will have to revisit
982 robust combination which works in all cases. Will have to revisit
979 later.
983 later.
980
984
981 * IPython/genutils.py: remove isspace() function. We've dropped
985 * IPython/genutils.py: remove isspace() function. We've dropped
982 2.2 compatibility, so it's OK to use the string method.
986 2.2 compatibility, so it's OK to use the string method.
983
987
984 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
988 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
985
989
986 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
990 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
987 matching what NOT to autocall on, to include all python binary
991 matching what NOT to autocall on, to include all python binary
988 operators (including things like 'and', 'or', 'is' and 'in').
992 operators (including things like 'and', 'or', 'is' and 'in').
989 Prompted by a bug report on 'foo & bar', but I realized we had
993 Prompted by a bug report on 'foo & bar', but I realized we had
990 many more potential bug cases with other operators. The regexp is
994 many more potential bug cases with other operators. The regexp is
991 self.re_exclude_auto, it's fairly commented.
995 self.re_exclude_auto, it's fairly commented.
992
996
993 2006-01-12 Ville Vainio <vivainio@gmail.com>
997 2006-01-12 Ville Vainio <vivainio@gmail.com>
994
998
995 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
999 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
996 Prettified and hardened string/backslash quoting with ipsystem(),
1000 Prettified and hardened string/backslash quoting with ipsystem(),
997 ipalias() and ipmagic(). Now even \ characters are passed to
1001 ipalias() and ipmagic(). Now even \ characters are passed to
998 %magics, !shell escapes and aliases exactly as they are in the
1002 %magics, !shell escapes and aliases exactly as they are in the
999 ipython command line. Should improve backslash experience,
1003 ipython command line. Should improve backslash experience,
1000 particularly in Windows (path delimiter for some commands that
1004 particularly in Windows (path delimiter for some commands that
1001 won't understand '/'), but Unix benefits as well (regexps). %cd
1005 won't understand '/'), but Unix benefits as well (regexps). %cd
1002 magic still doesn't support backslash path delimiters, though. Also
1006 magic still doesn't support backslash path delimiters, though. Also
1003 deleted all pretense of supporting multiline command strings in
1007 deleted all pretense of supporting multiline command strings in
1004 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1008 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1005
1009
1006 * doc/build_doc_instructions.txt added. Documentation on how to
1010 * doc/build_doc_instructions.txt added. Documentation on how to
1007 use doc/update_manual.py, added yesterday. Both files contributed
1011 use doc/update_manual.py, added yesterday. Both files contributed
1008 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1012 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1009 doc/*.sh for deprecation at a later date.
1013 doc/*.sh for deprecation at a later date.
1010
1014
1011 * /ipython.py Added ipython.py to root directory for
1015 * /ipython.py Added ipython.py to root directory for
1012 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1016 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1013 ipython.py) and development convenience (no need to keep doing
1017 ipython.py) and development convenience (no need to keep doing
1014 "setup.py install" between changes).
1018 "setup.py install" between changes).
1015
1019
1016 * Made ! and !! shell escapes work (again) in multiline expressions:
1020 * Made ! and !! shell escapes work (again) in multiline expressions:
1017 if 1:
1021 if 1:
1018 !ls
1022 !ls
1019 !!ls
1023 !!ls
1020
1024
1021 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1025 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1022
1026
1023 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1027 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1024 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1028 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1025 module in case-insensitive installation. Was causing crashes
1029 module in case-insensitive installation. Was causing crashes
1026 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1030 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1027
1031
1028 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1032 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1029 <marienz-AT-gentoo.org>, closes
1033 <marienz-AT-gentoo.org>, closes
1030 http://www.scipy.net/roundup/ipython/issue51.
1034 http://www.scipy.net/roundup/ipython/issue51.
1031
1035
1032 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1036 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1033
1037
1034 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1038 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1035 problem of excessive CPU usage under *nix and keyboard lag under
1039 problem of excessive CPU usage under *nix and keyboard lag under
1036 win32.
1040 win32.
1037
1041
1038 2006-01-10 *** Released version 0.7.0
1042 2006-01-10 *** Released version 0.7.0
1039
1043
1040 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1044 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1041
1045
1042 * IPython/Release.py (revision): tag version number to 0.7.0,
1046 * IPython/Release.py (revision): tag version number to 0.7.0,
1043 ready for release.
1047 ready for release.
1044
1048
1045 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1049 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1046 it informs the user of the name of the temp. file used. This can
1050 it informs the user of the name of the temp. file used. This can
1047 help if you decide later to reuse that same file, so you know
1051 help if you decide later to reuse that same file, so you know
1048 where to copy the info from.
1052 where to copy the info from.
1049
1053
1050 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1054 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1051
1055
1052 * setup_bdist_egg.py: little script to build an egg. Added
1056 * setup_bdist_egg.py: little script to build an egg. Added
1053 support in the release tools as well.
1057 support in the release tools as well.
1054
1058
1055 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1059 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1056
1060
1057 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1061 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1058 version selection (new -wxversion command line and ipythonrc
1062 version selection (new -wxversion command line and ipythonrc
1059 parameter). Patch contributed by Arnd Baecker
1063 parameter). Patch contributed by Arnd Baecker
1060 <arnd.baecker-AT-web.de>.
1064 <arnd.baecker-AT-web.de>.
1061
1065
1062 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1066 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1063 embedded instances, for variables defined at the interactive
1067 embedded instances, for variables defined at the interactive
1064 prompt of the embedded ipython. Reported by Arnd.
1068 prompt of the embedded ipython. Reported by Arnd.
1065
1069
1066 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1070 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1067 it can be used as a (stateful) toggle, or with a direct parameter.
1071 it can be used as a (stateful) toggle, or with a direct parameter.
1068
1072
1069 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1073 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1070 could be triggered in certain cases and cause the traceback
1074 could be triggered in certain cases and cause the traceback
1071 printer not to work.
1075 printer not to work.
1072
1076
1073 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1077 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1074
1078
1075 * IPython/iplib.py (_should_recompile): Small fix, closes
1079 * IPython/iplib.py (_should_recompile): Small fix, closes
1076 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1080 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1077
1081
1078 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1082 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1079
1083
1080 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1084 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1081 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1085 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1082 Moad for help with tracking it down.
1086 Moad for help with tracking it down.
1083
1087
1084 * IPython/iplib.py (handle_auto): fix autocall handling for
1088 * IPython/iplib.py (handle_auto): fix autocall handling for
1085 objects which support BOTH __getitem__ and __call__ (so that f [x]
1089 objects which support BOTH __getitem__ and __call__ (so that f [x]
1086 is left alone, instead of becoming f([x]) automatically).
1090 is left alone, instead of becoming f([x]) automatically).
1087
1091
1088 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1092 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1089 Ville's patch.
1093 Ville's patch.
1090
1094
1091 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1096
1093 * IPython/iplib.py (handle_auto): changed autocall semantics to
1097 * IPython/iplib.py (handle_auto): changed autocall semantics to
1094 include 'smart' mode, where the autocall transformation is NOT
1098 include 'smart' mode, where the autocall transformation is NOT
1095 applied if there are no arguments on the line. This allows you to
1099 applied if there are no arguments on the line. This allows you to
1096 just type 'foo' if foo is a callable to see its internal form,
1100 just type 'foo' if foo is a callable to see its internal form,
1097 instead of having it called with no arguments (typically a
1101 instead of having it called with no arguments (typically a
1098 mistake). The old 'full' autocall still exists: for that, you
1102 mistake). The old 'full' autocall still exists: for that, you
1099 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1103 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1100
1104
1101 * IPython/completer.py (Completer.attr_matches): add
1105 * IPython/completer.py (Completer.attr_matches): add
1102 tab-completion support for Enthoughts' traits. After a report by
1106 tab-completion support for Enthoughts' traits. After a report by
1103 Arnd and a patch by Prabhu.
1107 Arnd and a patch by Prabhu.
1104
1108
1105 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1109 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1106
1110
1107 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1111 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1108 Schmolck's patch to fix inspect.getinnerframes().
1112 Schmolck's patch to fix inspect.getinnerframes().
1109
1113
1110 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1114 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1111 for embedded instances, regarding handling of namespaces and items
1115 for embedded instances, regarding handling of namespaces and items
1112 added to the __builtin__ one. Multiple embedded instances and
1116 added to the __builtin__ one. Multiple embedded instances and
1113 recursive embeddings should work better now (though I'm not sure
1117 recursive embeddings should work better now (though I'm not sure
1114 I've got all the corner cases fixed, that code is a bit of a brain
1118 I've got all the corner cases fixed, that code is a bit of a brain
1115 twister).
1119 twister).
1116
1120
1117 * IPython/Magic.py (magic_edit): added support to edit in-memory
1121 * IPython/Magic.py (magic_edit): added support to edit in-memory
1118 macros (automatically creates the necessary temp files). %edit
1122 macros (automatically creates the necessary temp files). %edit
1119 also doesn't return the file contents anymore, it's just noise.
1123 also doesn't return the file contents anymore, it's just noise.
1120
1124
1121 * IPython/completer.py (Completer.attr_matches): revert change to
1125 * IPython/completer.py (Completer.attr_matches): revert change to
1122 complete only on attributes listed in __all__. I realized it
1126 complete only on attributes listed in __all__. I realized it
1123 cripples the tab-completion system as a tool for exploring the
1127 cripples the tab-completion system as a tool for exploring the
1124 internals of unknown libraries (it renders any non-__all__
1128 internals of unknown libraries (it renders any non-__all__
1125 attribute off-limits). I got bit by this when trying to see
1129 attribute off-limits). I got bit by this when trying to see
1126 something inside the dis module.
1130 something inside the dis module.
1127
1131
1128 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1132 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1129
1133
1130 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1134 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1131 namespace for users and extension writers to hold data in. This
1135 namespace for users and extension writers to hold data in. This
1132 follows the discussion in
1136 follows the discussion in
1133 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1137 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1134
1138
1135 * IPython/completer.py (IPCompleter.complete): small patch to help
1139 * IPython/completer.py (IPCompleter.complete): small patch to help
1136 tab-completion under Emacs, after a suggestion by John Barnard
1140 tab-completion under Emacs, after a suggestion by John Barnard
1137 <barnarj-AT-ccf.org>.
1141 <barnarj-AT-ccf.org>.
1138
1142
1139 * IPython/Magic.py (Magic.extract_input_slices): added support for
1143 * IPython/Magic.py (Magic.extract_input_slices): added support for
1140 the slice notation in magics to use N-M to represent numbers N...M
1144 the slice notation in magics to use N-M to represent numbers N...M
1141 (closed endpoints). This is used by %macro and %save.
1145 (closed endpoints). This is used by %macro and %save.
1142
1146
1143 * IPython/completer.py (Completer.attr_matches): for modules which
1147 * IPython/completer.py (Completer.attr_matches): for modules which
1144 define __all__, complete only on those. After a patch by Jeffrey
1148 define __all__, complete only on those. After a patch by Jeffrey
1145 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1149 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1146 speed up this routine.
1150 speed up this routine.
1147
1151
1148 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1152 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1149 don't know if this is the end of it, but the behavior now is
1153 don't know if this is the end of it, but the behavior now is
1150 certainly much more correct. Note that coupled with macros,
1154 certainly much more correct. Note that coupled with macros,
1151 slightly surprising (at first) behavior may occur: a macro will in
1155 slightly surprising (at first) behavior may occur: a macro will in
1152 general expand to multiple lines of input, so upon exiting, the
1156 general expand to multiple lines of input, so upon exiting, the
1153 in/out counters will both be bumped by the corresponding amount
1157 in/out counters will both be bumped by the corresponding amount
1154 (as if the macro's contents had been typed interactively). Typing
1158 (as if the macro's contents had been typed interactively). Typing
1155 %hist will reveal the intermediate (silently processed) lines.
1159 %hist will reveal the intermediate (silently processed) lines.
1156
1160
1157 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1161 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1158 pickle to fail (%run was overwriting __main__ and not restoring
1162 pickle to fail (%run was overwriting __main__ and not restoring
1159 it, but pickle relies on __main__ to operate).
1163 it, but pickle relies on __main__ to operate).
1160
1164
1161 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1165 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1162 using properties, but forgot to make the main InteractiveShell
1166 using properties, but forgot to make the main InteractiveShell
1163 class a new-style class. Properties fail silently, and
1167 class a new-style class. Properties fail silently, and
1164 mysteriously, with old-style class (getters work, but
1168 mysteriously, with old-style class (getters work, but
1165 setters don't do anything).
1169 setters don't do anything).
1166
1170
1167 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1171 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1168
1172
1169 * IPython/Magic.py (magic_history): fix history reporting bug (I
1173 * IPython/Magic.py (magic_history): fix history reporting bug (I
1170 know some nasties are still there, I just can't seem to find a
1174 know some nasties are still there, I just can't seem to find a
1171 reproducible test case to track them down; the input history is
1175 reproducible test case to track them down; the input history is
1172 falling out of sync...)
1176 falling out of sync...)
1173
1177
1174 * IPython/iplib.py (handle_shell_escape): fix bug where both
1178 * IPython/iplib.py (handle_shell_escape): fix bug where both
1175 aliases and system accesses where broken for indented code (such
1179 aliases and system accesses where broken for indented code (such
1176 as loops).
1180 as loops).
1177
1181
1178 * IPython/genutils.py (shell): fix small but critical bug for
1182 * IPython/genutils.py (shell): fix small but critical bug for
1179 win32 system access.
1183 win32 system access.
1180
1184
1181 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1185 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1182
1186
1183 * IPython/iplib.py (showtraceback): remove use of the
1187 * IPython/iplib.py (showtraceback): remove use of the
1184 sys.last_{type/value/traceback} structures, which are non
1188 sys.last_{type/value/traceback} structures, which are non
1185 thread-safe.
1189 thread-safe.
1186 (_prefilter): change control flow to ensure that we NEVER
1190 (_prefilter): change control flow to ensure that we NEVER
1187 introspect objects when autocall is off. This will guarantee that
1191 introspect objects when autocall is off. This will guarantee that
1188 having an input line of the form 'x.y', where access to attribute
1192 having an input line of the form 'x.y', where access to attribute
1189 'y' has side effects, doesn't trigger the side effect TWICE. It
1193 'y' has side effects, doesn't trigger the side effect TWICE. It
1190 is important to note that, with autocall on, these side effects
1194 is important to note that, with autocall on, these side effects
1191 can still happen.
1195 can still happen.
1192 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1196 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1193 trio. IPython offers these three kinds of special calls which are
1197 trio. IPython offers these three kinds of special calls which are
1194 not python code, and it's a good thing to have their call method
1198 not python code, and it's a good thing to have their call method
1195 be accessible as pure python functions (not just special syntax at
1199 be accessible as pure python functions (not just special syntax at
1196 the command line). It gives us a better internal implementation
1200 the command line). It gives us a better internal implementation
1197 structure, as well as exposing these for user scripting more
1201 structure, as well as exposing these for user scripting more
1198 cleanly.
1202 cleanly.
1199
1203
1200 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1204 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1201 file. Now that they'll be more likely to be used with the
1205 file. Now that they'll be more likely to be used with the
1202 persistance system (%store), I want to make sure their module path
1206 persistance system (%store), I want to make sure their module path
1203 doesn't change in the future, so that we don't break things for
1207 doesn't change in the future, so that we don't break things for
1204 users' persisted data.
1208 users' persisted data.
1205
1209
1206 * IPython/iplib.py (autoindent_update): move indentation
1210 * IPython/iplib.py (autoindent_update): move indentation
1207 management into the _text_ processing loop, not the keyboard
1211 management into the _text_ processing loop, not the keyboard
1208 interactive one. This is necessary to correctly process non-typed
1212 interactive one. This is necessary to correctly process non-typed
1209 multiline input (such as macros).
1213 multiline input (such as macros).
1210
1214
1211 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1215 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1212 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1216 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1213 which was producing problems in the resulting manual.
1217 which was producing problems in the resulting manual.
1214 (magic_whos): improve reporting of instances (show their class,
1218 (magic_whos): improve reporting of instances (show their class,
1215 instead of simply printing 'instance' which isn't terribly
1219 instead of simply printing 'instance' which isn't terribly
1216 informative).
1220 informative).
1217
1221
1218 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1222 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1219 (minor mods) to support network shares under win32.
1223 (minor mods) to support network shares under win32.
1220
1224
1221 * IPython/winconsole.py (get_console_size): add new winconsole
1225 * IPython/winconsole.py (get_console_size): add new winconsole
1222 module and fixes to page_dumb() to improve its behavior under
1226 module and fixes to page_dumb() to improve its behavior under
1223 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1227 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1224
1228
1225 * IPython/Magic.py (Macro): simplified Macro class to just
1229 * IPython/Magic.py (Macro): simplified Macro class to just
1226 subclass list. We've had only 2.2 compatibility for a very long
1230 subclass list. We've had only 2.2 compatibility for a very long
1227 time, yet I was still avoiding subclassing the builtin types. No
1231 time, yet I was still avoiding subclassing the builtin types. No
1228 more (I'm also starting to use properties, though I won't shift to
1232 more (I'm also starting to use properties, though I won't shift to
1229 2.3-specific features quite yet).
1233 2.3-specific features quite yet).
1230 (magic_store): added Ville's patch for lightweight variable
1234 (magic_store): added Ville's patch for lightweight variable
1231 persistence, after a request on the user list by Matt Wilkie
1235 persistence, after a request on the user list by Matt Wilkie
1232 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1236 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1233 details.
1237 details.
1234
1238
1235 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1239 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1236 changed the default logfile name from 'ipython.log' to
1240 changed the default logfile name from 'ipython.log' to
1237 'ipython_log.py'. These logs are real python files, and now that
1241 'ipython_log.py'. These logs are real python files, and now that
1238 we have much better multiline support, people are more likely to
1242 we have much better multiline support, people are more likely to
1239 want to use them as such. Might as well name them correctly.
1243 want to use them as such. Might as well name them correctly.
1240
1244
1241 * IPython/Magic.py: substantial cleanup. While we can't stop
1245 * IPython/Magic.py: substantial cleanup. While we can't stop
1242 using magics as mixins, due to the existing customizations 'out
1246 using magics as mixins, due to the existing customizations 'out
1243 there' which rely on the mixin naming conventions, at least I
1247 there' which rely on the mixin naming conventions, at least I
1244 cleaned out all cross-class name usage. So once we are OK with
1248 cleaned out all cross-class name usage. So once we are OK with
1245 breaking compatibility, the two systems can be separated.
1249 breaking compatibility, the two systems can be separated.
1246
1250
1247 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1251 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1248 anymore, and the class is a fair bit less hideous as well. New
1252 anymore, and the class is a fair bit less hideous as well. New
1249 features were also introduced: timestamping of input, and logging
1253 features were also introduced: timestamping of input, and logging
1250 of output results. These are user-visible with the -t and -o
1254 of output results. These are user-visible with the -t and -o
1251 options to %logstart. Closes
1255 options to %logstart. Closes
1252 http://www.scipy.net/roundup/ipython/issue11 and a request by
1256 http://www.scipy.net/roundup/ipython/issue11 and a request by
1253 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1257 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1254
1258
1255 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1259 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1256
1260
1257 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1261 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1258 better handle backslashes in paths. See the thread 'More Windows
1262 better handle backslashes in paths. See the thread 'More Windows
1259 questions part 2 - \/ characters revisited' on the iypthon user
1263 questions part 2 - \/ characters revisited' on the iypthon user
1260 list:
1264 list:
1261 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1265 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1262
1266
1263 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1267 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1264
1268
1265 (InteractiveShell.__init__): change threaded shells to not use the
1269 (InteractiveShell.__init__): change threaded shells to not use the
1266 ipython crash handler. This was causing more problems than not,
1270 ipython crash handler. This was causing more problems than not,
1267 as exceptions in the main thread (GUI code, typically) would
1271 as exceptions in the main thread (GUI code, typically) would
1268 always show up as a 'crash', when they really weren't.
1272 always show up as a 'crash', when they really weren't.
1269
1273
1270 The colors and exception mode commands (%colors/%xmode) have been
1274 The colors and exception mode commands (%colors/%xmode) have been
1271 synchronized to also take this into account, so users can get
1275 synchronized to also take this into account, so users can get
1272 verbose exceptions for their threaded code as well. I also added
1276 verbose exceptions for their threaded code as well. I also added
1273 support for activating pdb inside this exception handler as well,
1277 support for activating pdb inside this exception handler as well,
1274 so now GUI authors can use IPython's enhanced pdb at runtime.
1278 so now GUI authors can use IPython's enhanced pdb at runtime.
1275
1279
1276 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1280 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1277 true by default, and add it to the shipped ipythonrc file. Since
1281 true by default, and add it to the shipped ipythonrc file. Since
1278 this asks the user before proceeding, I think it's OK to make it
1282 this asks the user before proceeding, I think it's OK to make it
1279 true by default.
1283 true by default.
1280
1284
1281 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1285 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1282 of the previous special-casing of input in the eval loop. I think
1286 of the previous special-casing of input in the eval loop. I think
1283 this is cleaner, as they really are commands and shouldn't have
1287 this is cleaner, as they really are commands and shouldn't have
1284 a special role in the middle of the core code.
1288 a special role in the middle of the core code.
1285
1289
1286 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1290 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1287
1291
1288 * IPython/iplib.py (edit_syntax_error): added support for
1292 * IPython/iplib.py (edit_syntax_error): added support for
1289 automatically reopening the editor if the file had a syntax error
1293 automatically reopening the editor if the file had a syntax error
1290 in it. Thanks to scottt who provided the patch at:
1294 in it. Thanks to scottt who provided the patch at:
1291 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1295 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1292 version committed).
1296 version committed).
1293
1297
1294 * IPython/iplib.py (handle_normal): add suport for multi-line
1298 * IPython/iplib.py (handle_normal): add suport for multi-line
1295 input with emtpy lines. This fixes
1299 input with emtpy lines. This fixes
1296 http://www.scipy.net/roundup/ipython/issue43 and a similar
1300 http://www.scipy.net/roundup/ipython/issue43 and a similar
1297 discussion on the user list.
1301 discussion on the user list.
1298
1302
1299 WARNING: a behavior change is necessarily introduced to support
1303 WARNING: a behavior change is necessarily introduced to support
1300 blank lines: now a single blank line with whitespace does NOT
1304 blank lines: now a single blank line with whitespace does NOT
1301 break the input loop, which means that when autoindent is on, by
1305 break the input loop, which means that when autoindent is on, by
1302 default hitting return on the next (indented) line does NOT exit.
1306 default hitting return on the next (indented) line does NOT exit.
1303
1307
1304 Instead, to exit a multiline input you can either have:
1308 Instead, to exit a multiline input you can either have:
1305
1309
1306 - TWO whitespace lines (just hit return again), or
1310 - TWO whitespace lines (just hit return again), or
1307 - a single whitespace line of a different length than provided
1311 - a single whitespace line of a different length than provided
1308 by the autoindent (add or remove a space).
1312 by the autoindent (add or remove a space).
1309
1313
1310 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1314 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1311 module to better organize all readline-related functionality.
1315 module to better organize all readline-related functionality.
1312 I've deleted FlexCompleter and put all completion clases here.
1316 I've deleted FlexCompleter and put all completion clases here.
1313
1317
1314 * IPython/iplib.py (raw_input): improve indentation management.
1318 * IPython/iplib.py (raw_input): improve indentation management.
1315 It is now possible to paste indented code with autoindent on, and
1319 It is now possible to paste indented code with autoindent on, and
1316 the code is interpreted correctly (though it still looks bad on
1320 the code is interpreted correctly (though it still looks bad on
1317 screen, due to the line-oriented nature of ipython).
1321 screen, due to the line-oriented nature of ipython).
1318 (MagicCompleter.complete): change behavior so that a TAB key on an
1322 (MagicCompleter.complete): change behavior so that a TAB key on an
1319 otherwise empty line actually inserts a tab, instead of completing
1323 otherwise empty line actually inserts a tab, instead of completing
1320 on the entire global namespace. This makes it easier to use the
1324 on the entire global namespace. This makes it easier to use the
1321 TAB key for indentation. After a request by Hans Meine
1325 TAB key for indentation. After a request by Hans Meine
1322 <hans_meine-AT-gmx.net>
1326 <hans_meine-AT-gmx.net>
1323 (_prefilter): add support so that typing plain 'exit' or 'quit'
1327 (_prefilter): add support so that typing plain 'exit' or 'quit'
1324 does a sensible thing. Originally I tried to deviate as little as
1328 does a sensible thing. Originally I tried to deviate as little as
1325 possible from the default python behavior, but even that one may
1329 possible from the default python behavior, but even that one may
1326 change in this direction (thread on python-dev to that effect).
1330 change in this direction (thread on python-dev to that effect).
1327 Regardless, ipython should do the right thing even if CPython's
1331 Regardless, ipython should do the right thing even if CPython's
1328 '>>>' prompt doesn't.
1332 '>>>' prompt doesn't.
1329 (InteractiveShell): removed subclassing code.InteractiveConsole
1333 (InteractiveShell): removed subclassing code.InteractiveConsole
1330 class. By now we'd overridden just about all of its methods: I've
1334 class. By now we'd overridden just about all of its methods: I've
1331 copied the remaining two over, and now ipython is a standalone
1335 copied the remaining two over, and now ipython is a standalone
1332 class. This will provide a clearer picture for the chainsaw
1336 class. This will provide a clearer picture for the chainsaw
1333 branch refactoring.
1337 branch refactoring.
1334
1338
1335 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1336
1340
1337 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1341 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1338 failures for objects which break when dir() is called on them.
1342 failures for objects which break when dir() is called on them.
1339
1343
1340 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1344 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1341 distinct local and global namespaces in the completer API. This
1345 distinct local and global namespaces in the completer API. This
1342 change allows us to properly handle completion with distinct
1346 change allows us to properly handle completion with distinct
1343 scopes, including in embedded instances (this had never really
1347 scopes, including in embedded instances (this had never really
1344 worked correctly).
1348 worked correctly).
1345
1349
1346 Note: this introduces a change in the constructor for
1350 Note: this introduces a change in the constructor for
1347 MagicCompleter, as a new global_namespace parameter is now the
1351 MagicCompleter, as a new global_namespace parameter is now the
1348 second argument (the others were bumped one position).
1352 second argument (the others were bumped one position).
1349
1353
1350 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1354 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1351
1355
1352 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1356 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1353 embedded instances (which can be done now thanks to Vivian's
1357 embedded instances (which can be done now thanks to Vivian's
1354 frame-handling fixes for pdb).
1358 frame-handling fixes for pdb).
1355 (InteractiveShell.__init__): Fix namespace handling problem in
1359 (InteractiveShell.__init__): Fix namespace handling problem in
1356 embedded instances. We were overwriting __main__ unconditionally,
1360 embedded instances. We were overwriting __main__ unconditionally,
1357 and this should only be done for 'full' (non-embedded) IPython;
1361 and this should only be done for 'full' (non-embedded) IPython;
1358 embedded instances must respect the caller's __main__. Thanks to
1362 embedded instances must respect the caller's __main__. Thanks to
1359 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1363 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1360
1364
1361 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1365 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1366
1363 * setup.py: added download_url to setup(). This registers the
1367 * setup.py: added download_url to setup(). This registers the
1364 download address at PyPI, which is not only useful to humans
1368 download address at PyPI, which is not only useful to humans
1365 browsing the site, but is also picked up by setuptools (the Eggs
1369 browsing the site, but is also picked up by setuptools (the Eggs
1366 machinery). Thanks to Ville and R. Kern for the info/discussion
1370 machinery). Thanks to Ville and R. Kern for the info/discussion
1367 on this.
1371 on this.
1368
1372
1369 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1373 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1370
1374
1371 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1375 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1372 This brings a lot of nice functionality to the pdb mode, which now
1376 This brings a lot of nice functionality to the pdb mode, which now
1373 has tab-completion, syntax highlighting, and better stack handling
1377 has tab-completion, syntax highlighting, and better stack handling
1374 than before. Many thanks to Vivian De Smedt
1378 than before. Many thanks to Vivian De Smedt
1375 <vivian-AT-vdesmedt.com> for the original patches.
1379 <vivian-AT-vdesmedt.com> for the original patches.
1376
1380
1377 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1381 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1378
1382
1379 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1383 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1380 sequence to consistently accept the banner argument. The
1384 sequence to consistently accept the banner argument. The
1381 inconsistency was tripping SAGE, thanks to Gary Zablackis
1385 inconsistency was tripping SAGE, thanks to Gary Zablackis
1382 <gzabl-AT-yahoo.com> for the report.
1386 <gzabl-AT-yahoo.com> for the report.
1383
1387
1384 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1388 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1385
1389
1386 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1390 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1387 Fix bug where a naked 'alias' call in the ipythonrc file would
1391 Fix bug where a naked 'alias' call in the ipythonrc file would
1388 cause a crash. Bug reported by Jorgen Stenarson.
1392 cause a crash. Bug reported by Jorgen Stenarson.
1389
1393
1390 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1394 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1391
1395
1392 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1396 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1393 startup time.
1397 startup time.
1394
1398
1395 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1399 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1396 instances had introduced a bug with globals in normal code. Now
1400 instances had introduced a bug with globals in normal code. Now
1397 it's working in all cases.
1401 it's working in all cases.
1398
1402
1399 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1403 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1400 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1404 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1401 has been introduced to set the default case sensitivity of the
1405 has been introduced to set the default case sensitivity of the
1402 searches. Users can still select either mode at runtime on a
1406 searches. Users can still select either mode at runtime on a
1403 per-search basis.
1407 per-search basis.
1404
1408
1405 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1406
1410
1407 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1411 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1408 attributes in wildcard searches for subclasses. Modified version
1412 attributes in wildcard searches for subclasses. Modified version
1409 of a patch by Jorgen.
1413 of a patch by Jorgen.
1410
1414
1411 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1415 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1412
1416
1413 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1417 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1414 embedded instances. I added a user_global_ns attribute to the
1418 embedded instances. I added a user_global_ns attribute to the
1415 InteractiveShell class to handle this.
1419 InteractiveShell class to handle this.
1416
1420
1417 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1421 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1418
1422
1419 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1423 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1420 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1424 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1421 (reported under win32, but may happen also in other platforms).
1425 (reported under win32, but may happen also in other platforms).
1422 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1426 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1423
1427
1424 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1428 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1425
1429
1426 * IPython/Magic.py (magic_psearch): new support for wildcard
1430 * IPython/Magic.py (magic_psearch): new support for wildcard
1427 patterns. Now, typing ?a*b will list all names which begin with a
1431 patterns. Now, typing ?a*b will list all names which begin with a
1428 and end in b, for example. The %psearch magic has full
1432 and end in b, for example. The %psearch magic has full
1429 docstrings. Many thanks to JΓΆrgen Stenarson
1433 docstrings. Many thanks to JΓΆrgen Stenarson
1430 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1434 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1431 implementing this functionality.
1435 implementing this functionality.
1432
1436
1433 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1437 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1434
1438
1435 * Manual: fixed long-standing annoyance of double-dashes (as in
1439 * Manual: fixed long-standing annoyance of double-dashes (as in
1436 --prefix=~, for example) being stripped in the HTML version. This
1440 --prefix=~, for example) being stripped in the HTML version. This
1437 is a latex2html bug, but a workaround was provided. Many thanks
1441 is a latex2html bug, but a workaround was provided. Many thanks
1438 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1442 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1439 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1443 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1440 rolling. This seemingly small issue had tripped a number of users
1444 rolling. This seemingly small issue had tripped a number of users
1441 when first installing, so I'm glad to see it gone.
1445 when first installing, so I'm glad to see it gone.
1442
1446
1443 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1447 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1444
1448
1445 * IPython/Extensions/numeric_formats.py: fix missing import,
1449 * IPython/Extensions/numeric_formats.py: fix missing import,
1446 reported by Stephen Walton.
1450 reported by Stephen Walton.
1447
1451
1448 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1452 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1449
1453
1450 * IPython/demo.py: finish demo module, fully documented now.
1454 * IPython/demo.py: finish demo module, fully documented now.
1451
1455
1452 * IPython/genutils.py (file_read): simple little utility to read a
1456 * IPython/genutils.py (file_read): simple little utility to read a
1453 file and ensure it's closed afterwards.
1457 file and ensure it's closed afterwards.
1454
1458
1455 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1459 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1456
1460
1457 * IPython/demo.py (Demo.__init__): added support for individually
1461 * IPython/demo.py (Demo.__init__): added support for individually
1458 tagging blocks for automatic execution.
1462 tagging blocks for automatic execution.
1459
1463
1460 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1464 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1461 syntax-highlighted python sources, requested by John.
1465 syntax-highlighted python sources, requested by John.
1462
1466
1463 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1467 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1464
1468
1465 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1469 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1466 finishing.
1470 finishing.
1467
1471
1468 * IPython/genutils.py (shlex_split): moved from Magic to here,
1472 * IPython/genutils.py (shlex_split): moved from Magic to here,
1469 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1473 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1470
1474
1471 * IPython/demo.py (Demo.__init__): added support for silent
1475 * IPython/demo.py (Demo.__init__): added support for silent
1472 blocks, improved marks as regexps, docstrings written.
1476 blocks, improved marks as regexps, docstrings written.
1473 (Demo.__init__): better docstring, added support for sys.argv.
1477 (Demo.__init__): better docstring, added support for sys.argv.
1474
1478
1475 * IPython/genutils.py (marquee): little utility used by the demo
1479 * IPython/genutils.py (marquee): little utility used by the demo
1476 code, handy in general.
1480 code, handy in general.
1477
1481
1478 * IPython/demo.py (Demo.__init__): new class for interactive
1482 * IPython/demo.py (Demo.__init__): new class for interactive
1479 demos. Not documented yet, I just wrote it in a hurry for
1483 demos. Not documented yet, I just wrote it in a hurry for
1480 scipy'05. Will docstring later.
1484 scipy'05. Will docstring later.
1481
1485
1482 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1486 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1483
1487
1484 * IPython/Shell.py (sigint_handler): Drastic simplification which
1488 * IPython/Shell.py (sigint_handler): Drastic simplification which
1485 also seems to make Ctrl-C work correctly across threads! This is
1489 also seems to make Ctrl-C work correctly across threads! This is
1486 so simple, that I can't beleive I'd missed it before. Needs more
1490 so simple, that I can't beleive I'd missed it before. Needs more
1487 testing, though.
1491 testing, though.
1488 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1492 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1489 like this before...
1493 like this before...
1490
1494
1491 * IPython/genutils.py (get_home_dir): add protection against
1495 * IPython/genutils.py (get_home_dir): add protection against
1492 non-dirs in win32 registry.
1496 non-dirs in win32 registry.
1493
1497
1494 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1498 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1495 bug where dict was mutated while iterating (pysh crash).
1499 bug where dict was mutated while iterating (pysh crash).
1496
1500
1497 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1501 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1498
1502
1499 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1503 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1500 spurious newlines added by this routine. After a report by
1504 spurious newlines added by this routine. After a report by
1501 F. Mantegazza.
1505 F. Mantegazza.
1502
1506
1503 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1507 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1504
1508
1505 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1509 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1506 calls. These were a leftover from the GTK 1.x days, and can cause
1510 calls. These were a leftover from the GTK 1.x days, and can cause
1507 problems in certain cases (after a report by John Hunter).
1511 problems in certain cases (after a report by John Hunter).
1508
1512
1509 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1513 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1510 os.getcwd() fails at init time. Thanks to patch from David Remahl
1514 os.getcwd() fails at init time. Thanks to patch from David Remahl
1511 <chmod007-AT-mac.com>.
1515 <chmod007-AT-mac.com>.
1512 (InteractiveShell.__init__): prevent certain special magics from
1516 (InteractiveShell.__init__): prevent certain special magics from
1513 being shadowed by aliases. Closes
1517 being shadowed by aliases. Closes
1514 http://www.scipy.net/roundup/ipython/issue41.
1518 http://www.scipy.net/roundup/ipython/issue41.
1515
1519
1516 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1520 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1517
1521
1518 * IPython/iplib.py (InteractiveShell.complete): Added new
1522 * IPython/iplib.py (InteractiveShell.complete): Added new
1519 top-level completion method to expose the completion mechanism
1523 top-level completion method to expose the completion mechanism
1520 beyond readline-based environments.
1524 beyond readline-based environments.
1521
1525
1522 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1526 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1523
1527
1524 * tools/ipsvnc (svnversion): fix svnversion capture.
1528 * tools/ipsvnc (svnversion): fix svnversion capture.
1525
1529
1526 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1530 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1527 attribute to self, which was missing. Before, it was set by a
1531 attribute to self, which was missing. Before, it was set by a
1528 routine which in certain cases wasn't being called, so the
1532 routine which in certain cases wasn't being called, so the
1529 instance could end up missing the attribute. This caused a crash.
1533 instance could end up missing the attribute. This caused a crash.
1530 Closes http://www.scipy.net/roundup/ipython/issue40.
1534 Closes http://www.scipy.net/roundup/ipython/issue40.
1531
1535
1532 2005-08-16 Fernando Perez <fperez@colorado.edu>
1536 2005-08-16 Fernando Perez <fperez@colorado.edu>
1533
1537
1534 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1538 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1535 contains non-string attribute. Closes
1539 contains non-string attribute. Closes
1536 http://www.scipy.net/roundup/ipython/issue38.
1540 http://www.scipy.net/roundup/ipython/issue38.
1537
1541
1538 2005-08-14 Fernando Perez <fperez@colorado.edu>
1542 2005-08-14 Fernando Perez <fperez@colorado.edu>
1539
1543
1540 * tools/ipsvnc: Minor improvements, to add changeset info.
1544 * tools/ipsvnc: Minor improvements, to add changeset info.
1541
1545
1542 2005-08-12 Fernando Perez <fperez@colorado.edu>
1546 2005-08-12 Fernando Perez <fperez@colorado.edu>
1543
1547
1544 * IPython/iplib.py (runsource): remove self.code_to_run_src
1548 * IPython/iplib.py (runsource): remove self.code_to_run_src
1545 attribute. I realized this is nothing more than
1549 attribute. I realized this is nothing more than
1546 '\n'.join(self.buffer), and having the same data in two different
1550 '\n'.join(self.buffer), and having the same data in two different
1547 places is just asking for synchronization bugs. This may impact
1551 places is just asking for synchronization bugs. This may impact
1548 people who have custom exception handlers, so I need to warn
1552 people who have custom exception handlers, so I need to warn
1549 ipython-dev about it (F. Mantegazza may use them).
1553 ipython-dev about it (F. Mantegazza may use them).
1550
1554
1551 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1555 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1552
1556
1553 * IPython/genutils.py: fix 2.2 compatibility (generators)
1557 * IPython/genutils.py: fix 2.2 compatibility (generators)
1554
1558
1555 2005-07-18 Fernando Perez <fperez@colorado.edu>
1559 2005-07-18 Fernando Perez <fperez@colorado.edu>
1556
1560
1557 * IPython/genutils.py (get_home_dir): fix to help users with
1561 * IPython/genutils.py (get_home_dir): fix to help users with
1558 invalid $HOME under win32.
1562 invalid $HOME under win32.
1559
1563
1560 2005-07-17 Fernando Perez <fperez@colorado.edu>
1564 2005-07-17 Fernando Perez <fperez@colorado.edu>
1561
1565
1562 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1566 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1563 some old hacks and clean up a bit other routines; code should be
1567 some old hacks and clean up a bit other routines; code should be
1564 simpler and a bit faster.
1568 simpler and a bit faster.
1565
1569
1566 * IPython/iplib.py (interact): removed some last-resort attempts
1570 * IPython/iplib.py (interact): removed some last-resort attempts
1567 to survive broken stdout/stderr. That code was only making it
1571 to survive broken stdout/stderr. That code was only making it
1568 harder to abstract out the i/o (necessary for gui integration),
1572 harder to abstract out the i/o (necessary for gui integration),
1569 and the crashes it could prevent were extremely rare in practice
1573 and the crashes it could prevent were extremely rare in practice
1570 (besides being fully user-induced in a pretty violent manner).
1574 (besides being fully user-induced in a pretty violent manner).
1571
1575
1572 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1576 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1573 Nothing major yet, but the code is simpler to read; this should
1577 Nothing major yet, but the code is simpler to read; this should
1574 make it easier to do more serious modifications in the future.
1578 make it easier to do more serious modifications in the future.
1575
1579
1576 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1580 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1577 which broke in .15 (thanks to a report by Ville).
1581 which broke in .15 (thanks to a report by Ville).
1578
1582
1579 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1583 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1580 be quite correct, I know next to nothing about unicode). This
1584 be quite correct, I know next to nothing about unicode). This
1581 will allow unicode strings to be used in prompts, amongst other
1585 will allow unicode strings to be used in prompts, amongst other
1582 cases. It also will prevent ipython from crashing when unicode
1586 cases. It also will prevent ipython from crashing when unicode
1583 shows up unexpectedly in many places. If ascii encoding fails, we
1587 shows up unexpectedly in many places. If ascii encoding fails, we
1584 assume utf_8. Currently the encoding is not a user-visible
1588 assume utf_8. Currently the encoding is not a user-visible
1585 setting, though it could be made so if there is demand for it.
1589 setting, though it could be made so if there is demand for it.
1586
1590
1587 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1591 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1588
1592
1589 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1593 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1590
1594
1591 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1595 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1592
1596
1593 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1597 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1594 code can work transparently for 2.2/2.3.
1598 code can work transparently for 2.2/2.3.
1595
1599
1596 2005-07-16 Fernando Perez <fperez@colorado.edu>
1600 2005-07-16 Fernando Perez <fperez@colorado.edu>
1597
1601
1598 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1602 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1599 out of the color scheme table used for coloring exception
1603 out of the color scheme table used for coloring exception
1600 tracebacks. This allows user code to add new schemes at runtime.
1604 tracebacks. This allows user code to add new schemes at runtime.
1601 This is a minimally modified version of the patch at
1605 This is a minimally modified version of the patch at
1602 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1606 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1603 for the contribution.
1607 for the contribution.
1604
1608
1605 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1609 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1606 slightly modified version of the patch in
1610 slightly modified version of the patch in
1607 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1611 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1608 to remove the previous try/except solution (which was costlier).
1612 to remove the previous try/except solution (which was costlier).
1609 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1613 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1610
1614
1611 2005-06-08 Fernando Perez <fperez@colorado.edu>
1615 2005-06-08 Fernando Perez <fperez@colorado.edu>
1612
1616
1613 * IPython/iplib.py (write/write_err): Add methods to abstract all
1617 * IPython/iplib.py (write/write_err): Add methods to abstract all
1614 I/O a bit more.
1618 I/O a bit more.
1615
1619
1616 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1620 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1617 warning, reported by Aric Hagberg, fix by JD Hunter.
1621 warning, reported by Aric Hagberg, fix by JD Hunter.
1618
1622
1619 2005-06-02 *** Released version 0.6.15
1623 2005-06-02 *** Released version 0.6.15
1620
1624
1621 2005-06-01 Fernando Perez <fperez@colorado.edu>
1625 2005-06-01 Fernando Perez <fperez@colorado.edu>
1622
1626
1623 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1627 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1624 tab-completion of filenames within open-quoted strings. Note that
1628 tab-completion of filenames within open-quoted strings. Note that
1625 this requires that in ~/.ipython/ipythonrc, users change the
1629 this requires that in ~/.ipython/ipythonrc, users change the
1626 readline delimiters configuration to read:
1630 readline delimiters configuration to read:
1627
1631
1628 readline_remove_delims -/~
1632 readline_remove_delims -/~
1629
1633
1630
1634
1631 2005-05-31 *** Released version 0.6.14
1635 2005-05-31 *** Released version 0.6.14
1632
1636
1633 2005-05-29 Fernando Perez <fperez@colorado.edu>
1637 2005-05-29 Fernando Perez <fperez@colorado.edu>
1634
1638
1635 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1639 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1636 with files not on the filesystem. Reported by Eliyahu Sandler
1640 with files not on the filesystem. Reported by Eliyahu Sandler
1637 <eli@gondolin.net>
1641 <eli@gondolin.net>
1638
1642
1639 2005-05-22 Fernando Perez <fperez@colorado.edu>
1643 2005-05-22 Fernando Perez <fperez@colorado.edu>
1640
1644
1641 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1645 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1642 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1646 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1643
1647
1644 2005-05-19 Fernando Perez <fperez@colorado.edu>
1648 2005-05-19 Fernando Perez <fperez@colorado.edu>
1645
1649
1646 * IPython/iplib.py (safe_execfile): close a file which could be
1650 * IPython/iplib.py (safe_execfile): close a file which could be
1647 left open (causing problems in win32, which locks open files).
1651 left open (causing problems in win32, which locks open files).
1648 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1652 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1649
1653
1650 2005-05-18 Fernando Perez <fperez@colorado.edu>
1654 2005-05-18 Fernando Perez <fperez@colorado.edu>
1651
1655
1652 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1656 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1653 keyword arguments correctly to safe_execfile().
1657 keyword arguments correctly to safe_execfile().
1654
1658
1655 2005-05-13 Fernando Perez <fperez@colorado.edu>
1659 2005-05-13 Fernando Perez <fperez@colorado.edu>
1656
1660
1657 * ipython.1: Added info about Qt to manpage, and threads warning
1661 * ipython.1: Added info about Qt to manpage, and threads warning
1658 to usage page (invoked with --help).
1662 to usage page (invoked with --help).
1659
1663
1660 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1664 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1661 new matcher (it goes at the end of the priority list) to do
1665 new matcher (it goes at the end of the priority list) to do
1662 tab-completion on named function arguments. Submitted by George
1666 tab-completion on named function arguments. Submitted by George
1663 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1667 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1664 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1668 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1665 for more details.
1669 for more details.
1666
1670
1667 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1671 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1668 SystemExit exceptions in the script being run. Thanks to a report
1672 SystemExit exceptions in the script being run. Thanks to a report
1669 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1673 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1670 producing very annoying behavior when running unit tests.
1674 producing very annoying behavior when running unit tests.
1671
1675
1672 2005-05-12 Fernando Perez <fperez@colorado.edu>
1676 2005-05-12 Fernando Perez <fperez@colorado.edu>
1673
1677
1674 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1678 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1675 which I'd broken (again) due to a changed regexp. In the process,
1679 which I'd broken (again) due to a changed regexp. In the process,
1676 added ';' as an escape to auto-quote the whole line without
1680 added ';' as an escape to auto-quote the whole line without
1677 splitting its arguments. Thanks to a report by Jerry McRae
1681 splitting its arguments. Thanks to a report by Jerry McRae
1678 <qrs0xyc02-AT-sneakemail.com>.
1682 <qrs0xyc02-AT-sneakemail.com>.
1679
1683
1680 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1684 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1681 possible crashes caused by a TokenError. Reported by Ed Schofield
1685 possible crashes caused by a TokenError. Reported by Ed Schofield
1682 <schofield-AT-ftw.at>.
1686 <schofield-AT-ftw.at>.
1683
1687
1684 2005-05-06 Fernando Perez <fperez@colorado.edu>
1688 2005-05-06 Fernando Perez <fperez@colorado.edu>
1685
1689
1686 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1690 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1687
1691
1688 2005-04-29 Fernando Perez <fperez@colorado.edu>
1692 2005-04-29 Fernando Perez <fperez@colorado.edu>
1689
1693
1690 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1694 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1691 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1695 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1692 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1696 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1693 which provides support for Qt interactive usage (similar to the
1697 which provides support for Qt interactive usage (similar to the
1694 existing one for WX and GTK). This had been often requested.
1698 existing one for WX and GTK). This had been often requested.
1695
1699
1696 2005-04-14 *** Released version 0.6.13
1700 2005-04-14 *** Released version 0.6.13
1697
1701
1698 2005-04-08 Fernando Perez <fperez@colorado.edu>
1702 2005-04-08 Fernando Perez <fperez@colorado.edu>
1699
1703
1700 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1704 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1701 from _ofind, which gets called on almost every input line. Now,
1705 from _ofind, which gets called on almost every input line. Now,
1702 we only try to get docstrings if they are actually going to be
1706 we only try to get docstrings if they are actually going to be
1703 used (the overhead of fetching unnecessary docstrings can be
1707 used (the overhead of fetching unnecessary docstrings can be
1704 noticeable for certain objects, such as Pyro proxies).
1708 noticeable for certain objects, such as Pyro proxies).
1705
1709
1706 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1710 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1707 for completers. For some reason I had been passing them the state
1711 for completers. For some reason I had been passing them the state
1708 variable, which completers never actually need, and was in
1712 variable, which completers never actually need, and was in
1709 conflict with the rlcompleter API. Custom completers ONLY need to
1713 conflict with the rlcompleter API. Custom completers ONLY need to
1710 take the text parameter.
1714 take the text parameter.
1711
1715
1712 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1716 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1713 work correctly in pysh. I've also moved all the logic which used
1717 work correctly in pysh. I've also moved all the logic which used
1714 to be in pysh.py here, which will prevent problems with future
1718 to be in pysh.py here, which will prevent problems with future
1715 upgrades. However, this time I must warn users to update their
1719 upgrades. However, this time I must warn users to update their
1716 pysh profile to include the line
1720 pysh profile to include the line
1717
1721
1718 import_all IPython.Extensions.InterpreterExec
1722 import_all IPython.Extensions.InterpreterExec
1719
1723
1720 because otherwise things won't work for them. They MUST also
1724 because otherwise things won't work for them. They MUST also
1721 delete pysh.py and the line
1725 delete pysh.py and the line
1722
1726
1723 execfile pysh.py
1727 execfile pysh.py
1724
1728
1725 from their ipythonrc-pysh.
1729 from their ipythonrc-pysh.
1726
1730
1727 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1731 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1728 robust in the face of objects whose dir() returns non-strings
1732 robust in the face of objects whose dir() returns non-strings
1729 (which it shouldn't, but some broken libs like ITK do). Thanks to
1733 (which it shouldn't, but some broken libs like ITK do). Thanks to
1730 a patch by John Hunter (implemented differently, though). Also
1734 a patch by John Hunter (implemented differently, though). Also
1731 minor improvements by using .extend instead of + on lists.
1735 minor improvements by using .extend instead of + on lists.
1732
1736
1733 * pysh.py:
1737 * pysh.py:
1734
1738
1735 2005-04-06 Fernando Perez <fperez@colorado.edu>
1739 2005-04-06 Fernando Perez <fperez@colorado.edu>
1736
1740
1737 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1741 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1738 by default, so that all users benefit from it. Those who don't
1742 by default, so that all users benefit from it. Those who don't
1739 want it can still turn it off.
1743 want it can still turn it off.
1740
1744
1741 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1745 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1742 config file, I'd forgotten about this, so users were getting it
1746 config file, I'd forgotten about this, so users were getting it
1743 off by default.
1747 off by default.
1744
1748
1745 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1749 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1746 consistency. Now magics can be called in multiline statements,
1750 consistency. Now magics can be called in multiline statements,
1747 and python variables can be expanded in magic calls via $var.
1751 and python variables can be expanded in magic calls via $var.
1748 This makes the magic system behave just like aliases or !system
1752 This makes the magic system behave just like aliases or !system
1749 calls.
1753 calls.
1750
1754
1751 2005-03-28 Fernando Perez <fperez@colorado.edu>
1755 2005-03-28 Fernando Perez <fperez@colorado.edu>
1752
1756
1753 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1757 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1754 expensive string additions for building command. Add support for
1758 expensive string additions for building command. Add support for
1755 trailing ';' when autocall is used.
1759 trailing ';' when autocall is used.
1756
1760
1757 2005-03-26 Fernando Perez <fperez@colorado.edu>
1761 2005-03-26 Fernando Perez <fperez@colorado.edu>
1758
1762
1759 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1763 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1760 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1764 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1761 ipython.el robust against prompts with any number of spaces
1765 ipython.el robust against prompts with any number of spaces
1762 (including 0) after the ':' character.
1766 (including 0) after the ':' character.
1763
1767
1764 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1768 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1765 continuation prompt, which misled users to think the line was
1769 continuation prompt, which misled users to think the line was
1766 already indented. Closes debian Bug#300847, reported to me by
1770 already indented. Closes debian Bug#300847, reported to me by
1767 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1771 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1768
1772
1769 2005-03-23 Fernando Perez <fperez@colorado.edu>
1773 2005-03-23 Fernando Perez <fperez@colorado.edu>
1770
1774
1771 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1775 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1772 properly aligned if they have embedded newlines.
1776 properly aligned if they have embedded newlines.
1773
1777
1774 * IPython/iplib.py (runlines): Add a public method to expose
1778 * IPython/iplib.py (runlines): Add a public method to expose
1775 IPython's code execution machinery, so that users can run strings
1779 IPython's code execution machinery, so that users can run strings
1776 as if they had been typed at the prompt interactively.
1780 as if they had been typed at the prompt interactively.
1777 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1781 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1778 methods which can call the system shell, but with python variable
1782 methods which can call the system shell, but with python variable
1779 expansion. The three such methods are: __IPYTHON__.system,
1783 expansion. The three such methods are: __IPYTHON__.system,
1780 .getoutput and .getoutputerror. These need to be documented in a
1784 .getoutput and .getoutputerror. These need to be documented in a
1781 'public API' section (to be written) of the manual.
1785 'public API' section (to be written) of the manual.
1782
1786
1783 2005-03-20 Fernando Perez <fperez@colorado.edu>
1787 2005-03-20 Fernando Perez <fperez@colorado.edu>
1784
1788
1785 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1789 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1786 for custom exception handling. This is quite powerful, and it
1790 for custom exception handling. This is quite powerful, and it
1787 allows for user-installable exception handlers which can trap
1791 allows for user-installable exception handlers which can trap
1788 custom exceptions at runtime and treat them separately from
1792 custom exceptions at runtime and treat them separately from
1789 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1793 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1790 Mantegazza <mantegazza-AT-ill.fr>.
1794 Mantegazza <mantegazza-AT-ill.fr>.
1791 (InteractiveShell.set_custom_completer): public API function to
1795 (InteractiveShell.set_custom_completer): public API function to
1792 add new completers at runtime.
1796 add new completers at runtime.
1793
1797
1794 2005-03-19 Fernando Perez <fperez@colorado.edu>
1798 2005-03-19 Fernando Perez <fperez@colorado.edu>
1795
1799
1796 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1800 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1797 allow objects which provide their docstrings via non-standard
1801 allow objects which provide their docstrings via non-standard
1798 mechanisms (like Pyro proxies) to still be inspected by ipython's
1802 mechanisms (like Pyro proxies) to still be inspected by ipython's
1799 ? system.
1803 ? system.
1800
1804
1801 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1805 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1802 automatic capture system. I tried quite hard to make it work
1806 automatic capture system. I tried quite hard to make it work
1803 reliably, and simply failed. I tried many combinations with the
1807 reliably, and simply failed. I tried many combinations with the
1804 subprocess module, but eventually nothing worked in all needed
1808 subprocess module, but eventually nothing worked in all needed
1805 cases (not blocking stdin for the child, duplicating stdout
1809 cases (not blocking stdin for the child, duplicating stdout
1806 without blocking, etc). The new %sc/%sx still do capture to these
1810 without blocking, etc). The new %sc/%sx still do capture to these
1807 magical list/string objects which make shell use much more
1811 magical list/string objects which make shell use much more
1808 conveninent, so not all is lost.
1812 conveninent, so not all is lost.
1809
1813
1810 XXX - FIX MANUAL for the change above!
1814 XXX - FIX MANUAL for the change above!
1811
1815
1812 (runsource): I copied code.py's runsource() into ipython to modify
1816 (runsource): I copied code.py's runsource() into ipython to modify
1813 it a bit. Now the code object and source to be executed are
1817 it a bit. Now the code object and source to be executed are
1814 stored in ipython. This makes this info accessible to third-party
1818 stored in ipython. This makes this info accessible to third-party
1815 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1819 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1816 Mantegazza <mantegazza-AT-ill.fr>.
1820 Mantegazza <mantegazza-AT-ill.fr>.
1817
1821
1818 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1822 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1819 history-search via readline (like C-p/C-n). I'd wanted this for a
1823 history-search via readline (like C-p/C-n). I'd wanted this for a
1820 long time, but only recently found out how to do it. For users
1824 long time, but only recently found out how to do it. For users
1821 who already have their ipythonrc files made and want this, just
1825 who already have their ipythonrc files made and want this, just
1822 add:
1826 add:
1823
1827
1824 readline_parse_and_bind "\e[A": history-search-backward
1828 readline_parse_and_bind "\e[A": history-search-backward
1825 readline_parse_and_bind "\e[B": history-search-forward
1829 readline_parse_and_bind "\e[B": history-search-forward
1826
1830
1827 2005-03-18 Fernando Perez <fperez@colorado.edu>
1831 2005-03-18 Fernando Perez <fperez@colorado.edu>
1828
1832
1829 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1833 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1830 LSString and SList classes which allow transparent conversions
1834 LSString and SList classes which allow transparent conversions
1831 between list mode and whitespace-separated string.
1835 between list mode and whitespace-separated string.
1832 (magic_r): Fix recursion problem in %r.
1836 (magic_r): Fix recursion problem in %r.
1833
1837
1834 * IPython/genutils.py (LSString): New class to be used for
1838 * IPython/genutils.py (LSString): New class to be used for
1835 automatic storage of the results of all alias/system calls in _o
1839 automatic storage of the results of all alias/system calls in _o
1836 and _e (stdout/err). These provide a .l/.list attribute which
1840 and _e (stdout/err). These provide a .l/.list attribute which
1837 does automatic splitting on newlines. This means that for most
1841 does automatic splitting on newlines. This means that for most
1838 uses, you'll never need to do capturing of output with %sc/%sx
1842 uses, you'll never need to do capturing of output with %sc/%sx
1839 anymore, since ipython keeps this always done for you. Note that
1843 anymore, since ipython keeps this always done for you. Note that
1840 only the LAST results are stored, the _o/e variables are
1844 only the LAST results are stored, the _o/e variables are
1841 overwritten on each call. If you need to save their contents
1845 overwritten on each call. If you need to save their contents
1842 further, simply bind them to any other name.
1846 further, simply bind them to any other name.
1843
1847
1844 2005-03-17 Fernando Perez <fperez@colorado.edu>
1848 2005-03-17 Fernando Perez <fperez@colorado.edu>
1845
1849
1846 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1850 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1847 prompt namespace handling.
1851 prompt namespace handling.
1848
1852
1849 2005-03-16 Fernando Perez <fperez@colorado.edu>
1853 2005-03-16 Fernando Perez <fperez@colorado.edu>
1850
1854
1851 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1855 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1852 classic prompts to be '>>> ' (final space was missing, and it
1856 classic prompts to be '>>> ' (final space was missing, and it
1853 trips the emacs python mode).
1857 trips the emacs python mode).
1854 (BasePrompt.__str__): Added safe support for dynamic prompt
1858 (BasePrompt.__str__): Added safe support for dynamic prompt
1855 strings. Now you can set your prompt string to be '$x', and the
1859 strings. Now you can set your prompt string to be '$x', and the
1856 value of x will be printed from your interactive namespace. The
1860 value of x will be printed from your interactive namespace. The
1857 interpolation syntax includes the full Itpl support, so
1861 interpolation syntax includes the full Itpl support, so
1858 ${foo()+x+bar()} is a valid prompt string now, and the function
1862 ${foo()+x+bar()} is a valid prompt string now, and the function
1859 calls will be made at runtime.
1863 calls will be made at runtime.
1860
1864
1861 2005-03-15 Fernando Perez <fperez@colorado.edu>
1865 2005-03-15 Fernando Perez <fperez@colorado.edu>
1862
1866
1863 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1867 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1864 avoid name clashes in pylab. %hist still works, it just forwards
1868 avoid name clashes in pylab. %hist still works, it just forwards
1865 the call to %history.
1869 the call to %history.
1866
1870
1867 2005-03-02 *** Released version 0.6.12
1871 2005-03-02 *** Released version 0.6.12
1868
1872
1869 2005-03-02 Fernando Perez <fperez@colorado.edu>
1873 2005-03-02 Fernando Perez <fperez@colorado.edu>
1870
1874
1871 * IPython/iplib.py (handle_magic): log magic calls properly as
1875 * IPython/iplib.py (handle_magic): log magic calls properly as
1872 ipmagic() function calls.
1876 ipmagic() function calls.
1873
1877
1874 * IPython/Magic.py (magic_time): Improved %time to support
1878 * IPython/Magic.py (magic_time): Improved %time to support
1875 statements and provide wall-clock as well as CPU time.
1879 statements and provide wall-clock as well as CPU time.
1876
1880
1877 2005-02-27 Fernando Perez <fperez@colorado.edu>
1881 2005-02-27 Fernando Perez <fperez@colorado.edu>
1878
1882
1879 * IPython/hooks.py: New hooks module, to expose user-modifiable
1883 * IPython/hooks.py: New hooks module, to expose user-modifiable
1880 IPython functionality in a clean manner. For now only the editor
1884 IPython functionality in a clean manner. For now only the editor
1881 hook is actually written, and other thigns which I intend to turn
1885 hook is actually written, and other thigns which I intend to turn
1882 into proper hooks aren't yet there. The display and prefilter
1886 into proper hooks aren't yet there. The display and prefilter
1883 stuff, for example, should be hooks. But at least now the
1887 stuff, for example, should be hooks. But at least now the
1884 framework is in place, and the rest can be moved here with more
1888 framework is in place, and the rest can be moved here with more
1885 time later. IPython had had a .hooks variable for a long time for
1889 time later. IPython had had a .hooks variable for a long time for
1886 this purpose, but I'd never actually used it for anything.
1890 this purpose, but I'd never actually used it for anything.
1887
1891
1888 2005-02-26 Fernando Perez <fperez@colorado.edu>
1892 2005-02-26 Fernando Perez <fperez@colorado.edu>
1889
1893
1890 * IPython/ipmaker.py (make_IPython): make the default ipython
1894 * IPython/ipmaker.py (make_IPython): make the default ipython
1891 directory be called _ipython under win32, to follow more the
1895 directory be called _ipython under win32, to follow more the
1892 naming peculiarities of that platform (where buggy software like
1896 naming peculiarities of that platform (where buggy software like
1893 Visual Sourcesafe breaks with .named directories). Reported by
1897 Visual Sourcesafe breaks with .named directories). Reported by
1894 Ville Vainio.
1898 Ville Vainio.
1895
1899
1896 2005-02-23 Fernando Perez <fperez@colorado.edu>
1900 2005-02-23 Fernando Perez <fperez@colorado.edu>
1897
1901
1898 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1902 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1899 auto_aliases for win32 which were causing problems. Users can
1903 auto_aliases for win32 which were causing problems. Users can
1900 define the ones they personally like.
1904 define the ones they personally like.
1901
1905
1902 2005-02-21 Fernando Perez <fperez@colorado.edu>
1906 2005-02-21 Fernando Perez <fperez@colorado.edu>
1903
1907
1904 * IPython/Magic.py (magic_time): new magic to time execution of
1908 * IPython/Magic.py (magic_time): new magic to time execution of
1905 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1909 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1906
1910
1907 2005-02-19 Fernando Perez <fperez@colorado.edu>
1911 2005-02-19 Fernando Perez <fperez@colorado.edu>
1908
1912
1909 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1913 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1910 into keys (for prompts, for example).
1914 into keys (for prompts, for example).
1911
1915
1912 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1916 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1913 prompts in case users want them. This introduces a small behavior
1917 prompts in case users want them. This introduces a small behavior
1914 change: ipython does not automatically add a space to all prompts
1918 change: ipython does not automatically add a space to all prompts
1915 anymore. To get the old prompts with a space, users should add it
1919 anymore. To get the old prompts with a space, users should add it
1916 manually to their ipythonrc file, so for example prompt_in1 should
1920 manually to their ipythonrc file, so for example prompt_in1 should
1917 now read 'In [\#]: ' instead of 'In [\#]:'.
1921 now read 'In [\#]: ' instead of 'In [\#]:'.
1918 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1922 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1919 file) to control left-padding of secondary prompts.
1923 file) to control left-padding of secondary prompts.
1920
1924
1921 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1925 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1922 the profiler can't be imported. Fix for Debian, which removed
1926 the profiler can't be imported. Fix for Debian, which removed
1923 profile.py because of License issues. I applied a slightly
1927 profile.py because of License issues. I applied a slightly
1924 modified version of the original Debian patch at
1928 modified version of the original Debian patch at
1925 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1929 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1926
1930
1927 2005-02-17 Fernando Perez <fperez@colorado.edu>
1931 2005-02-17 Fernando Perez <fperez@colorado.edu>
1928
1932
1929 * IPython/genutils.py (native_line_ends): Fix bug which would
1933 * IPython/genutils.py (native_line_ends): Fix bug which would
1930 cause improper line-ends under win32 b/c I was not opening files
1934 cause improper line-ends under win32 b/c I was not opening files
1931 in binary mode. Bug report and fix thanks to Ville.
1935 in binary mode. Bug report and fix thanks to Ville.
1932
1936
1933 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1937 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1934 trying to catch spurious foo[1] autocalls. My fix actually broke
1938 trying to catch spurious foo[1] autocalls. My fix actually broke
1935 ',/' autoquote/call with explicit escape (bad regexp).
1939 ',/' autoquote/call with explicit escape (bad regexp).
1936
1940
1937 2005-02-15 *** Released version 0.6.11
1941 2005-02-15 *** Released version 0.6.11
1938
1942
1939 2005-02-14 Fernando Perez <fperez@colorado.edu>
1943 2005-02-14 Fernando Perez <fperez@colorado.edu>
1940
1944
1941 * IPython/background_jobs.py: New background job management
1945 * IPython/background_jobs.py: New background job management
1942 subsystem. This is implemented via a new set of classes, and
1946 subsystem. This is implemented via a new set of classes, and
1943 IPython now provides a builtin 'jobs' object for background job
1947 IPython now provides a builtin 'jobs' object for background job
1944 execution. A convenience %bg magic serves as a lightweight
1948 execution. A convenience %bg magic serves as a lightweight
1945 frontend for starting the more common type of calls. This was
1949 frontend for starting the more common type of calls. This was
1946 inspired by discussions with B. Granger and the BackgroundCommand
1950 inspired by discussions with B. Granger and the BackgroundCommand
1947 class described in the book Python Scripting for Computational
1951 class described in the book Python Scripting for Computational
1948 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1952 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1949 (although ultimately no code from this text was used, as IPython's
1953 (although ultimately no code from this text was used, as IPython's
1950 system is a separate implementation).
1954 system is a separate implementation).
1951
1955
1952 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1956 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1953 to control the completion of single/double underscore names
1957 to control the completion of single/double underscore names
1954 separately. As documented in the example ipytonrc file, the
1958 separately. As documented in the example ipytonrc file, the
1955 readline_omit__names variable can now be set to 2, to omit even
1959 readline_omit__names variable can now be set to 2, to omit even
1956 single underscore names. Thanks to a patch by Brian Wong
1960 single underscore names. Thanks to a patch by Brian Wong
1957 <BrianWong-AT-AirgoNetworks.Com>.
1961 <BrianWong-AT-AirgoNetworks.Com>.
1958 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1962 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1959 be autocalled as foo([1]) if foo were callable. A problem for
1963 be autocalled as foo([1]) if foo were callable. A problem for
1960 things which are both callable and implement __getitem__.
1964 things which are both callable and implement __getitem__.
1961 (init_readline): Fix autoindentation for win32. Thanks to a patch
1965 (init_readline): Fix autoindentation for win32. Thanks to a patch
1962 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1966 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1963
1967
1964 2005-02-12 Fernando Perez <fperez@colorado.edu>
1968 2005-02-12 Fernando Perez <fperez@colorado.edu>
1965
1969
1966 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1970 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1967 which I had written long ago to sort out user error messages which
1971 which I had written long ago to sort out user error messages which
1968 may occur during startup. This seemed like a good idea initially,
1972 may occur during startup. This seemed like a good idea initially,
1969 but it has proven a disaster in retrospect. I don't want to
1973 but it has proven a disaster in retrospect. I don't want to
1970 change much code for now, so my fix is to set the internal 'debug'
1974 change much code for now, so my fix is to set the internal 'debug'
1971 flag to true everywhere, whose only job was precisely to control
1975 flag to true everywhere, whose only job was precisely to control
1972 this subsystem. This closes issue 28 (as well as avoiding all
1976 this subsystem. This closes issue 28 (as well as avoiding all
1973 sorts of strange hangups which occur from time to time).
1977 sorts of strange hangups which occur from time to time).
1974
1978
1975 2005-02-07 Fernando Perez <fperez@colorado.edu>
1979 2005-02-07 Fernando Perez <fperez@colorado.edu>
1976
1980
1977 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1981 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1978 previous call produced a syntax error.
1982 previous call produced a syntax error.
1979
1983
1980 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1984 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1981 classes without constructor.
1985 classes without constructor.
1982
1986
1983 2005-02-06 Fernando Perez <fperez@colorado.edu>
1987 2005-02-06 Fernando Perez <fperez@colorado.edu>
1984
1988
1985 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1989 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1986 completions with the results of each matcher, so we return results
1990 completions with the results of each matcher, so we return results
1987 to the user from all namespaces. This breaks with ipython
1991 to the user from all namespaces. This breaks with ipython
1988 tradition, but I think it's a nicer behavior. Now you get all
1992 tradition, but I think it's a nicer behavior. Now you get all
1989 possible completions listed, from all possible namespaces (python,
1993 possible completions listed, from all possible namespaces (python,
1990 filesystem, magics...) After a request by John Hunter
1994 filesystem, magics...) After a request by John Hunter
1991 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1995 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1992
1996
1993 2005-02-05 Fernando Perez <fperez@colorado.edu>
1997 2005-02-05 Fernando Perez <fperez@colorado.edu>
1994
1998
1995 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1999 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1996 the call had quote characters in it (the quotes were stripped).
2000 the call had quote characters in it (the quotes were stripped).
1997
2001
1998 2005-01-31 Fernando Perez <fperez@colorado.edu>
2002 2005-01-31 Fernando Perez <fperez@colorado.edu>
1999
2003
2000 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2004 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2001 Itpl.itpl() to make the code more robust against psyco
2005 Itpl.itpl() to make the code more robust against psyco
2002 optimizations.
2006 optimizations.
2003
2007
2004 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2008 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2005 of causing an exception. Quicker, cleaner.
2009 of causing an exception. Quicker, cleaner.
2006
2010
2007 2005-01-28 Fernando Perez <fperez@colorado.edu>
2011 2005-01-28 Fernando Perez <fperez@colorado.edu>
2008
2012
2009 * scripts/ipython_win_post_install.py (install): hardcode
2013 * scripts/ipython_win_post_install.py (install): hardcode
2010 sys.prefix+'python.exe' as the executable path. It turns out that
2014 sys.prefix+'python.exe' as the executable path. It turns out that
2011 during the post-installation run, sys.executable resolves to the
2015 during the post-installation run, sys.executable resolves to the
2012 name of the binary installer! I should report this as a distutils
2016 name of the binary installer! I should report this as a distutils
2013 bug, I think. I updated the .10 release with this tiny fix, to
2017 bug, I think. I updated the .10 release with this tiny fix, to
2014 avoid annoying the lists further.
2018 avoid annoying the lists further.
2015
2019
2016 2005-01-27 *** Released version 0.6.10
2020 2005-01-27 *** Released version 0.6.10
2017
2021
2018 2005-01-27 Fernando Perez <fperez@colorado.edu>
2022 2005-01-27 Fernando Perez <fperez@colorado.edu>
2019
2023
2020 * IPython/numutils.py (norm): Added 'inf' as optional name for
2024 * IPython/numutils.py (norm): Added 'inf' as optional name for
2021 L-infinity norm, included references to mathworld.com for vector
2025 L-infinity norm, included references to mathworld.com for vector
2022 norm definitions.
2026 norm definitions.
2023 (amin/amax): added amin/amax for array min/max. Similar to what
2027 (amin/amax): added amin/amax for array min/max. Similar to what
2024 pylab ships with after the recent reorganization of names.
2028 pylab ships with after the recent reorganization of names.
2025 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2029 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2026
2030
2027 * ipython.el: committed Alex's recent fixes and improvements.
2031 * ipython.el: committed Alex's recent fixes and improvements.
2028 Tested with python-mode from CVS, and it looks excellent. Since
2032 Tested with python-mode from CVS, and it looks excellent. Since
2029 python-mode hasn't released anything in a while, I'm temporarily
2033 python-mode hasn't released anything in a while, I'm temporarily
2030 putting a copy of today's CVS (v 4.70) of python-mode in:
2034 putting a copy of today's CVS (v 4.70) of python-mode in:
2031 http://ipython.scipy.org/tmp/python-mode.el
2035 http://ipython.scipy.org/tmp/python-mode.el
2032
2036
2033 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2037 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2034 sys.executable for the executable name, instead of assuming it's
2038 sys.executable for the executable name, instead of assuming it's
2035 called 'python.exe' (the post-installer would have produced broken
2039 called 'python.exe' (the post-installer would have produced broken
2036 setups on systems with a differently named python binary).
2040 setups on systems with a differently named python binary).
2037
2041
2038 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2042 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2039 references to os.linesep, to make the code more
2043 references to os.linesep, to make the code more
2040 platform-independent. This is also part of the win32 coloring
2044 platform-independent. This is also part of the win32 coloring
2041 fixes.
2045 fixes.
2042
2046
2043 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2047 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2044 lines, which actually cause coloring bugs because the length of
2048 lines, which actually cause coloring bugs because the length of
2045 the line is very difficult to correctly compute with embedded
2049 the line is very difficult to correctly compute with embedded
2046 escapes. This was the source of all the coloring problems under
2050 escapes. This was the source of all the coloring problems under
2047 Win32. I think that _finally_, Win32 users have a properly
2051 Win32. I think that _finally_, Win32 users have a properly
2048 working ipython in all respects. This would never have happened
2052 working ipython in all respects. This would never have happened
2049 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2053 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2050
2054
2051 2005-01-26 *** Released version 0.6.9
2055 2005-01-26 *** Released version 0.6.9
2052
2056
2053 2005-01-25 Fernando Perez <fperez@colorado.edu>
2057 2005-01-25 Fernando Perez <fperez@colorado.edu>
2054
2058
2055 * setup.py: finally, we have a true Windows installer, thanks to
2059 * setup.py: finally, we have a true Windows installer, thanks to
2056 the excellent work of Viktor Ransmayr
2060 the excellent work of Viktor Ransmayr
2057 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2061 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2058 Windows users. The setup routine is quite a bit cleaner thanks to
2062 Windows users. The setup routine is quite a bit cleaner thanks to
2059 this, and the post-install script uses the proper functions to
2063 this, and the post-install script uses the proper functions to
2060 allow a clean de-installation using the standard Windows Control
2064 allow a clean de-installation using the standard Windows Control
2061 Panel.
2065 Panel.
2062
2066
2063 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2067 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2064 environment variable under all OSes (including win32) if
2068 environment variable under all OSes (including win32) if
2065 available. This will give consistency to win32 users who have set
2069 available. This will give consistency to win32 users who have set
2066 this variable for any reason. If os.environ['HOME'] fails, the
2070 this variable for any reason. If os.environ['HOME'] fails, the
2067 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2071 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2068
2072
2069 2005-01-24 Fernando Perez <fperez@colorado.edu>
2073 2005-01-24 Fernando Perez <fperez@colorado.edu>
2070
2074
2071 * IPython/numutils.py (empty_like): add empty_like(), similar to
2075 * IPython/numutils.py (empty_like): add empty_like(), similar to
2072 zeros_like() but taking advantage of the new empty() Numeric routine.
2076 zeros_like() but taking advantage of the new empty() Numeric routine.
2073
2077
2074 2005-01-23 *** Released version 0.6.8
2078 2005-01-23 *** Released version 0.6.8
2075
2079
2076 2005-01-22 Fernando Perez <fperez@colorado.edu>
2080 2005-01-22 Fernando Perez <fperez@colorado.edu>
2077
2081
2078 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2082 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2079 automatic show() calls. After discussing things with JDH, it
2083 automatic show() calls. After discussing things with JDH, it
2080 turns out there are too many corner cases where this can go wrong.
2084 turns out there are too many corner cases where this can go wrong.
2081 It's best not to try to be 'too smart', and simply have ipython
2085 It's best not to try to be 'too smart', and simply have ipython
2082 reproduce as much as possible the default behavior of a normal
2086 reproduce as much as possible the default behavior of a normal
2083 python shell.
2087 python shell.
2084
2088
2085 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2089 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2086 line-splitting regexp and _prefilter() to avoid calling getattr()
2090 line-splitting regexp and _prefilter() to avoid calling getattr()
2087 on assignments. This closes
2091 on assignments. This closes
2088 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2092 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2089 readline uses getattr(), so a simple <TAB> keypress is still
2093 readline uses getattr(), so a simple <TAB> keypress is still
2090 enough to trigger getattr() calls on an object.
2094 enough to trigger getattr() calls on an object.
2091
2095
2092 2005-01-21 Fernando Perez <fperez@colorado.edu>
2096 2005-01-21 Fernando Perez <fperez@colorado.edu>
2093
2097
2094 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2098 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2095 docstring under pylab so it doesn't mask the original.
2099 docstring under pylab so it doesn't mask the original.
2096
2100
2097 2005-01-21 *** Released version 0.6.7
2101 2005-01-21 *** Released version 0.6.7
2098
2102
2099 2005-01-21 Fernando Perez <fperez@colorado.edu>
2103 2005-01-21 Fernando Perez <fperez@colorado.edu>
2100
2104
2101 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2105 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2102 signal handling for win32 users in multithreaded mode.
2106 signal handling for win32 users in multithreaded mode.
2103
2107
2104 2005-01-17 Fernando Perez <fperez@colorado.edu>
2108 2005-01-17 Fernando Perez <fperez@colorado.edu>
2105
2109
2106 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2110 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2107 instances with no __init__. After a crash report by Norbert Nemec
2111 instances with no __init__. After a crash report by Norbert Nemec
2108 <Norbert-AT-nemec-online.de>.
2112 <Norbert-AT-nemec-online.de>.
2109
2113
2110 2005-01-14 Fernando Perez <fperez@colorado.edu>
2114 2005-01-14 Fernando Perez <fperez@colorado.edu>
2111
2115
2112 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2116 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2113 names for verbose exceptions, when multiple dotted names and the
2117 names for verbose exceptions, when multiple dotted names and the
2114 'parent' object were present on the same line.
2118 'parent' object were present on the same line.
2115
2119
2116 2005-01-11 Fernando Perez <fperez@colorado.edu>
2120 2005-01-11 Fernando Perez <fperez@colorado.edu>
2117
2121
2118 * IPython/genutils.py (flag_calls): new utility to trap and flag
2122 * IPython/genutils.py (flag_calls): new utility to trap and flag
2119 calls in functions. I need it to clean up matplotlib support.
2123 calls in functions. I need it to clean up matplotlib support.
2120 Also removed some deprecated code in genutils.
2124 Also removed some deprecated code in genutils.
2121
2125
2122 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2126 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2123 that matplotlib scripts called with %run, which don't call show()
2127 that matplotlib scripts called with %run, which don't call show()
2124 themselves, still have their plotting windows open.
2128 themselves, still have their plotting windows open.
2125
2129
2126 2005-01-05 Fernando Perez <fperez@colorado.edu>
2130 2005-01-05 Fernando Perez <fperez@colorado.edu>
2127
2131
2128 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2132 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2129 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2133 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2130
2134
2131 2004-12-19 Fernando Perez <fperez@colorado.edu>
2135 2004-12-19 Fernando Perez <fperez@colorado.edu>
2132
2136
2133 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2137 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2134 parent_runcode, which was an eyesore. The same result can be
2138 parent_runcode, which was an eyesore. The same result can be
2135 obtained with Python's regular superclass mechanisms.
2139 obtained with Python's regular superclass mechanisms.
2136
2140
2137 2004-12-17 Fernando Perez <fperez@colorado.edu>
2141 2004-12-17 Fernando Perez <fperez@colorado.edu>
2138
2142
2139 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2143 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2140 reported by Prabhu.
2144 reported by Prabhu.
2141 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2145 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2142 sys.stderr) instead of explicitly calling sys.stderr. This helps
2146 sys.stderr) instead of explicitly calling sys.stderr. This helps
2143 maintain our I/O abstractions clean, for future GUI embeddings.
2147 maintain our I/O abstractions clean, for future GUI embeddings.
2144
2148
2145 * IPython/genutils.py (info): added new utility for sys.stderr
2149 * IPython/genutils.py (info): added new utility for sys.stderr
2146 unified info message handling (thin wrapper around warn()).
2150 unified info message handling (thin wrapper around warn()).
2147
2151
2148 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2152 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2149 composite (dotted) names on verbose exceptions.
2153 composite (dotted) names on verbose exceptions.
2150 (VerboseTB.nullrepr): harden against another kind of errors which
2154 (VerboseTB.nullrepr): harden against another kind of errors which
2151 Python's inspect module can trigger, and which were crashing
2155 Python's inspect module can trigger, and which were crashing
2152 IPython. Thanks to a report by Marco Lombardi
2156 IPython. Thanks to a report by Marco Lombardi
2153 <mlombard-AT-ma010192.hq.eso.org>.
2157 <mlombard-AT-ma010192.hq.eso.org>.
2154
2158
2155 2004-12-13 *** Released version 0.6.6
2159 2004-12-13 *** Released version 0.6.6
2156
2160
2157 2004-12-12 Fernando Perez <fperez@colorado.edu>
2161 2004-12-12 Fernando Perez <fperez@colorado.edu>
2158
2162
2159 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2163 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2160 generated by pygtk upon initialization if it was built without
2164 generated by pygtk upon initialization if it was built without
2161 threads (for matplotlib users). After a crash reported by
2165 threads (for matplotlib users). After a crash reported by
2162 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2166 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2163
2167
2164 * IPython/ipmaker.py (make_IPython): fix small bug in the
2168 * IPython/ipmaker.py (make_IPython): fix small bug in the
2165 import_some parameter for multiple imports.
2169 import_some parameter for multiple imports.
2166
2170
2167 * IPython/iplib.py (ipmagic): simplified the interface of
2171 * IPython/iplib.py (ipmagic): simplified the interface of
2168 ipmagic() to take a single string argument, just as it would be
2172 ipmagic() to take a single string argument, just as it would be
2169 typed at the IPython cmd line.
2173 typed at the IPython cmd line.
2170 (ipalias): Added new ipalias() with an interface identical to
2174 (ipalias): Added new ipalias() with an interface identical to
2171 ipmagic(). This completes exposing a pure python interface to the
2175 ipmagic(). This completes exposing a pure python interface to the
2172 alias and magic system, which can be used in loops or more complex
2176 alias and magic system, which can be used in loops or more complex
2173 code where IPython's automatic line mangling is not active.
2177 code where IPython's automatic line mangling is not active.
2174
2178
2175 * IPython/genutils.py (timing): changed interface of timing to
2179 * IPython/genutils.py (timing): changed interface of timing to
2176 simply run code once, which is the most common case. timings()
2180 simply run code once, which is the most common case. timings()
2177 remains unchanged, for the cases where you want multiple runs.
2181 remains unchanged, for the cases where you want multiple runs.
2178
2182
2179 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2183 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2180 bug where Python2.2 crashes with exec'ing code which does not end
2184 bug where Python2.2 crashes with exec'ing code which does not end
2181 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2185 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2182 before.
2186 before.
2183
2187
2184 2004-12-10 Fernando Perez <fperez@colorado.edu>
2188 2004-12-10 Fernando Perez <fperez@colorado.edu>
2185
2189
2186 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2190 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2187 -t to -T, to accomodate the new -t flag in %run (the %run and
2191 -t to -T, to accomodate the new -t flag in %run (the %run and
2188 %prun options are kind of intermixed, and it's not easy to change
2192 %prun options are kind of intermixed, and it's not easy to change
2189 this with the limitations of python's getopt).
2193 this with the limitations of python's getopt).
2190
2194
2191 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2195 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2192 the execution of scripts. It's not as fine-tuned as timeit.py,
2196 the execution of scripts. It's not as fine-tuned as timeit.py,
2193 but it works from inside ipython (and under 2.2, which lacks
2197 but it works from inside ipython (and under 2.2, which lacks
2194 timeit.py). Optionally a number of runs > 1 can be given for
2198 timeit.py). Optionally a number of runs > 1 can be given for
2195 timing very short-running code.
2199 timing very short-running code.
2196
2200
2197 * IPython/genutils.py (uniq_stable): new routine which returns a
2201 * IPython/genutils.py (uniq_stable): new routine which returns a
2198 list of unique elements in any iterable, but in stable order of
2202 list of unique elements in any iterable, but in stable order of
2199 appearance. I needed this for the ultraTB fixes, and it's a handy
2203 appearance. I needed this for the ultraTB fixes, and it's a handy
2200 utility.
2204 utility.
2201
2205
2202 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2206 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2203 dotted names in Verbose exceptions. This had been broken since
2207 dotted names in Verbose exceptions. This had been broken since
2204 the very start, now x.y will properly be printed in a Verbose
2208 the very start, now x.y will properly be printed in a Verbose
2205 traceback, instead of x being shown and y appearing always as an
2209 traceback, instead of x being shown and y appearing always as an
2206 'undefined global'. Getting this to work was a bit tricky,
2210 'undefined global'. Getting this to work was a bit tricky,
2207 because by default python tokenizers are stateless. Saved by
2211 because by default python tokenizers are stateless. Saved by
2208 python's ability to easily add a bit of state to an arbitrary
2212 python's ability to easily add a bit of state to an arbitrary
2209 function (without needing to build a full-blown callable object).
2213 function (without needing to build a full-blown callable object).
2210
2214
2211 Also big cleanup of this code, which had horrendous runtime
2215 Also big cleanup of this code, which had horrendous runtime
2212 lookups of zillions of attributes for colorization. Moved all
2216 lookups of zillions of attributes for colorization. Moved all
2213 this code into a few templates, which make it cleaner and quicker.
2217 this code into a few templates, which make it cleaner and quicker.
2214
2218
2215 Printout quality was also improved for Verbose exceptions: one
2219 Printout quality was also improved for Verbose exceptions: one
2216 variable per line, and memory addresses are printed (this can be
2220 variable per line, and memory addresses are printed (this can be
2217 quite handy in nasty debugging situations, which is what Verbose
2221 quite handy in nasty debugging situations, which is what Verbose
2218 is for).
2222 is for).
2219
2223
2220 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2224 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2221 the command line as scripts to be loaded by embedded instances.
2225 the command line as scripts to be loaded by embedded instances.
2222 Doing so has the potential for an infinite recursion if there are
2226 Doing so has the potential for an infinite recursion if there are
2223 exceptions thrown in the process. This fixes a strange crash
2227 exceptions thrown in the process. This fixes a strange crash
2224 reported by Philippe MULLER <muller-AT-irit.fr>.
2228 reported by Philippe MULLER <muller-AT-irit.fr>.
2225
2229
2226 2004-12-09 Fernando Perez <fperez@colorado.edu>
2230 2004-12-09 Fernando Perez <fperez@colorado.edu>
2227
2231
2228 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2232 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2229 to reflect new names in matplotlib, which now expose the
2233 to reflect new names in matplotlib, which now expose the
2230 matlab-compatible interface via a pylab module instead of the
2234 matlab-compatible interface via a pylab module instead of the
2231 'matlab' name. The new code is backwards compatible, so users of
2235 'matlab' name. The new code is backwards compatible, so users of
2232 all matplotlib versions are OK. Patch by J. Hunter.
2236 all matplotlib versions are OK. Patch by J. Hunter.
2233
2237
2234 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2238 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2235 of __init__ docstrings for instances (class docstrings are already
2239 of __init__ docstrings for instances (class docstrings are already
2236 automatically printed). Instances with customized docstrings
2240 automatically printed). Instances with customized docstrings
2237 (indep. of the class) are also recognized and all 3 separate
2241 (indep. of the class) are also recognized and all 3 separate
2238 docstrings are printed (instance, class, constructor). After some
2242 docstrings are printed (instance, class, constructor). After some
2239 comments/suggestions by J. Hunter.
2243 comments/suggestions by J. Hunter.
2240
2244
2241 2004-12-05 Fernando Perez <fperez@colorado.edu>
2245 2004-12-05 Fernando Perez <fperez@colorado.edu>
2242
2246
2243 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2247 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2244 warnings when tab-completion fails and triggers an exception.
2248 warnings when tab-completion fails and triggers an exception.
2245
2249
2246 2004-12-03 Fernando Perez <fperez@colorado.edu>
2250 2004-12-03 Fernando Perez <fperez@colorado.edu>
2247
2251
2248 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2252 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2249 be triggered when using 'run -p'. An incorrect option flag was
2253 be triggered when using 'run -p'. An incorrect option flag was
2250 being set ('d' instead of 'D').
2254 being set ('d' instead of 'D').
2251 (manpage): fix missing escaped \- sign.
2255 (manpage): fix missing escaped \- sign.
2252
2256
2253 2004-11-30 *** Released version 0.6.5
2257 2004-11-30 *** Released version 0.6.5
2254
2258
2255 2004-11-30 Fernando Perez <fperez@colorado.edu>
2259 2004-11-30 Fernando Perez <fperez@colorado.edu>
2256
2260
2257 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2261 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2258 setting with -d option.
2262 setting with -d option.
2259
2263
2260 * setup.py (docfiles): Fix problem where the doc glob I was using
2264 * setup.py (docfiles): Fix problem where the doc glob I was using
2261 was COMPLETELY BROKEN. It was giving the right files by pure
2265 was COMPLETELY BROKEN. It was giving the right files by pure
2262 accident, but failed once I tried to include ipython.el. Note:
2266 accident, but failed once I tried to include ipython.el. Note:
2263 glob() does NOT allow you to do exclusion on multiple endings!
2267 glob() does NOT allow you to do exclusion on multiple endings!
2264
2268
2265 2004-11-29 Fernando Perez <fperez@colorado.edu>
2269 2004-11-29 Fernando Perez <fperez@colorado.edu>
2266
2270
2267 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2271 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2268 the manpage as the source. Better formatting & consistency.
2272 the manpage as the source. Better formatting & consistency.
2269
2273
2270 * IPython/Magic.py (magic_run): Added new -d option, to run
2274 * IPython/Magic.py (magic_run): Added new -d option, to run
2271 scripts under the control of the python pdb debugger. Note that
2275 scripts under the control of the python pdb debugger. Note that
2272 this required changing the %prun option -d to -D, to avoid a clash
2276 this required changing the %prun option -d to -D, to avoid a clash
2273 (since %run must pass options to %prun, and getopt is too dumb to
2277 (since %run must pass options to %prun, and getopt is too dumb to
2274 handle options with string values with embedded spaces). Thanks
2278 handle options with string values with embedded spaces). Thanks
2275 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2279 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2276 (magic_who_ls): added type matching to %who and %whos, so that one
2280 (magic_who_ls): added type matching to %who and %whos, so that one
2277 can filter their output to only include variables of certain
2281 can filter their output to only include variables of certain
2278 types. Another suggestion by Matthew.
2282 types. Another suggestion by Matthew.
2279 (magic_whos): Added memory summaries in kb and Mb for arrays.
2283 (magic_whos): Added memory summaries in kb and Mb for arrays.
2280 (magic_who): Improve formatting (break lines every 9 vars).
2284 (magic_who): Improve formatting (break lines every 9 vars).
2281
2285
2282 2004-11-28 Fernando Perez <fperez@colorado.edu>
2286 2004-11-28 Fernando Perez <fperez@colorado.edu>
2283
2287
2284 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2288 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2285 cache when empty lines were present.
2289 cache when empty lines were present.
2286
2290
2287 2004-11-24 Fernando Perez <fperez@colorado.edu>
2291 2004-11-24 Fernando Perez <fperez@colorado.edu>
2288
2292
2289 * IPython/usage.py (__doc__): document the re-activated threading
2293 * IPython/usage.py (__doc__): document the re-activated threading
2290 options for WX and GTK.
2294 options for WX and GTK.
2291
2295
2292 2004-11-23 Fernando Perez <fperez@colorado.edu>
2296 2004-11-23 Fernando Perez <fperez@colorado.edu>
2293
2297
2294 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2298 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2295 the -wthread and -gthread options, along with a new -tk one to try
2299 the -wthread and -gthread options, along with a new -tk one to try
2296 and coordinate Tk threading with wx/gtk. The tk support is very
2300 and coordinate Tk threading with wx/gtk. The tk support is very
2297 platform dependent, since it seems to require Tcl and Tk to be
2301 platform dependent, since it seems to require Tcl and Tk to be
2298 built with threads (Fedora1/2 appears NOT to have it, but in
2302 built with threads (Fedora1/2 appears NOT to have it, but in
2299 Prabhu's Debian boxes it works OK). But even with some Tk
2303 Prabhu's Debian boxes it works OK). But even with some Tk
2300 limitations, this is a great improvement.
2304 limitations, this is a great improvement.
2301
2305
2302 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2306 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2303 info in user prompts. Patch by Prabhu.
2307 info in user prompts. Patch by Prabhu.
2304
2308
2305 2004-11-18 Fernando Perez <fperez@colorado.edu>
2309 2004-11-18 Fernando Perez <fperez@colorado.edu>
2306
2310
2307 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2311 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2308 EOFErrors and bail, to avoid infinite loops if a non-terminating
2312 EOFErrors and bail, to avoid infinite loops if a non-terminating
2309 file is fed into ipython. Patch submitted in issue 19 by user,
2313 file is fed into ipython. Patch submitted in issue 19 by user,
2310 many thanks.
2314 many thanks.
2311
2315
2312 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2316 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2313 autoquote/parens in continuation prompts, which can cause lots of
2317 autoquote/parens in continuation prompts, which can cause lots of
2314 problems. Closes roundup issue 20.
2318 problems. Closes roundup issue 20.
2315
2319
2316 2004-11-17 Fernando Perez <fperez@colorado.edu>
2320 2004-11-17 Fernando Perez <fperez@colorado.edu>
2317
2321
2318 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2322 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2319 reported as debian bug #280505. I'm not sure my local changelog
2323 reported as debian bug #280505. I'm not sure my local changelog
2320 entry has the proper debian format (Jack?).
2324 entry has the proper debian format (Jack?).
2321
2325
2322 2004-11-08 *** Released version 0.6.4
2326 2004-11-08 *** Released version 0.6.4
2323
2327
2324 2004-11-08 Fernando Perez <fperez@colorado.edu>
2328 2004-11-08 Fernando Perez <fperez@colorado.edu>
2325
2329
2326 * IPython/iplib.py (init_readline): Fix exit message for Windows
2330 * IPython/iplib.py (init_readline): Fix exit message for Windows
2327 when readline is active. Thanks to a report by Eric Jones
2331 when readline is active. Thanks to a report by Eric Jones
2328 <eric-AT-enthought.com>.
2332 <eric-AT-enthought.com>.
2329
2333
2330 2004-11-07 Fernando Perez <fperez@colorado.edu>
2334 2004-11-07 Fernando Perez <fperez@colorado.edu>
2331
2335
2332 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2336 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2333 sometimes seen by win2k/cygwin users.
2337 sometimes seen by win2k/cygwin users.
2334
2338
2335 2004-11-06 Fernando Perez <fperez@colorado.edu>
2339 2004-11-06 Fernando Perez <fperez@colorado.edu>
2336
2340
2337 * IPython/iplib.py (interact): Change the handling of %Exit from
2341 * IPython/iplib.py (interact): Change the handling of %Exit from
2338 trying to propagate a SystemExit to an internal ipython flag.
2342 trying to propagate a SystemExit to an internal ipython flag.
2339 This is less elegant than using Python's exception mechanism, but
2343 This is less elegant than using Python's exception mechanism, but
2340 I can't get that to work reliably with threads, so under -pylab
2344 I can't get that to work reliably with threads, so under -pylab
2341 %Exit was hanging IPython. Cross-thread exception handling is
2345 %Exit was hanging IPython. Cross-thread exception handling is
2342 really a bitch. Thaks to a bug report by Stephen Walton
2346 really a bitch. Thaks to a bug report by Stephen Walton
2343 <stephen.walton-AT-csun.edu>.
2347 <stephen.walton-AT-csun.edu>.
2344
2348
2345 2004-11-04 Fernando Perez <fperez@colorado.edu>
2349 2004-11-04 Fernando Perez <fperez@colorado.edu>
2346
2350
2347 * IPython/iplib.py (raw_input_original): store a pointer to the
2351 * IPython/iplib.py (raw_input_original): store a pointer to the
2348 true raw_input to harden against code which can modify it
2352 true raw_input to harden against code which can modify it
2349 (wx.py.PyShell does this and would otherwise crash ipython).
2353 (wx.py.PyShell does this and would otherwise crash ipython).
2350 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2354 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2351
2355
2352 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2356 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2353 Ctrl-C problem, which does not mess up the input line.
2357 Ctrl-C problem, which does not mess up the input line.
2354
2358
2355 2004-11-03 Fernando Perez <fperez@colorado.edu>
2359 2004-11-03 Fernando Perez <fperez@colorado.edu>
2356
2360
2357 * IPython/Release.py: Changed licensing to BSD, in all files.
2361 * IPython/Release.py: Changed licensing to BSD, in all files.
2358 (name): lowercase name for tarball/RPM release.
2362 (name): lowercase name for tarball/RPM release.
2359
2363
2360 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2364 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2361 use throughout ipython.
2365 use throughout ipython.
2362
2366
2363 * IPython/Magic.py (Magic._ofind): Switch to using the new
2367 * IPython/Magic.py (Magic._ofind): Switch to using the new
2364 OInspect.getdoc() function.
2368 OInspect.getdoc() function.
2365
2369
2366 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2370 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2367 of the line currently being canceled via Ctrl-C. It's extremely
2371 of the line currently being canceled via Ctrl-C. It's extremely
2368 ugly, but I don't know how to do it better (the problem is one of
2372 ugly, but I don't know how to do it better (the problem is one of
2369 handling cross-thread exceptions).
2373 handling cross-thread exceptions).
2370
2374
2371 2004-10-28 Fernando Perez <fperez@colorado.edu>
2375 2004-10-28 Fernando Perez <fperez@colorado.edu>
2372
2376
2373 * IPython/Shell.py (signal_handler): add signal handlers to trap
2377 * IPython/Shell.py (signal_handler): add signal handlers to trap
2374 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2378 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2375 report by Francesc Alted.
2379 report by Francesc Alted.
2376
2380
2377 2004-10-21 Fernando Perez <fperez@colorado.edu>
2381 2004-10-21 Fernando Perez <fperez@colorado.edu>
2378
2382
2379 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2383 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2380 to % for pysh syntax extensions.
2384 to % for pysh syntax extensions.
2381
2385
2382 2004-10-09 Fernando Perez <fperez@colorado.edu>
2386 2004-10-09 Fernando Perez <fperez@colorado.edu>
2383
2387
2384 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2388 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2385 arrays to print a more useful summary, without calling str(arr).
2389 arrays to print a more useful summary, without calling str(arr).
2386 This avoids the problem of extremely lengthy computations which
2390 This avoids the problem of extremely lengthy computations which
2387 occur if arr is large, and appear to the user as a system lockup
2391 occur if arr is large, and appear to the user as a system lockup
2388 with 100% cpu activity. After a suggestion by Kristian Sandberg
2392 with 100% cpu activity. After a suggestion by Kristian Sandberg
2389 <Kristian.Sandberg@colorado.edu>.
2393 <Kristian.Sandberg@colorado.edu>.
2390 (Magic.__init__): fix bug in global magic escapes not being
2394 (Magic.__init__): fix bug in global magic escapes not being
2391 correctly set.
2395 correctly set.
2392
2396
2393 2004-10-08 Fernando Perez <fperez@colorado.edu>
2397 2004-10-08 Fernando Perez <fperez@colorado.edu>
2394
2398
2395 * IPython/Magic.py (__license__): change to absolute imports of
2399 * IPython/Magic.py (__license__): change to absolute imports of
2396 ipython's own internal packages, to start adapting to the absolute
2400 ipython's own internal packages, to start adapting to the absolute
2397 import requirement of PEP-328.
2401 import requirement of PEP-328.
2398
2402
2399 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2403 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2400 files, and standardize author/license marks through the Release
2404 files, and standardize author/license marks through the Release
2401 module instead of having per/file stuff (except for files with
2405 module instead of having per/file stuff (except for files with
2402 particular licenses, like the MIT/PSF-licensed codes).
2406 particular licenses, like the MIT/PSF-licensed codes).
2403
2407
2404 * IPython/Debugger.py: remove dead code for python 2.1
2408 * IPython/Debugger.py: remove dead code for python 2.1
2405
2409
2406 2004-10-04 Fernando Perez <fperez@colorado.edu>
2410 2004-10-04 Fernando Perez <fperez@colorado.edu>
2407
2411
2408 * IPython/iplib.py (ipmagic): New function for accessing magics
2412 * IPython/iplib.py (ipmagic): New function for accessing magics
2409 via a normal python function call.
2413 via a normal python function call.
2410
2414
2411 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2415 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2412 from '@' to '%', to accomodate the new @decorator syntax of python
2416 from '@' to '%', to accomodate the new @decorator syntax of python
2413 2.4.
2417 2.4.
2414
2418
2415 2004-09-29 Fernando Perez <fperez@colorado.edu>
2419 2004-09-29 Fernando Perez <fperez@colorado.edu>
2416
2420
2417 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2421 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2418 matplotlib.use to prevent running scripts which try to switch
2422 matplotlib.use to prevent running scripts which try to switch
2419 interactive backends from within ipython. This will just crash
2423 interactive backends from within ipython. This will just crash
2420 the python interpreter, so we can't allow it (but a detailed error
2424 the python interpreter, so we can't allow it (but a detailed error
2421 is given to the user).
2425 is given to the user).
2422
2426
2423 2004-09-28 Fernando Perez <fperez@colorado.edu>
2427 2004-09-28 Fernando Perez <fperez@colorado.edu>
2424
2428
2425 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2429 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2426 matplotlib-related fixes so that using @run with non-matplotlib
2430 matplotlib-related fixes so that using @run with non-matplotlib
2427 scripts doesn't pop up spurious plot windows. This requires
2431 scripts doesn't pop up spurious plot windows. This requires
2428 matplotlib >= 0.63, where I had to make some changes as well.
2432 matplotlib >= 0.63, where I had to make some changes as well.
2429
2433
2430 * IPython/ipmaker.py (make_IPython): update version requirement to
2434 * IPython/ipmaker.py (make_IPython): update version requirement to
2431 python 2.2.
2435 python 2.2.
2432
2436
2433 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2437 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2434 banner arg for embedded customization.
2438 banner arg for embedded customization.
2435
2439
2436 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2440 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2437 explicit uses of __IP as the IPython's instance name. Now things
2441 explicit uses of __IP as the IPython's instance name. Now things
2438 are properly handled via the shell.name value. The actual code
2442 are properly handled via the shell.name value. The actual code
2439 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2443 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2440 is much better than before. I'll clean things completely when the
2444 is much better than before. I'll clean things completely when the
2441 magic stuff gets a real overhaul.
2445 magic stuff gets a real overhaul.
2442
2446
2443 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2447 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2444 minor changes to debian dir.
2448 minor changes to debian dir.
2445
2449
2446 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2450 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2447 pointer to the shell itself in the interactive namespace even when
2451 pointer to the shell itself in the interactive namespace even when
2448 a user-supplied dict is provided. This is needed for embedding
2452 a user-supplied dict is provided. This is needed for embedding
2449 purposes (found by tests with Michel Sanner).
2453 purposes (found by tests with Michel Sanner).
2450
2454
2451 2004-09-27 Fernando Perez <fperez@colorado.edu>
2455 2004-09-27 Fernando Perez <fperez@colorado.edu>
2452
2456
2453 * IPython/UserConfig/ipythonrc: remove []{} from
2457 * IPython/UserConfig/ipythonrc: remove []{} from
2454 readline_remove_delims, so that things like [modname.<TAB> do
2458 readline_remove_delims, so that things like [modname.<TAB> do
2455 proper completion. This disables [].TAB, but that's a less common
2459 proper completion. This disables [].TAB, but that's a less common
2456 case than module names in list comprehensions, for example.
2460 case than module names in list comprehensions, for example.
2457 Thanks to a report by Andrea Riciputi.
2461 Thanks to a report by Andrea Riciputi.
2458
2462
2459 2004-09-09 Fernando Perez <fperez@colorado.edu>
2463 2004-09-09 Fernando Perez <fperez@colorado.edu>
2460
2464
2461 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2465 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2462 blocking problems in win32 and osx. Fix by John.
2466 blocking problems in win32 and osx. Fix by John.
2463
2467
2464 2004-09-08 Fernando Perez <fperez@colorado.edu>
2468 2004-09-08 Fernando Perez <fperez@colorado.edu>
2465
2469
2466 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2470 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2467 for Win32 and OSX. Fix by John Hunter.
2471 for Win32 and OSX. Fix by John Hunter.
2468
2472
2469 2004-08-30 *** Released version 0.6.3
2473 2004-08-30 *** Released version 0.6.3
2470
2474
2471 2004-08-30 Fernando Perez <fperez@colorado.edu>
2475 2004-08-30 Fernando Perez <fperez@colorado.edu>
2472
2476
2473 * setup.py (isfile): Add manpages to list of dependent files to be
2477 * setup.py (isfile): Add manpages to list of dependent files to be
2474 updated.
2478 updated.
2475
2479
2476 2004-08-27 Fernando Perez <fperez@colorado.edu>
2480 2004-08-27 Fernando Perez <fperez@colorado.edu>
2477
2481
2478 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2482 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2479 for now. They don't really work with standalone WX/GTK code
2483 for now. They don't really work with standalone WX/GTK code
2480 (though matplotlib IS working fine with both of those backends).
2484 (though matplotlib IS working fine with both of those backends).
2481 This will neeed much more testing. I disabled most things with
2485 This will neeed much more testing. I disabled most things with
2482 comments, so turning it back on later should be pretty easy.
2486 comments, so turning it back on later should be pretty easy.
2483
2487
2484 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2488 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2485 autocalling of expressions like r'foo', by modifying the line
2489 autocalling of expressions like r'foo', by modifying the line
2486 split regexp. Closes
2490 split regexp. Closes
2487 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2491 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2488 Riley <ipythonbugs-AT-sabi.net>.
2492 Riley <ipythonbugs-AT-sabi.net>.
2489 (InteractiveShell.mainloop): honor --nobanner with banner
2493 (InteractiveShell.mainloop): honor --nobanner with banner
2490 extensions.
2494 extensions.
2491
2495
2492 * IPython/Shell.py: Significant refactoring of all classes, so
2496 * IPython/Shell.py: Significant refactoring of all classes, so
2493 that we can really support ALL matplotlib backends and threading
2497 that we can really support ALL matplotlib backends and threading
2494 models (John spotted a bug with Tk which required this). Now we
2498 models (John spotted a bug with Tk which required this). Now we
2495 should support single-threaded, WX-threads and GTK-threads, both
2499 should support single-threaded, WX-threads and GTK-threads, both
2496 for generic code and for matplotlib.
2500 for generic code and for matplotlib.
2497
2501
2498 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2502 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2499 -pylab, to simplify things for users. Will also remove the pylab
2503 -pylab, to simplify things for users. Will also remove the pylab
2500 profile, since now all of matplotlib configuration is directly
2504 profile, since now all of matplotlib configuration is directly
2501 handled here. This also reduces startup time.
2505 handled here. This also reduces startup time.
2502
2506
2503 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2507 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2504 shell wasn't being correctly called. Also in IPShellWX.
2508 shell wasn't being correctly called. Also in IPShellWX.
2505
2509
2506 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2510 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2507 fine-tune banner.
2511 fine-tune banner.
2508
2512
2509 * IPython/numutils.py (spike): Deprecate these spike functions,
2513 * IPython/numutils.py (spike): Deprecate these spike functions,
2510 delete (long deprecated) gnuplot_exec handler.
2514 delete (long deprecated) gnuplot_exec handler.
2511
2515
2512 2004-08-26 Fernando Perez <fperez@colorado.edu>
2516 2004-08-26 Fernando Perez <fperez@colorado.edu>
2513
2517
2514 * ipython.1: Update for threading options, plus some others which
2518 * ipython.1: Update for threading options, plus some others which
2515 were missing.
2519 were missing.
2516
2520
2517 * IPython/ipmaker.py (__call__): Added -wthread option for
2521 * IPython/ipmaker.py (__call__): Added -wthread option for
2518 wxpython thread handling. Make sure threading options are only
2522 wxpython thread handling. Make sure threading options are only
2519 valid at the command line.
2523 valid at the command line.
2520
2524
2521 * scripts/ipython: moved shell selection into a factory function
2525 * scripts/ipython: moved shell selection into a factory function
2522 in Shell.py, to keep the starter script to a minimum.
2526 in Shell.py, to keep the starter script to a minimum.
2523
2527
2524 2004-08-25 Fernando Perez <fperez@colorado.edu>
2528 2004-08-25 Fernando Perez <fperez@colorado.edu>
2525
2529
2526 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2530 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2527 John. Along with some recent changes he made to matplotlib, the
2531 John. Along with some recent changes he made to matplotlib, the
2528 next versions of both systems should work very well together.
2532 next versions of both systems should work very well together.
2529
2533
2530 2004-08-24 Fernando Perez <fperez@colorado.edu>
2534 2004-08-24 Fernando Perez <fperez@colorado.edu>
2531
2535
2532 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2536 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2533 tried to switch the profiling to using hotshot, but I'm getting
2537 tried to switch the profiling to using hotshot, but I'm getting
2534 strange errors from prof.runctx() there. I may be misreading the
2538 strange errors from prof.runctx() there. I may be misreading the
2535 docs, but it looks weird. For now the profiling code will
2539 docs, but it looks weird. For now the profiling code will
2536 continue to use the standard profiler.
2540 continue to use the standard profiler.
2537
2541
2538 2004-08-23 Fernando Perez <fperez@colorado.edu>
2542 2004-08-23 Fernando Perez <fperez@colorado.edu>
2539
2543
2540 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2544 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2541 threaded shell, by John Hunter. It's not quite ready yet, but
2545 threaded shell, by John Hunter. It's not quite ready yet, but
2542 close.
2546 close.
2543
2547
2544 2004-08-22 Fernando Perez <fperez@colorado.edu>
2548 2004-08-22 Fernando Perez <fperez@colorado.edu>
2545
2549
2546 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2550 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2547 in Magic and ultraTB.
2551 in Magic and ultraTB.
2548
2552
2549 * ipython.1: document threading options in manpage.
2553 * ipython.1: document threading options in manpage.
2550
2554
2551 * scripts/ipython: Changed name of -thread option to -gthread,
2555 * scripts/ipython: Changed name of -thread option to -gthread,
2552 since this is GTK specific. I want to leave the door open for a
2556 since this is GTK specific. I want to leave the door open for a
2553 -wthread option for WX, which will most likely be necessary. This
2557 -wthread option for WX, which will most likely be necessary. This
2554 change affects usage and ipmaker as well.
2558 change affects usage and ipmaker as well.
2555
2559
2556 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2560 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2557 handle the matplotlib shell issues. Code by John Hunter
2561 handle the matplotlib shell issues. Code by John Hunter
2558 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2562 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2559 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2563 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2560 broken (and disabled for end users) for now, but it puts the
2564 broken (and disabled for end users) for now, but it puts the
2561 infrastructure in place.
2565 infrastructure in place.
2562
2566
2563 2004-08-21 Fernando Perez <fperez@colorado.edu>
2567 2004-08-21 Fernando Perez <fperez@colorado.edu>
2564
2568
2565 * ipythonrc-pylab: Add matplotlib support.
2569 * ipythonrc-pylab: Add matplotlib support.
2566
2570
2567 * matplotlib_config.py: new files for matplotlib support, part of
2571 * matplotlib_config.py: new files for matplotlib support, part of
2568 the pylab profile.
2572 the pylab profile.
2569
2573
2570 * IPython/usage.py (__doc__): documented the threading options.
2574 * IPython/usage.py (__doc__): documented the threading options.
2571
2575
2572 2004-08-20 Fernando Perez <fperez@colorado.edu>
2576 2004-08-20 Fernando Perez <fperez@colorado.edu>
2573
2577
2574 * ipython: Modified the main calling routine to handle the -thread
2578 * ipython: Modified the main calling routine to handle the -thread
2575 and -mpthread options. This needs to be done as a top-level hack,
2579 and -mpthread options. This needs to be done as a top-level hack,
2576 because it determines which class to instantiate for IPython
2580 because it determines which class to instantiate for IPython
2577 itself.
2581 itself.
2578
2582
2579 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2583 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2580 classes to support multithreaded GTK operation without blocking,
2584 classes to support multithreaded GTK operation without blocking,
2581 and matplotlib with all backends. This is a lot of still very
2585 and matplotlib with all backends. This is a lot of still very
2582 experimental code, and threads are tricky. So it may still have a
2586 experimental code, and threads are tricky. So it may still have a
2583 few rough edges... This code owes a lot to
2587 few rough edges... This code owes a lot to
2584 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2588 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2585 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2589 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2586 to John Hunter for all the matplotlib work.
2590 to John Hunter for all the matplotlib work.
2587
2591
2588 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2592 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2589 options for gtk thread and matplotlib support.
2593 options for gtk thread and matplotlib support.
2590
2594
2591 2004-08-16 Fernando Perez <fperez@colorado.edu>
2595 2004-08-16 Fernando Perez <fperez@colorado.edu>
2592
2596
2593 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2597 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2594 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2598 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2595 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2599 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2596
2600
2597 2004-08-11 Fernando Perez <fperez@colorado.edu>
2601 2004-08-11 Fernando Perez <fperez@colorado.edu>
2598
2602
2599 * setup.py (isfile): Fix build so documentation gets updated for
2603 * setup.py (isfile): Fix build so documentation gets updated for
2600 rpms (it was only done for .tgz builds).
2604 rpms (it was only done for .tgz builds).
2601
2605
2602 2004-08-10 Fernando Perez <fperez@colorado.edu>
2606 2004-08-10 Fernando Perez <fperez@colorado.edu>
2603
2607
2604 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2608 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2605
2609
2606 * iplib.py : Silence syntax error exceptions in tab-completion.
2610 * iplib.py : Silence syntax error exceptions in tab-completion.
2607
2611
2608 2004-08-05 Fernando Perez <fperez@colorado.edu>
2612 2004-08-05 Fernando Perez <fperez@colorado.edu>
2609
2613
2610 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2614 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2611 'color off' mark for continuation prompts. This was causing long
2615 'color off' mark for continuation prompts. This was causing long
2612 continuation lines to mis-wrap.
2616 continuation lines to mis-wrap.
2613
2617
2614 2004-08-01 Fernando Perez <fperez@colorado.edu>
2618 2004-08-01 Fernando Perez <fperez@colorado.edu>
2615
2619
2616 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2620 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2617 for building ipython to be a parameter. All this is necessary
2621 for building ipython to be a parameter. All this is necessary
2618 right now to have a multithreaded version, but this insane
2622 right now to have a multithreaded version, but this insane
2619 non-design will be cleaned up soon. For now, it's a hack that
2623 non-design will be cleaned up soon. For now, it's a hack that
2620 works.
2624 works.
2621
2625
2622 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2626 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2623 args in various places. No bugs so far, but it's a dangerous
2627 args in various places. No bugs so far, but it's a dangerous
2624 practice.
2628 practice.
2625
2629
2626 2004-07-31 Fernando Perez <fperez@colorado.edu>
2630 2004-07-31 Fernando Perez <fperez@colorado.edu>
2627
2631
2628 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2632 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2629 fix completion of files with dots in their names under most
2633 fix completion of files with dots in their names under most
2630 profiles (pysh was OK because the completion order is different).
2634 profiles (pysh was OK because the completion order is different).
2631
2635
2632 2004-07-27 Fernando Perez <fperez@colorado.edu>
2636 2004-07-27 Fernando Perez <fperez@colorado.edu>
2633
2637
2634 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2638 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2635 keywords manually, b/c the one in keyword.py was removed in python
2639 keywords manually, b/c the one in keyword.py was removed in python
2636 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2640 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2637 This is NOT a bug under python 2.3 and earlier.
2641 This is NOT a bug under python 2.3 and earlier.
2638
2642
2639 2004-07-26 Fernando Perez <fperez@colorado.edu>
2643 2004-07-26 Fernando Perez <fperez@colorado.edu>
2640
2644
2641 * IPython/ultraTB.py (VerboseTB.text): Add another
2645 * IPython/ultraTB.py (VerboseTB.text): Add another
2642 linecache.checkcache() call to try to prevent inspect.py from
2646 linecache.checkcache() call to try to prevent inspect.py from
2643 crashing under python 2.3. I think this fixes
2647 crashing under python 2.3. I think this fixes
2644 http://www.scipy.net/roundup/ipython/issue17.
2648 http://www.scipy.net/roundup/ipython/issue17.
2645
2649
2646 2004-07-26 *** Released version 0.6.2
2650 2004-07-26 *** Released version 0.6.2
2647
2651
2648 2004-07-26 Fernando Perez <fperez@colorado.edu>
2652 2004-07-26 Fernando Perez <fperez@colorado.edu>
2649
2653
2650 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2654 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2651 fail for any number.
2655 fail for any number.
2652 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2656 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2653 empty bookmarks.
2657 empty bookmarks.
2654
2658
2655 2004-07-26 *** Released version 0.6.1
2659 2004-07-26 *** Released version 0.6.1
2656
2660
2657 2004-07-26 Fernando Perez <fperez@colorado.edu>
2661 2004-07-26 Fernando Perez <fperez@colorado.edu>
2658
2662
2659 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2663 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2660
2664
2661 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2665 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2662 escaping '()[]{}' in filenames.
2666 escaping '()[]{}' in filenames.
2663
2667
2664 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2668 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2665 Python 2.2 users who lack a proper shlex.split.
2669 Python 2.2 users who lack a proper shlex.split.
2666
2670
2667 2004-07-19 Fernando Perez <fperez@colorado.edu>
2671 2004-07-19 Fernando Perez <fperez@colorado.edu>
2668
2672
2669 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2673 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2670 for reading readline's init file. I follow the normal chain:
2674 for reading readline's init file. I follow the normal chain:
2671 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2675 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2672 report by Mike Heeter. This closes
2676 report by Mike Heeter. This closes
2673 http://www.scipy.net/roundup/ipython/issue16.
2677 http://www.scipy.net/roundup/ipython/issue16.
2674
2678
2675 2004-07-18 Fernando Perez <fperez@colorado.edu>
2679 2004-07-18 Fernando Perez <fperez@colorado.edu>
2676
2680
2677 * IPython/iplib.py (__init__): Add better handling of '\' under
2681 * IPython/iplib.py (__init__): Add better handling of '\' under
2678 Win32 for filenames. After a patch by Ville.
2682 Win32 for filenames. After a patch by Ville.
2679
2683
2680 2004-07-17 Fernando Perez <fperez@colorado.edu>
2684 2004-07-17 Fernando Perez <fperez@colorado.edu>
2681
2685
2682 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2686 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2683 autocalling would be triggered for 'foo is bar' if foo is
2687 autocalling would be triggered for 'foo is bar' if foo is
2684 callable. I also cleaned up the autocall detection code to use a
2688 callable. I also cleaned up the autocall detection code to use a
2685 regexp, which is faster. Bug reported by Alexander Schmolck.
2689 regexp, which is faster. Bug reported by Alexander Schmolck.
2686
2690
2687 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2691 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2688 '?' in them would confuse the help system. Reported by Alex
2692 '?' in them would confuse the help system. Reported by Alex
2689 Schmolck.
2693 Schmolck.
2690
2694
2691 2004-07-16 Fernando Perez <fperez@colorado.edu>
2695 2004-07-16 Fernando Perez <fperez@colorado.edu>
2692
2696
2693 * IPython/GnuplotInteractive.py (__all__): added plot2.
2697 * IPython/GnuplotInteractive.py (__all__): added plot2.
2694
2698
2695 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2699 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2696 plotting dictionaries, lists or tuples of 1d arrays.
2700 plotting dictionaries, lists or tuples of 1d arrays.
2697
2701
2698 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2702 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2699 optimizations.
2703 optimizations.
2700
2704
2701 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2705 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2702 the information which was there from Janko's original IPP code:
2706 the information which was there from Janko's original IPP code:
2703
2707
2704 03.05.99 20:53 porto.ifm.uni-kiel.de
2708 03.05.99 20:53 porto.ifm.uni-kiel.de
2705 --Started changelog.
2709 --Started changelog.
2706 --make clear do what it say it does
2710 --make clear do what it say it does
2707 --added pretty output of lines from inputcache
2711 --added pretty output of lines from inputcache
2708 --Made Logger a mixin class, simplifies handling of switches
2712 --Made Logger a mixin class, simplifies handling of switches
2709 --Added own completer class. .string<TAB> expands to last history
2713 --Added own completer class. .string<TAB> expands to last history
2710 line which starts with string. The new expansion is also present
2714 line which starts with string. The new expansion is also present
2711 with Ctrl-r from the readline library. But this shows, who this
2715 with Ctrl-r from the readline library. But this shows, who this
2712 can be done for other cases.
2716 can be done for other cases.
2713 --Added convention that all shell functions should accept a
2717 --Added convention that all shell functions should accept a
2714 parameter_string This opens the door for different behaviour for
2718 parameter_string This opens the door for different behaviour for
2715 each function. @cd is a good example of this.
2719 each function. @cd is a good example of this.
2716
2720
2717 04.05.99 12:12 porto.ifm.uni-kiel.de
2721 04.05.99 12:12 porto.ifm.uni-kiel.de
2718 --added logfile rotation
2722 --added logfile rotation
2719 --added new mainloop method which freezes first the namespace
2723 --added new mainloop method which freezes first the namespace
2720
2724
2721 07.05.99 21:24 porto.ifm.uni-kiel.de
2725 07.05.99 21:24 porto.ifm.uni-kiel.de
2722 --added the docreader classes. Now there is a help system.
2726 --added the docreader classes. Now there is a help system.
2723 -This is only a first try. Currently it's not easy to put new
2727 -This is only a first try. Currently it's not easy to put new
2724 stuff in the indices. But this is the way to go. Info would be
2728 stuff in the indices. But this is the way to go. Info would be
2725 better, but HTML is every where and not everybody has an info
2729 better, but HTML is every where and not everybody has an info
2726 system installed and it's not so easy to change html-docs to info.
2730 system installed and it's not so easy to change html-docs to info.
2727 --added global logfile option
2731 --added global logfile option
2728 --there is now a hook for object inspection method pinfo needs to
2732 --there is now a hook for object inspection method pinfo needs to
2729 be provided for this. Can be reached by two '??'.
2733 be provided for this. Can be reached by two '??'.
2730
2734
2731 08.05.99 20:51 porto.ifm.uni-kiel.de
2735 08.05.99 20:51 porto.ifm.uni-kiel.de
2732 --added a README
2736 --added a README
2733 --bug in rc file. Something has changed so functions in the rc
2737 --bug in rc file. Something has changed so functions in the rc
2734 file need to reference the shell and not self. Not clear if it's a
2738 file need to reference the shell and not self. Not clear if it's a
2735 bug or feature.
2739 bug or feature.
2736 --changed rc file for new behavior
2740 --changed rc file for new behavior
2737
2741
2738 2004-07-15 Fernando Perez <fperez@colorado.edu>
2742 2004-07-15 Fernando Perez <fperez@colorado.edu>
2739
2743
2740 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2744 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2741 cache was falling out of sync in bizarre manners when multi-line
2745 cache was falling out of sync in bizarre manners when multi-line
2742 input was present. Minor optimizations and cleanup.
2746 input was present. Minor optimizations and cleanup.
2743
2747
2744 (Logger): Remove old Changelog info for cleanup. This is the
2748 (Logger): Remove old Changelog info for cleanup. This is the
2745 information which was there from Janko's original code:
2749 information which was there from Janko's original code:
2746
2750
2747 Changes to Logger: - made the default log filename a parameter
2751 Changes to Logger: - made the default log filename a parameter
2748
2752
2749 - put a check for lines beginning with !@? in log(). Needed
2753 - put a check for lines beginning with !@? in log(). Needed
2750 (even if the handlers properly log their lines) for mid-session
2754 (even if the handlers properly log their lines) for mid-session
2751 logging activation to work properly. Without this, lines logged
2755 logging activation to work properly. Without this, lines logged
2752 in mid session, which get read from the cache, would end up
2756 in mid session, which get read from the cache, would end up
2753 'bare' (with !@? in the open) in the log. Now they are caught
2757 'bare' (with !@? in the open) in the log. Now they are caught
2754 and prepended with a #.
2758 and prepended with a #.
2755
2759
2756 * IPython/iplib.py (InteractiveShell.init_readline): added check
2760 * IPython/iplib.py (InteractiveShell.init_readline): added check
2757 in case MagicCompleter fails to be defined, so we don't crash.
2761 in case MagicCompleter fails to be defined, so we don't crash.
2758
2762
2759 2004-07-13 Fernando Perez <fperez@colorado.edu>
2763 2004-07-13 Fernando Perez <fperez@colorado.edu>
2760
2764
2761 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2765 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2762 of EPS if the requested filename ends in '.eps'.
2766 of EPS if the requested filename ends in '.eps'.
2763
2767
2764 2004-07-04 Fernando Perez <fperez@colorado.edu>
2768 2004-07-04 Fernando Perez <fperez@colorado.edu>
2765
2769
2766 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2770 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2767 escaping of quotes when calling the shell.
2771 escaping of quotes when calling the shell.
2768
2772
2769 2004-07-02 Fernando Perez <fperez@colorado.edu>
2773 2004-07-02 Fernando Perez <fperez@colorado.edu>
2770
2774
2771 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2775 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2772 gettext not working because we were clobbering '_'. Fixes
2776 gettext not working because we were clobbering '_'. Fixes
2773 http://www.scipy.net/roundup/ipython/issue6.
2777 http://www.scipy.net/roundup/ipython/issue6.
2774
2778
2775 2004-07-01 Fernando Perez <fperez@colorado.edu>
2779 2004-07-01 Fernando Perez <fperez@colorado.edu>
2776
2780
2777 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2781 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2778 into @cd. Patch by Ville.
2782 into @cd. Patch by Ville.
2779
2783
2780 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2784 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2781 new function to store things after ipmaker runs. Patch by Ville.
2785 new function to store things after ipmaker runs. Patch by Ville.
2782 Eventually this will go away once ipmaker is removed and the class
2786 Eventually this will go away once ipmaker is removed and the class
2783 gets cleaned up, but for now it's ok. Key functionality here is
2787 gets cleaned up, but for now it's ok. Key functionality here is
2784 the addition of the persistent storage mechanism, a dict for
2788 the addition of the persistent storage mechanism, a dict for
2785 keeping data across sessions (for now just bookmarks, but more can
2789 keeping data across sessions (for now just bookmarks, but more can
2786 be implemented later).
2790 be implemented later).
2787
2791
2788 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2792 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2789 persistent across sections. Patch by Ville, I modified it
2793 persistent across sections. Patch by Ville, I modified it
2790 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2794 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2791 added a '-l' option to list all bookmarks.
2795 added a '-l' option to list all bookmarks.
2792
2796
2793 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2797 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2794 center for cleanup. Registered with atexit.register(). I moved
2798 center for cleanup. Registered with atexit.register(). I moved
2795 here the old exit_cleanup(). After a patch by Ville.
2799 here the old exit_cleanup(). After a patch by Ville.
2796
2800
2797 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2801 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2798 characters in the hacked shlex_split for python 2.2.
2802 characters in the hacked shlex_split for python 2.2.
2799
2803
2800 * IPython/iplib.py (file_matches): more fixes to filenames with
2804 * IPython/iplib.py (file_matches): more fixes to filenames with
2801 whitespace in them. It's not perfect, but limitations in python's
2805 whitespace in them. It's not perfect, but limitations in python's
2802 readline make it impossible to go further.
2806 readline make it impossible to go further.
2803
2807
2804 2004-06-29 Fernando Perez <fperez@colorado.edu>
2808 2004-06-29 Fernando Perez <fperez@colorado.edu>
2805
2809
2806 * IPython/iplib.py (file_matches): escape whitespace correctly in
2810 * IPython/iplib.py (file_matches): escape whitespace correctly in
2807 filename completions. Bug reported by Ville.
2811 filename completions. Bug reported by Ville.
2808
2812
2809 2004-06-28 Fernando Perez <fperez@colorado.edu>
2813 2004-06-28 Fernando Perez <fperez@colorado.edu>
2810
2814
2811 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2815 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2812 the history file will be called 'history-PROFNAME' (or just
2816 the history file will be called 'history-PROFNAME' (or just
2813 'history' if no profile is loaded). I was getting annoyed at
2817 'history' if no profile is loaded). I was getting annoyed at
2814 getting my Numerical work history clobbered by pysh sessions.
2818 getting my Numerical work history clobbered by pysh sessions.
2815
2819
2816 * IPython/iplib.py (InteractiveShell.__init__): Internal
2820 * IPython/iplib.py (InteractiveShell.__init__): Internal
2817 getoutputerror() function so that we can honor the system_verbose
2821 getoutputerror() function so that we can honor the system_verbose
2818 flag for _all_ system calls. I also added escaping of #
2822 flag for _all_ system calls. I also added escaping of #
2819 characters here to avoid confusing Itpl.
2823 characters here to avoid confusing Itpl.
2820
2824
2821 * IPython/Magic.py (shlex_split): removed call to shell in
2825 * IPython/Magic.py (shlex_split): removed call to shell in
2822 parse_options and replaced it with shlex.split(). The annoying
2826 parse_options and replaced it with shlex.split(). The annoying
2823 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2827 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2824 to backport it from 2.3, with several frail hacks (the shlex
2828 to backport it from 2.3, with several frail hacks (the shlex
2825 module is rather limited in 2.2). Thanks to a suggestion by Ville
2829 module is rather limited in 2.2). Thanks to a suggestion by Ville
2826 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2830 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2827 problem.
2831 problem.
2828
2832
2829 (Magic.magic_system_verbose): new toggle to print the actual
2833 (Magic.magic_system_verbose): new toggle to print the actual
2830 system calls made by ipython. Mainly for debugging purposes.
2834 system calls made by ipython. Mainly for debugging purposes.
2831
2835
2832 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2836 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2833 doesn't support persistence. Reported (and fix suggested) by
2837 doesn't support persistence. Reported (and fix suggested) by
2834 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2838 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2835
2839
2836 2004-06-26 Fernando Perez <fperez@colorado.edu>
2840 2004-06-26 Fernando Perez <fperez@colorado.edu>
2837
2841
2838 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2842 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2839 continue prompts.
2843 continue prompts.
2840
2844
2841 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2845 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2842 function (basically a big docstring) and a few more things here to
2846 function (basically a big docstring) and a few more things here to
2843 speedup startup. pysh.py is now very lightweight. We want because
2847 speedup startup. pysh.py is now very lightweight. We want because
2844 it gets execfile'd, while InterpreterExec gets imported, so
2848 it gets execfile'd, while InterpreterExec gets imported, so
2845 byte-compilation saves time.
2849 byte-compilation saves time.
2846
2850
2847 2004-06-25 Fernando Perez <fperez@colorado.edu>
2851 2004-06-25 Fernando Perez <fperez@colorado.edu>
2848
2852
2849 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2853 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2850 -NUM', which was recently broken.
2854 -NUM', which was recently broken.
2851
2855
2852 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2856 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2853 in multi-line input (but not !!, which doesn't make sense there).
2857 in multi-line input (but not !!, which doesn't make sense there).
2854
2858
2855 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2859 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2856 It's just too useful, and people can turn it off in the less
2860 It's just too useful, and people can turn it off in the less
2857 common cases where it's a problem.
2861 common cases where it's a problem.
2858
2862
2859 2004-06-24 Fernando Perez <fperez@colorado.edu>
2863 2004-06-24 Fernando Perez <fperez@colorado.edu>
2860
2864
2861 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2865 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2862 special syntaxes (like alias calling) is now allied in multi-line
2866 special syntaxes (like alias calling) is now allied in multi-line
2863 input. This is still _very_ experimental, but it's necessary for
2867 input. This is still _very_ experimental, but it's necessary for
2864 efficient shell usage combining python looping syntax with system
2868 efficient shell usage combining python looping syntax with system
2865 calls. For now it's restricted to aliases, I don't think it
2869 calls. For now it's restricted to aliases, I don't think it
2866 really even makes sense to have this for magics.
2870 really even makes sense to have this for magics.
2867
2871
2868 2004-06-23 Fernando Perez <fperez@colorado.edu>
2872 2004-06-23 Fernando Perez <fperez@colorado.edu>
2869
2873
2870 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2874 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2871 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2875 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2872
2876
2873 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2877 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2874 extensions under Windows (after code sent by Gary Bishop). The
2878 extensions under Windows (after code sent by Gary Bishop). The
2875 extensions considered 'executable' are stored in IPython's rc
2879 extensions considered 'executable' are stored in IPython's rc
2876 structure as win_exec_ext.
2880 structure as win_exec_ext.
2877
2881
2878 * IPython/genutils.py (shell): new function, like system() but
2882 * IPython/genutils.py (shell): new function, like system() but
2879 without return value. Very useful for interactive shell work.
2883 without return value. Very useful for interactive shell work.
2880
2884
2881 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2885 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2882 delete aliases.
2886 delete aliases.
2883
2887
2884 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2888 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2885 sure that the alias table doesn't contain python keywords.
2889 sure that the alias table doesn't contain python keywords.
2886
2890
2887 2004-06-21 Fernando Perez <fperez@colorado.edu>
2891 2004-06-21 Fernando Perez <fperez@colorado.edu>
2888
2892
2889 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2893 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2890 non-existent items are found in $PATH. Reported by Thorsten.
2894 non-existent items are found in $PATH. Reported by Thorsten.
2891
2895
2892 2004-06-20 Fernando Perez <fperez@colorado.edu>
2896 2004-06-20 Fernando Perez <fperez@colorado.edu>
2893
2897
2894 * IPython/iplib.py (complete): modified the completer so that the
2898 * IPython/iplib.py (complete): modified the completer so that the
2895 order of priorities can be easily changed at runtime.
2899 order of priorities can be easily changed at runtime.
2896
2900
2897 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2901 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2898 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2902 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2899
2903
2900 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2904 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2901 expand Python variables prepended with $ in all system calls. The
2905 expand Python variables prepended with $ in all system calls. The
2902 same was done to InteractiveShell.handle_shell_escape. Now all
2906 same was done to InteractiveShell.handle_shell_escape. Now all
2903 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2907 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2904 expansion of python variables and expressions according to the
2908 expansion of python variables and expressions according to the
2905 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2909 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2906
2910
2907 Though PEP-215 has been rejected, a similar (but simpler) one
2911 Though PEP-215 has been rejected, a similar (but simpler) one
2908 seems like it will go into Python 2.4, PEP-292 -
2912 seems like it will go into Python 2.4, PEP-292 -
2909 http://www.python.org/peps/pep-0292.html.
2913 http://www.python.org/peps/pep-0292.html.
2910
2914
2911 I'll keep the full syntax of PEP-215, since IPython has since the
2915 I'll keep the full syntax of PEP-215, since IPython has since the
2912 start used Ka-Ping Yee's reference implementation discussed there
2916 start used Ka-Ping Yee's reference implementation discussed there
2913 (Itpl), and I actually like the powerful semantics it offers.
2917 (Itpl), and I actually like the powerful semantics it offers.
2914
2918
2915 In order to access normal shell variables, the $ has to be escaped
2919 In order to access normal shell variables, the $ has to be escaped
2916 via an extra $. For example:
2920 via an extra $. For example:
2917
2921
2918 In [7]: PATH='a python variable'
2922 In [7]: PATH='a python variable'
2919
2923
2920 In [8]: !echo $PATH
2924 In [8]: !echo $PATH
2921 a python variable
2925 a python variable
2922
2926
2923 In [9]: !echo $$PATH
2927 In [9]: !echo $$PATH
2924 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2928 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2925
2929
2926 (Magic.parse_options): escape $ so the shell doesn't evaluate
2930 (Magic.parse_options): escape $ so the shell doesn't evaluate
2927 things prematurely.
2931 things prematurely.
2928
2932
2929 * IPython/iplib.py (InteractiveShell.call_alias): added the
2933 * IPython/iplib.py (InteractiveShell.call_alias): added the
2930 ability for aliases to expand python variables via $.
2934 ability for aliases to expand python variables via $.
2931
2935
2932 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2936 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2933 system, now there's a @rehash/@rehashx pair of magics. These work
2937 system, now there's a @rehash/@rehashx pair of magics. These work
2934 like the csh rehash command, and can be invoked at any time. They
2938 like the csh rehash command, and can be invoked at any time. They
2935 build a table of aliases to everything in the user's $PATH
2939 build a table of aliases to everything in the user's $PATH
2936 (@rehash uses everything, @rehashx is slower but only adds
2940 (@rehash uses everything, @rehashx is slower but only adds
2937 executable files). With this, the pysh.py-based shell profile can
2941 executable files). With this, the pysh.py-based shell profile can
2938 now simply call rehash upon startup, and full access to all
2942 now simply call rehash upon startup, and full access to all
2939 programs in the user's path is obtained.
2943 programs in the user's path is obtained.
2940
2944
2941 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2945 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2942 functionality is now fully in place. I removed the old dynamic
2946 functionality is now fully in place. I removed the old dynamic
2943 code generation based approach, in favor of a much lighter one
2947 code generation based approach, in favor of a much lighter one
2944 based on a simple dict. The advantage is that this allows me to
2948 based on a simple dict. The advantage is that this allows me to
2945 now have thousands of aliases with negligible cost (unthinkable
2949 now have thousands of aliases with negligible cost (unthinkable
2946 with the old system).
2950 with the old system).
2947
2951
2948 2004-06-19 Fernando Perez <fperez@colorado.edu>
2952 2004-06-19 Fernando Perez <fperez@colorado.edu>
2949
2953
2950 * IPython/iplib.py (__init__): extended MagicCompleter class to
2954 * IPython/iplib.py (__init__): extended MagicCompleter class to
2951 also complete (last in priority) on user aliases.
2955 also complete (last in priority) on user aliases.
2952
2956
2953 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2957 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2954 call to eval.
2958 call to eval.
2955 (ItplNS.__init__): Added a new class which functions like Itpl,
2959 (ItplNS.__init__): Added a new class which functions like Itpl,
2956 but allows configuring the namespace for the evaluation to occur
2960 but allows configuring the namespace for the evaluation to occur
2957 in.
2961 in.
2958
2962
2959 2004-06-18 Fernando Perez <fperez@colorado.edu>
2963 2004-06-18 Fernando Perez <fperez@colorado.edu>
2960
2964
2961 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2965 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2962 better message when 'exit' or 'quit' are typed (a common newbie
2966 better message when 'exit' or 'quit' are typed (a common newbie
2963 confusion).
2967 confusion).
2964
2968
2965 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2969 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2966 check for Windows users.
2970 check for Windows users.
2967
2971
2968 * IPython/iplib.py (InteractiveShell.user_setup): removed
2972 * IPython/iplib.py (InteractiveShell.user_setup): removed
2969 disabling of colors for Windows. I'll test at runtime and issue a
2973 disabling of colors for Windows. I'll test at runtime and issue a
2970 warning if Gary's readline isn't found, as to nudge users to
2974 warning if Gary's readline isn't found, as to nudge users to
2971 download it.
2975 download it.
2972
2976
2973 2004-06-16 Fernando Perez <fperez@colorado.edu>
2977 2004-06-16 Fernando Perez <fperez@colorado.edu>
2974
2978
2975 * IPython/genutils.py (Stream.__init__): changed to print errors
2979 * IPython/genutils.py (Stream.__init__): changed to print errors
2976 to sys.stderr. I had a circular dependency here. Now it's
2980 to sys.stderr. I had a circular dependency here. Now it's
2977 possible to run ipython as IDLE's shell (consider this pre-alpha,
2981 possible to run ipython as IDLE's shell (consider this pre-alpha,
2978 since true stdout things end up in the starting terminal instead
2982 since true stdout things end up in the starting terminal instead
2979 of IDLE's out).
2983 of IDLE's out).
2980
2984
2981 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2985 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2982 users who haven't # updated their prompt_in2 definitions. Remove
2986 users who haven't # updated their prompt_in2 definitions. Remove
2983 eventually.
2987 eventually.
2984 (multiple_replace): added credit to original ASPN recipe.
2988 (multiple_replace): added credit to original ASPN recipe.
2985
2989
2986 2004-06-15 Fernando Perez <fperez@colorado.edu>
2990 2004-06-15 Fernando Perez <fperez@colorado.edu>
2987
2991
2988 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2992 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2989 list of auto-defined aliases.
2993 list of auto-defined aliases.
2990
2994
2991 2004-06-13 Fernando Perez <fperez@colorado.edu>
2995 2004-06-13 Fernando Perez <fperez@colorado.edu>
2992
2996
2993 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2997 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2994 install was really requested (so setup.py can be used for other
2998 install was really requested (so setup.py can be used for other
2995 things under Windows).
2999 things under Windows).
2996
3000
2997 2004-06-10 Fernando Perez <fperez@colorado.edu>
3001 2004-06-10 Fernando Perez <fperez@colorado.edu>
2998
3002
2999 * IPython/Logger.py (Logger.create_log): Manually remove any old
3003 * IPython/Logger.py (Logger.create_log): Manually remove any old
3000 backup, since os.remove may fail under Windows. Fixes bug
3004 backup, since os.remove may fail under Windows. Fixes bug
3001 reported by Thorsten.
3005 reported by Thorsten.
3002
3006
3003 2004-06-09 Fernando Perez <fperez@colorado.edu>
3007 2004-06-09 Fernando Perez <fperez@colorado.edu>
3004
3008
3005 * examples/example-embed.py: fixed all references to %n (replaced
3009 * examples/example-embed.py: fixed all references to %n (replaced
3006 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3010 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3007 for all examples and the manual as well.
3011 for all examples and the manual as well.
3008
3012
3009 2004-06-08 Fernando Perez <fperez@colorado.edu>
3013 2004-06-08 Fernando Perez <fperez@colorado.edu>
3010
3014
3011 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3015 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3012 alignment and color management. All 3 prompt subsystems now
3016 alignment and color management. All 3 prompt subsystems now
3013 inherit from BasePrompt.
3017 inherit from BasePrompt.
3014
3018
3015 * tools/release: updates for windows installer build and tag rpms
3019 * tools/release: updates for windows installer build and tag rpms
3016 with python version (since paths are fixed).
3020 with python version (since paths are fixed).
3017
3021
3018 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3022 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3019 which will become eventually obsolete. Also fixed the default
3023 which will become eventually obsolete. Also fixed the default
3020 prompt_in2 to use \D, so at least new users start with the correct
3024 prompt_in2 to use \D, so at least new users start with the correct
3021 defaults.
3025 defaults.
3022 WARNING: Users with existing ipythonrc files will need to apply
3026 WARNING: Users with existing ipythonrc files will need to apply
3023 this fix manually!
3027 this fix manually!
3024
3028
3025 * setup.py: make windows installer (.exe). This is finally the
3029 * setup.py: make windows installer (.exe). This is finally the
3026 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3030 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3027 which I hadn't included because it required Python 2.3 (or recent
3031 which I hadn't included because it required Python 2.3 (or recent
3028 distutils).
3032 distutils).
3029
3033
3030 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3034 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3031 usage of new '\D' escape.
3035 usage of new '\D' escape.
3032
3036
3033 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3037 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3034 lacks os.getuid())
3038 lacks os.getuid())
3035 (CachedOutput.set_colors): Added the ability to turn coloring
3039 (CachedOutput.set_colors): Added the ability to turn coloring
3036 on/off with @colors even for manually defined prompt colors. It
3040 on/off with @colors even for manually defined prompt colors. It
3037 uses a nasty global, but it works safely and via the generic color
3041 uses a nasty global, but it works safely and via the generic color
3038 handling mechanism.
3042 handling mechanism.
3039 (Prompt2.__init__): Introduced new escape '\D' for continuation
3043 (Prompt2.__init__): Introduced new escape '\D' for continuation
3040 prompts. It represents the counter ('\#') as dots.
3044 prompts. It represents the counter ('\#') as dots.
3041 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3045 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3042 need to update their ipythonrc files and replace '%n' with '\D' in
3046 need to update their ipythonrc files and replace '%n' with '\D' in
3043 their prompt_in2 settings everywhere. Sorry, but there's
3047 their prompt_in2 settings everywhere. Sorry, but there's
3044 otherwise no clean way to get all prompts to properly align. The
3048 otherwise no clean way to get all prompts to properly align. The
3045 ipythonrc shipped with IPython has been updated.
3049 ipythonrc shipped with IPython has been updated.
3046
3050
3047 2004-06-07 Fernando Perez <fperez@colorado.edu>
3051 2004-06-07 Fernando Perez <fperez@colorado.edu>
3048
3052
3049 * setup.py (isfile): Pass local_icons option to latex2html, so the
3053 * setup.py (isfile): Pass local_icons option to latex2html, so the
3050 resulting HTML file is self-contained. Thanks to
3054 resulting HTML file is self-contained. Thanks to
3051 dryice-AT-liu.com.cn for the tip.
3055 dryice-AT-liu.com.cn for the tip.
3052
3056
3053 * pysh.py: I created a new profile 'shell', which implements a
3057 * pysh.py: I created a new profile 'shell', which implements a
3054 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3058 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3055 system shell, nor will it become one anytime soon. It's mainly
3059 system shell, nor will it become one anytime soon. It's mainly
3056 meant to illustrate the use of the new flexible bash-like prompts.
3060 meant to illustrate the use of the new flexible bash-like prompts.
3057 I guess it could be used by hardy souls for true shell management,
3061 I guess it could be used by hardy souls for true shell management,
3058 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3062 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3059 profile. This uses the InterpreterExec extension provided by
3063 profile. This uses the InterpreterExec extension provided by
3060 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3064 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3061
3065
3062 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3066 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3063 auto-align itself with the length of the previous input prompt
3067 auto-align itself with the length of the previous input prompt
3064 (taking into account the invisible color escapes).
3068 (taking into account the invisible color escapes).
3065 (CachedOutput.__init__): Large restructuring of this class. Now
3069 (CachedOutput.__init__): Large restructuring of this class. Now
3066 all three prompts (primary1, primary2, output) are proper objects,
3070 all three prompts (primary1, primary2, output) are proper objects,
3067 managed by the 'parent' CachedOutput class. The code is still a
3071 managed by the 'parent' CachedOutput class. The code is still a
3068 bit hackish (all prompts share state via a pointer to the cache),
3072 bit hackish (all prompts share state via a pointer to the cache),
3069 but it's overall far cleaner than before.
3073 but it's overall far cleaner than before.
3070
3074
3071 * IPython/genutils.py (getoutputerror): modified to add verbose,
3075 * IPython/genutils.py (getoutputerror): modified to add verbose,
3072 debug and header options. This makes the interface of all getout*
3076 debug and header options. This makes the interface of all getout*
3073 functions uniform.
3077 functions uniform.
3074 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3078 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3075
3079
3076 * IPython/Magic.py (Magic.default_option): added a function to
3080 * IPython/Magic.py (Magic.default_option): added a function to
3077 allow registering default options for any magic command. This
3081 allow registering default options for any magic command. This
3078 makes it easy to have profiles which customize the magics globally
3082 makes it easy to have profiles which customize the magics globally
3079 for a certain use. The values set through this function are
3083 for a certain use. The values set through this function are
3080 picked up by the parse_options() method, which all magics should
3084 picked up by the parse_options() method, which all magics should
3081 use to parse their options.
3085 use to parse their options.
3082
3086
3083 * IPython/genutils.py (warn): modified the warnings framework to
3087 * IPython/genutils.py (warn): modified the warnings framework to
3084 use the Term I/O class. I'm trying to slowly unify all of
3088 use the Term I/O class. I'm trying to slowly unify all of
3085 IPython's I/O operations to pass through Term.
3089 IPython's I/O operations to pass through Term.
3086
3090
3087 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3091 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3088 the secondary prompt to correctly match the length of the primary
3092 the secondary prompt to correctly match the length of the primary
3089 one for any prompt. Now multi-line code will properly line up
3093 one for any prompt. Now multi-line code will properly line up
3090 even for path dependent prompts, such as the new ones available
3094 even for path dependent prompts, such as the new ones available
3091 via the prompt_specials.
3095 via the prompt_specials.
3092
3096
3093 2004-06-06 Fernando Perez <fperez@colorado.edu>
3097 2004-06-06 Fernando Perez <fperez@colorado.edu>
3094
3098
3095 * IPython/Prompts.py (prompt_specials): Added the ability to have
3099 * IPython/Prompts.py (prompt_specials): Added the ability to have
3096 bash-like special sequences in the prompts, which get
3100 bash-like special sequences in the prompts, which get
3097 automatically expanded. Things like hostname, current working
3101 automatically expanded. Things like hostname, current working
3098 directory and username are implemented already, but it's easy to
3102 directory and username are implemented already, but it's easy to
3099 add more in the future. Thanks to a patch by W.J. van der Laan
3103 add more in the future. Thanks to a patch by W.J. van der Laan
3100 <gnufnork-AT-hetdigitalegat.nl>
3104 <gnufnork-AT-hetdigitalegat.nl>
3101 (prompt_specials): Added color support for prompt strings, so
3105 (prompt_specials): Added color support for prompt strings, so
3102 users can define arbitrary color setups for their prompts.
3106 users can define arbitrary color setups for their prompts.
3103
3107
3104 2004-06-05 Fernando Perez <fperez@colorado.edu>
3108 2004-06-05 Fernando Perez <fperez@colorado.edu>
3105
3109
3106 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3110 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3107 code to load Gary Bishop's readline and configure it
3111 code to load Gary Bishop's readline and configure it
3108 automatically. Thanks to Gary for help on this.
3112 automatically. Thanks to Gary for help on this.
3109
3113
3110 2004-06-01 Fernando Perez <fperez@colorado.edu>
3114 2004-06-01 Fernando Perez <fperez@colorado.edu>
3111
3115
3112 * IPython/Logger.py (Logger.create_log): fix bug for logging
3116 * IPython/Logger.py (Logger.create_log): fix bug for logging
3113 with no filename (previous fix was incomplete).
3117 with no filename (previous fix was incomplete).
3114
3118
3115 2004-05-25 Fernando Perez <fperez@colorado.edu>
3119 2004-05-25 Fernando Perez <fperez@colorado.edu>
3116
3120
3117 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3121 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3118 parens would get passed to the shell.
3122 parens would get passed to the shell.
3119
3123
3120 2004-05-20 Fernando Perez <fperez@colorado.edu>
3124 2004-05-20 Fernando Perez <fperez@colorado.edu>
3121
3125
3122 * IPython/Magic.py (Magic.magic_prun): changed default profile
3126 * IPython/Magic.py (Magic.magic_prun): changed default profile
3123 sort order to 'time' (the more common profiling need).
3127 sort order to 'time' (the more common profiling need).
3124
3128
3125 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3129 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3126 so that source code shown is guaranteed in sync with the file on
3130 so that source code shown is guaranteed in sync with the file on
3127 disk (also changed in psource). Similar fix to the one for
3131 disk (also changed in psource). Similar fix to the one for
3128 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3132 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3129 <yann.ledu-AT-noos.fr>.
3133 <yann.ledu-AT-noos.fr>.
3130
3134
3131 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3135 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3132 with a single option would not be correctly parsed. Closes
3136 with a single option would not be correctly parsed. Closes
3133 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3137 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3134 introduced in 0.6.0 (on 2004-05-06).
3138 introduced in 0.6.0 (on 2004-05-06).
3135
3139
3136 2004-05-13 *** Released version 0.6.0
3140 2004-05-13 *** Released version 0.6.0
3137
3141
3138 2004-05-13 Fernando Perez <fperez@colorado.edu>
3142 2004-05-13 Fernando Perez <fperez@colorado.edu>
3139
3143
3140 * debian/: Added debian/ directory to CVS, so that debian support
3144 * debian/: Added debian/ directory to CVS, so that debian support
3141 is publicly accessible. The debian package is maintained by Jack
3145 is publicly accessible. The debian package is maintained by Jack
3142 Moffit <jack-AT-xiph.org>.
3146 Moffit <jack-AT-xiph.org>.
3143
3147
3144 * Documentation: included the notes about an ipython-based system
3148 * Documentation: included the notes about an ipython-based system
3145 shell (the hypothetical 'pysh') into the new_design.pdf document,
3149 shell (the hypothetical 'pysh') into the new_design.pdf document,
3146 so that these ideas get distributed to users along with the
3150 so that these ideas get distributed to users along with the
3147 official documentation.
3151 official documentation.
3148
3152
3149 2004-05-10 Fernando Perez <fperez@colorado.edu>
3153 2004-05-10 Fernando Perez <fperez@colorado.edu>
3150
3154
3151 * IPython/Logger.py (Logger.create_log): fix recently introduced
3155 * IPython/Logger.py (Logger.create_log): fix recently introduced
3152 bug (misindented line) where logstart would fail when not given an
3156 bug (misindented line) where logstart would fail when not given an
3153 explicit filename.
3157 explicit filename.
3154
3158
3155 2004-05-09 Fernando Perez <fperez@colorado.edu>
3159 2004-05-09 Fernando Perez <fperez@colorado.edu>
3156
3160
3157 * IPython/Magic.py (Magic.parse_options): skip system call when
3161 * IPython/Magic.py (Magic.parse_options): skip system call when
3158 there are no options to look for. Faster, cleaner for the common
3162 there are no options to look for. Faster, cleaner for the common
3159 case.
3163 case.
3160
3164
3161 * Documentation: many updates to the manual: describing Windows
3165 * Documentation: many updates to the manual: describing Windows
3162 support better, Gnuplot updates, credits, misc small stuff. Also
3166 support better, Gnuplot updates, credits, misc small stuff. Also
3163 updated the new_design doc a bit.
3167 updated the new_design doc a bit.
3164
3168
3165 2004-05-06 *** Released version 0.6.0.rc1
3169 2004-05-06 *** Released version 0.6.0.rc1
3166
3170
3167 2004-05-06 Fernando Perez <fperez@colorado.edu>
3171 2004-05-06 Fernando Perez <fperez@colorado.edu>
3168
3172
3169 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3173 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3170 operations to use the vastly more efficient list/''.join() method.
3174 operations to use the vastly more efficient list/''.join() method.
3171 (FormattedTB.text): Fix
3175 (FormattedTB.text): Fix
3172 http://www.scipy.net/roundup/ipython/issue12 - exception source
3176 http://www.scipy.net/roundup/ipython/issue12 - exception source
3173 extract not updated after reload. Thanks to Mike Salib
3177 extract not updated after reload. Thanks to Mike Salib
3174 <msalib-AT-mit.edu> for pinning the source of the problem.
3178 <msalib-AT-mit.edu> for pinning the source of the problem.
3175 Fortunately, the solution works inside ipython and doesn't require
3179 Fortunately, the solution works inside ipython and doesn't require
3176 any changes to python proper.
3180 any changes to python proper.
3177
3181
3178 * IPython/Magic.py (Magic.parse_options): Improved to process the
3182 * IPython/Magic.py (Magic.parse_options): Improved to process the
3179 argument list as a true shell would (by actually using the
3183 argument list as a true shell would (by actually using the
3180 underlying system shell). This way, all @magics automatically get
3184 underlying system shell). This way, all @magics automatically get
3181 shell expansion for variables. Thanks to a comment by Alex
3185 shell expansion for variables. Thanks to a comment by Alex
3182 Schmolck.
3186 Schmolck.
3183
3187
3184 2004-04-04 Fernando Perez <fperez@colorado.edu>
3188 2004-04-04 Fernando Perez <fperez@colorado.edu>
3185
3189
3186 * IPython/iplib.py (InteractiveShell.interact): Added a special
3190 * IPython/iplib.py (InteractiveShell.interact): Added a special
3187 trap for a debugger quit exception, which is basically impossible
3191 trap for a debugger quit exception, which is basically impossible
3188 to handle by normal mechanisms, given what pdb does to the stack.
3192 to handle by normal mechanisms, given what pdb does to the stack.
3189 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3193 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3190
3194
3191 2004-04-03 Fernando Perez <fperez@colorado.edu>
3195 2004-04-03 Fernando Perez <fperez@colorado.edu>
3192
3196
3193 * IPython/genutils.py (Term): Standardized the names of the Term
3197 * IPython/genutils.py (Term): Standardized the names of the Term
3194 class streams to cin/cout/cerr, following C++ naming conventions
3198 class streams to cin/cout/cerr, following C++ naming conventions
3195 (I can't use in/out/err because 'in' is not a valid attribute
3199 (I can't use in/out/err because 'in' is not a valid attribute
3196 name).
3200 name).
3197
3201
3198 * IPython/iplib.py (InteractiveShell.interact): don't increment
3202 * IPython/iplib.py (InteractiveShell.interact): don't increment
3199 the prompt if there's no user input. By Daniel 'Dang' Griffith
3203 the prompt if there's no user input. By Daniel 'Dang' Griffith
3200 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3204 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3201 Francois Pinard.
3205 Francois Pinard.
3202
3206
3203 2004-04-02 Fernando Perez <fperez@colorado.edu>
3207 2004-04-02 Fernando Perez <fperez@colorado.edu>
3204
3208
3205 * IPython/genutils.py (Stream.__init__): Modified to survive at
3209 * IPython/genutils.py (Stream.__init__): Modified to survive at
3206 least importing in contexts where stdin/out/err aren't true file
3210 least importing in contexts where stdin/out/err aren't true file
3207 objects, such as PyCrust (they lack fileno() and mode). However,
3211 objects, such as PyCrust (they lack fileno() and mode). However,
3208 the recovery facilities which rely on these things existing will
3212 the recovery facilities which rely on these things existing will
3209 not work.
3213 not work.
3210
3214
3211 2004-04-01 Fernando Perez <fperez@colorado.edu>
3215 2004-04-01 Fernando Perez <fperez@colorado.edu>
3212
3216
3213 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3217 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3214 use the new getoutputerror() function, so it properly
3218 use the new getoutputerror() function, so it properly
3215 distinguishes stdout/err.
3219 distinguishes stdout/err.
3216
3220
3217 * IPython/genutils.py (getoutputerror): added a function to
3221 * IPython/genutils.py (getoutputerror): added a function to
3218 capture separately the standard output and error of a command.
3222 capture separately the standard output and error of a command.
3219 After a comment from dang on the mailing lists. This code is
3223 After a comment from dang on the mailing lists. This code is
3220 basically a modified version of commands.getstatusoutput(), from
3224 basically a modified version of commands.getstatusoutput(), from
3221 the standard library.
3225 the standard library.
3222
3226
3223 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3227 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3224 '!!' as a special syntax (shorthand) to access @sx.
3228 '!!' as a special syntax (shorthand) to access @sx.
3225
3229
3226 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3230 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3227 command and return its output as a list split on '\n'.
3231 command and return its output as a list split on '\n'.
3228
3232
3229 2004-03-31 Fernando Perez <fperez@colorado.edu>
3233 2004-03-31 Fernando Perez <fperez@colorado.edu>
3230
3234
3231 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3235 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3232 method to dictionaries used as FakeModule instances if they lack
3236 method to dictionaries used as FakeModule instances if they lack
3233 it. At least pydoc in python2.3 breaks for runtime-defined
3237 it. At least pydoc in python2.3 breaks for runtime-defined
3234 functions without this hack. At some point I need to _really_
3238 functions without this hack. At some point I need to _really_
3235 understand what FakeModule is doing, because it's a gross hack.
3239 understand what FakeModule is doing, because it's a gross hack.
3236 But it solves Arnd's problem for now...
3240 But it solves Arnd's problem for now...
3237
3241
3238 2004-02-27 Fernando Perez <fperez@colorado.edu>
3242 2004-02-27 Fernando Perez <fperez@colorado.edu>
3239
3243
3240 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3244 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3241 mode would behave erratically. Also increased the number of
3245 mode would behave erratically. Also increased the number of
3242 possible logs in rotate mod to 999. Thanks to Rod Holland
3246 possible logs in rotate mod to 999. Thanks to Rod Holland
3243 <rhh@StructureLABS.com> for the report and fixes.
3247 <rhh@StructureLABS.com> for the report and fixes.
3244
3248
3245 2004-02-26 Fernando Perez <fperez@colorado.edu>
3249 2004-02-26 Fernando Perez <fperez@colorado.edu>
3246
3250
3247 * IPython/genutils.py (page): Check that the curses module really
3251 * IPython/genutils.py (page): Check that the curses module really
3248 has the initscr attribute before trying to use it. For some
3252 has the initscr attribute before trying to use it. For some
3249 reason, the Solaris curses module is missing this. I think this
3253 reason, the Solaris curses module is missing this. I think this
3250 should be considered a Solaris python bug, but I'm not sure.
3254 should be considered a Solaris python bug, but I'm not sure.
3251
3255
3252 2004-01-17 Fernando Perez <fperez@colorado.edu>
3256 2004-01-17 Fernando Perez <fperez@colorado.edu>
3253
3257
3254 * IPython/genutils.py (Stream.__init__): Changes to try to make
3258 * IPython/genutils.py (Stream.__init__): Changes to try to make
3255 ipython robust against stdin/out/err being closed by the user.
3259 ipython robust against stdin/out/err being closed by the user.
3256 This is 'user error' (and blocks a normal python session, at least
3260 This is 'user error' (and blocks a normal python session, at least
3257 the stdout case). However, Ipython should be able to survive such
3261 the stdout case). However, Ipython should be able to survive such
3258 instances of abuse as gracefully as possible. To simplify the
3262 instances of abuse as gracefully as possible. To simplify the
3259 coding and maintain compatibility with Gary Bishop's Term
3263 coding and maintain compatibility with Gary Bishop's Term
3260 contributions, I've made use of classmethods for this. I think
3264 contributions, I've made use of classmethods for this. I think
3261 this introduces a dependency on python 2.2.
3265 this introduces a dependency on python 2.2.
3262
3266
3263 2004-01-13 Fernando Perez <fperez@colorado.edu>
3267 2004-01-13 Fernando Perez <fperez@colorado.edu>
3264
3268
3265 * IPython/numutils.py (exp_safe): simplified the code a bit and
3269 * IPython/numutils.py (exp_safe): simplified the code a bit and
3266 removed the need for importing the kinds module altogether.
3270 removed the need for importing the kinds module altogether.
3267
3271
3268 2004-01-06 Fernando Perez <fperez@colorado.edu>
3272 2004-01-06 Fernando Perez <fperez@colorado.edu>
3269
3273
3270 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3274 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3271 a magic function instead, after some community feedback. No
3275 a magic function instead, after some community feedback. No
3272 special syntax will exist for it, but its name is deliberately
3276 special syntax will exist for it, but its name is deliberately
3273 very short.
3277 very short.
3274
3278
3275 2003-12-20 Fernando Perez <fperez@colorado.edu>
3279 2003-12-20 Fernando Perez <fperez@colorado.edu>
3276
3280
3277 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3281 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3278 new functionality, to automagically assign the result of a shell
3282 new functionality, to automagically assign the result of a shell
3279 command to a variable. I'll solicit some community feedback on
3283 command to a variable. I'll solicit some community feedback on
3280 this before making it permanent.
3284 this before making it permanent.
3281
3285
3282 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3286 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3283 requested about callables for which inspect couldn't obtain a
3287 requested about callables for which inspect couldn't obtain a
3284 proper argspec. Thanks to a crash report sent by Etienne
3288 proper argspec. Thanks to a crash report sent by Etienne
3285 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3289 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3286
3290
3287 2003-12-09 Fernando Perez <fperez@colorado.edu>
3291 2003-12-09 Fernando Perez <fperez@colorado.edu>
3288
3292
3289 * IPython/genutils.py (page): patch for the pager to work across
3293 * IPython/genutils.py (page): patch for the pager to work across
3290 various versions of Windows. By Gary Bishop.
3294 various versions of Windows. By Gary Bishop.
3291
3295
3292 2003-12-04 Fernando Perez <fperez@colorado.edu>
3296 2003-12-04 Fernando Perez <fperez@colorado.edu>
3293
3297
3294 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3298 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3295 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3299 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3296 While I tested this and it looks ok, there may still be corner
3300 While I tested this and it looks ok, there may still be corner
3297 cases I've missed.
3301 cases I've missed.
3298
3302
3299 2003-12-01 Fernando Perez <fperez@colorado.edu>
3303 2003-12-01 Fernando Perez <fperez@colorado.edu>
3300
3304
3301 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3305 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3302 where a line like 'p,q=1,2' would fail because the automagic
3306 where a line like 'p,q=1,2' would fail because the automagic
3303 system would be triggered for @p.
3307 system would be triggered for @p.
3304
3308
3305 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3309 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3306 cleanups, code unmodified.
3310 cleanups, code unmodified.
3307
3311
3308 * IPython/genutils.py (Term): added a class for IPython to handle
3312 * IPython/genutils.py (Term): added a class for IPython to handle
3309 output. In most cases it will just be a proxy for stdout/err, but
3313 output. In most cases it will just be a proxy for stdout/err, but
3310 having this allows modifications to be made for some platforms,
3314 having this allows modifications to be made for some platforms,
3311 such as handling color escapes under Windows. All of this code
3315 such as handling color escapes under Windows. All of this code
3312 was contributed by Gary Bishop, with minor modifications by me.
3316 was contributed by Gary Bishop, with minor modifications by me.
3313 The actual changes affect many files.
3317 The actual changes affect many files.
3314
3318
3315 2003-11-30 Fernando Perez <fperez@colorado.edu>
3319 2003-11-30 Fernando Perez <fperez@colorado.edu>
3316
3320
3317 * IPython/iplib.py (file_matches): new completion code, courtesy
3321 * IPython/iplib.py (file_matches): new completion code, courtesy
3318 of Jeff Collins. This enables filename completion again under
3322 of Jeff Collins. This enables filename completion again under
3319 python 2.3, which disabled it at the C level.
3323 python 2.3, which disabled it at the C level.
3320
3324
3321 2003-11-11 Fernando Perez <fperez@colorado.edu>
3325 2003-11-11 Fernando Perez <fperez@colorado.edu>
3322
3326
3323 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3327 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3324 for Numeric.array(map(...)), but often convenient.
3328 for Numeric.array(map(...)), but often convenient.
3325
3329
3326 2003-11-05 Fernando Perez <fperez@colorado.edu>
3330 2003-11-05 Fernando Perez <fperez@colorado.edu>
3327
3331
3328 * IPython/numutils.py (frange): Changed a call from int() to
3332 * IPython/numutils.py (frange): Changed a call from int() to
3329 int(round()) to prevent a problem reported with arange() in the
3333 int(round()) to prevent a problem reported with arange() in the
3330 numpy list.
3334 numpy list.
3331
3335
3332 2003-10-06 Fernando Perez <fperez@colorado.edu>
3336 2003-10-06 Fernando Perez <fperez@colorado.edu>
3333
3337
3334 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3338 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3335 prevent crashes if sys lacks an argv attribute (it happens with
3339 prevent crashes if sys lacks an argv attribute (it happens with
3336 embedded interpreters which build a bare-bones sys module).
3340 embedded interpreters which build a bare-bones sys module).
3337 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3341 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3338
3342
3339 2003-09-24 Fernando Perez <fperez@colorado.edu>
3343 2003-09-24 Fernando Perez <fperez@colorado.edu>
3340
3344
3341 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3345 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3342 to protect against poorly written user objects where __getattr__
3346 to protect against poorly written user objects where __getattr__
3343 raises exceptions other than AttributeError. Thanks to a bug
3347 raises exceptions other than AttributeError. Thanks to a bug
3344 report by Oliver Sander <osander-AT-gmx.de>.
3348 report by Oliver Sander <osander-AT-gmx.de>.
3345
3349
3346 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3350 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3347 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3351 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3348
3352
3349 2003-09-09 Fernando Perez <fperez@colorado.edu>
3353 2003-09-09 Fernando Perez <fperez@colorado.edu>
3350
3354
3351 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3355 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3352 unpacking a list whith a callable as first element would
3356 unpacking a list whith a callable as first element would
3353 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3357 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3354 Collins.
3358 Collins.
3355
3359
3356 2003-08-25 *** Released version 0.5.0
3360 2003-08-25 *** Released version 0.5.0
3357
3361
3358 2003-08-22 Fernando Perez <fperez@colorado.edu>
3362 2003-08-22 Fernando Perez <fperez@colorado.edu>
3359
3363
3360 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3364 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3361 improperly defined user exceptions. Thanks to feedback from Mark
3365 improperly defined user exceptions. Thanks to feedback from Mark
3362 Russell <mrussell-AT-verio.net>.
3366 Russell <mrussell-AT-verio.net>.
3363
3367
3364 2003-08-20 Fernando Perez <fperez@colorado.edu>
3368 2003-08-20 Fernando Perez <fperez@colorado.edu>
3365
3369
3366 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3370 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3367 printing so that it would print multi-line string forms starting
3371 printing so that it would print multi-line string forms starting
3368 with a new line. This way the formatting is better respected for
3372 with a new line. This way the formatting is better respected for
3369 objects which work hard to make nice string forms.
3373 objects which work hard to make nice string forms.
3370
3374
3371 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3375 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3372 autocall would overtake data access for objects with both
3376 autocall would overtake data access for objects with both
3373 __getitem__ and __call__.
3377 __getitem__ and __call__.
3374
3378
3375 2003-08-19 *** Released version 0.5.0-rc1
3379 2003-08-19 *** Released version 0.5.0-rc1
3376
3380
3377 2003-08-19 Fernando Perez <fperez@colorado.edu>
3381 2003-08-19 Fernando Perez <fperez@colorado.edu>
3378
3382
3379 * IPython/deep_reload.py (load_tail): single tiny change here
3383 * IPython/deep_reload.py (load_tail): single tiny change here
3380 seems to fix the long-standing bug of dreload() failing to work
3384 seems to fix the long-standing bug of dreload() failing to work
3381 for dotted names. But this module is pretty tricky, so I may have
3385 for dotted names. But this module is pretty tricky, so I may have
3382 missed some subtlety. Needs more testing!.
3386 missed some subtlety. Needs more testing!.
3383
3387
3384 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3388 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3385 exceptions which have badly implemented __str__ methods.
3389 exceptions which have badly implemented __str__ methods.
3386 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3390 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3387 which I've been getting reports about from Python 2.3 users. I
3391 which I've been getting reports about from Python 2.3 users. I
3388 wish I had a simple test case to reproduce the problem, so I could
3392 wish I had a simple test case to reproduce the problem, so I could
3389 either write a cleaner workaround or file a bug report if
3393 either write a cleaner workaround or file a bug report if
3390 necessary.
3394 necessary.
3391
3395
3392 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3396 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3393 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3397 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3394 a bug report by Tjabo Kloppenburg.
3398 a bug report by Tjabo Kloppenburg.
3395
3399
3396 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3400 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3397 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3401 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3398 seems rather unstable. Thanks to a bug report by Tjabo
3402 seems rather unstable. Thanks to a bug report by Tjabo
3399 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3403 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3400
3404
3401 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3405 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3402 this out soon because of the critical fixes in the inner loop for
3406 this out soon because of the critical fixes in the inner loop for
3403 generators.
3407 generators.
3404
3408
3405 * IPython/Magic.py (Magic.getargspec): removed. This (and
3409 * IPython/Magic.py (Magic.getargspec): removed. This (and
3406 _get_def) have been obsoleted by OInspect for a long time, I
3410 _get_def) have been obsoleted by OInspect for a long time, I
3407 hadn't noticed that they were dead code.
3411 hadn't noticed that they were dead code.
3408 (Magic._ofind): restored _ofind functionality for a few literals
3412 (Magic._ofind): restored _ofind functionality for a few literals
3409 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3413 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3410 for things like "hello".capitalize?, since that would require a
3414 for things like "hello".capitalize?, since that would require a
3411 potentially dangerous eval() again.
3415 potentially dangerous eval() again.
3412
3416
3413 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3417 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3414 logic a bit more to clean up the escapes handling and minimize the
3418 logic a bit more to clean up the escapes handling and minimize the
3415 use of _ofind to only necessary cases. The interactive 'feel' of
3419 use of _ofind to only necessary cases. The interactive 'feel' of
3416 IPython should have improved quite a bit with the changes in
3420 IPython should have improved quite a bit with the changes in
3417 _prefilter and _ofind (besides being far safer than before).
3421 _prefilter and _ofind (besides being far safer than before).
3418
3422
3419 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3423 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3420 obscure, never reported). Edit would fail to find the object to
3424 obscure, never reported). Edit would fail to find the object to
3421 edit under some circumstances.
3425 edit under some circumstances.
3422 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3426 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3423 which were causing double-calling of generators. Those eval calls
3427 which were causing double-calling of generators. Those eval calls
3424 were _very_ dangerous, since code with side effects could be
3428 were _very_ dangerous, since code with side effects could be
3425 triggered. As they say, 'eval is evil'... These were the
3429 triggered. As they say, 'eval is evil'... These were the
3426 nastiest evals in IPython. Besides, _ofind is now far simpler,
3430 nastiest evals in IPython. Besides, _ofind is now far simpler,
3427 and it should also be quite a bit faster. Its use of inspect is
3431 and it should also be quite a bit faster. Its use of inspect is
3428 also safer, so perhaps some of the inspect-related crashes I've
3432 also safer, so perhaps some of the inspect-related crashes I've
3429 seen lately with Python 2.3 might be taken care of. That will
3433 seen lately with Python 2.3 might be taken care of. That will
3430 need more testing.
3434 need more testing.
3431
3435
3432 2003-08-17 Fernando Perez <fperez@colorado.edu>
3436 2003-08-17 Fernando Perez <fperez@colorado.edu>
3433
3437
3434 * IPython/iplib.py (InteractiveShell._prefilter): significant
3438 * IPython/iplib.py (InteractiveShell._prefilter): significant
3435 simplifications to the logic for handling user escapes. Faster
3439 simplifications to the logic for handling user escapes. Faster
3436 and simpler code.
3440 and simpler code.
3437
3441
3438 2003-08-14 Fernando Perez <fperez@colorado.edu>
3442 2003-08-14 Fernando Perez <fperez@colorado.edu>
3439
3443
3440 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3444 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3441 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3445 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3442 but it should be quite a bit faster. And the recursive version
3446 but it should be quite a bit faster. And the recursive version
3443 generated O(log N) intermediate storage for all rank>1 arrays,
3447 generated O(log N) intermediate storage for all rank>1 arrays,
3444 even if they were contiguous.
3448 even if they were contiguous.
3445 (l1norm): Added this function.
3449 (l1norm): Added this function.
3446 (norm): Added this function for arbitrary norms (including
3450 (norm): Added this function for arbitrary norms (including
3447 l-infinity). l1 and l2 are still special cases for convenience
3451 l-infinity). l1 and l2 are still special cases for convenience
3448 and speed.
3452 and speed.
3449
3453
3450 2003-08-03 Fernando Perez <fperez@colorado.edu>
3454 2003-08-03 Fernando Perez <fperez@colorado.edu>
3451
3455
3452 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3456 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3453 exceptions, which now raise PendingDeprecationWarnings in Python
3457 exceptions, which now raise PendingDeprecationWarnings in Python
3454 2.3. There were some in Magic and some in Gnuplot2.
3458 2.3. There were some in Magic and some in Gnuplot2.
3455
3459
3456 2003-06-30 Fernando Perez <fperez@colorado.edu>
3460 2003-06-30 Fernando Perez <fperez@colorado.edu>
3457
3461
3458 * IPython/genutils.py (page): modified to call curses only for
3462 * IPython/genutils.py (page): modified to call curses only for
3459 terminals where TERM=='xterm'. After problems under many other
3463 terminals where TERM=='xterm'. After problems under many other
3460 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3464 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3461
3465
3462 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3466 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3463 would be triggered when readline was absent. This was just an old
3467 would be triggered when readline was absent. This was just an old
3464 debugging statement I'd forgotten to take out.
3468 debugging statement I'd forgotten to take out.
3465
3469
3466 2003-06-20 Fernando Perez <fperez@colorado.edu>
3470 2003-06-20 Fernando Perez <fperez@colorado.edu>
3467
3471
3468 * IPython/genutils.py (clock): modified to return only user time
3472 * IPython/genutils.py (clock): modified to return only user time
3469 (not counting system time), after a discussion on scipy. While
3473 (not counting system time), after a discussion on scipy. While
3470 system time may be a useful quantity occasionally, it may much
3474 system time may be a useful quantity occasionally, it may much
3471 more easily be skewed by occasional swapping or other similar
3475 more easily be skewed by occasional swapping or other similar
3472 activity.
3476 activity.
3473
3477
3474 2003-06-05 Fernando Perez <fperez@colorado.edu>
3478 2003-06-05 Fernando Perez <fperez@colorado.edu>
3475
3479
3476 * IPython/numutils.py (identity): new function, for building
3480 * IPython/numutils.py (identity): new function, for building
3477 arbitrary rank Kronecker deltas (mostly backwards compatible with
3481 arbitrary rank Kronecker deltas (mostly backwards compatible with
3478 Numeric.identity)
3482 Numeric.identity)
3479
3483
3480 2003-06-03 Fernando Perez <fperez@colorado.edu>
3484 2003-06-03 Fernando Perez <fperez@colorado.edu>
3481
3485
3482 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3486 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3483 arguments passed to magics with spaces, to allow trailing '\' to
3487 arguments passed to magics with spaces, to allow trailing '\' to
3484 work normally (mainly for Windows users).
3488 work normally (mainly for Windows users).
3485
3489
3486 2003-05-29 Fernando Perez <fperez@colorado.edu>
3490 2003-05-29 Fernando Perez <fperez@colorado.edu>
3487
3491
3488 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3492 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3489 instead of pydoc.help. This fixes a bizarre behavior where
3493 instead of pydoc.help. This fixes a bizarre behavior where
3490 printing '%s' % locals() would trigger the help system. Now
3494 printing '%s' % locals() would trigger the help system. Now
3491 ipython behaves like normal python does.
3495 ipython behaves like normal python does.
3492
3496
3493 Note that if one does 'from pydoc import help', the bizarre
3497 Note that if one does 'from pydoc import help', the bizarre
3494 behavior returns, but this will also happen in normal python, so
3498 behavior returns, but this will also happen in normal python, so
3495 it's not an ipython bug anymore (it has to do with how pydoc.help
3499 it's not an ipython bug anymore (it has to do with how pydoc.help
3496 is implemented).
3500 is implemented).
3497
3501
3498 2003-05-22 Fernando Perez <fperez@colorado.edu>
3502 2003-05-22 Fernando Perez <fperez@colorado.edu>
3499
3503
3500 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3504 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3501 return [] instead of None when nothing matches, also match to end
3505 return [] instead of None when nothing matches, also match to end
3502 of line. Patch by Gary Bishop.
3506 of line. Patch by Gary Bishop.
3503
3507
3504 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3508 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3505 protection as before, for files passed on the command line. This
3509 protection as before, for files passed on the command line. This
3506 prevents the CrashHandler from kicking in if user files call into
3510 prevents the CrashHandler from kicking in if user files call into
3507 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3511 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3508 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3512 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3509
3513
3510 2003-05-20 *** Released version 0.4.0
3514 2003-05-20 *** Released version 0.4.0
3511
3515
3512 2003-05-20 Fernando Perez <fperez@colorado.edu>
3516 2003-05-20 Fernando Perez <fperez@colorado.edu>
3513
3517
3514 * setup.py: added support for manpages. It's a bit hackish b/c of
3518 * setup.py: added support for manpages. It's a bit hackish b/c of
3515 a bug in the way the bdist_rpm distutils target handles gzipped
3519 a bug in the way the bdist_rpm distutils target handles gzipped
3516 manpages, but it works. After a patch by Jack.
3520 manpages, but it works. After a patch by Jack.
3517
3521
3518 2003-05-19 Fernando Perez <fperez@colorado.edu>
3522 2003-05-19 Fernando Perez <fperez@colorado.edu>
3519
3523
3520 * IPython/numutils.py: added a mockup of the kinds module, since
3524 * IPython/numutils.py: added a mockup of the kinds module, since
3521 it was recently removed from Numeric. This way, numutils will
3525 it was recently removed from Numeric. This way, numutils will
3522 work for all users even if they are missing kinds.
3526 work for all users even if they are missing kinds.
3523
3527
3524 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3528 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3525 failure, which can occur with SWIG-wrapped extensions. After a
3529 failure, which can occur with SWIG-wrapped extensions. After a
3526 crash report from Prabhu.
3530 crash report from Prabhu.
3527
3531
3528 2003-05-16 Fernando Perez <fperez@colorado.edu>
3532 2003-05-16 Fernando Perez <fperez@colorado.edu>
3529
3533
3530 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3534 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3531 protect ipython from user code which may call directly
3535 protect ipython from user code which may call directly
3532 sys.excepthook (this looks like an ipython crash to the user, even
3536 sys.excepthook (this looks like an ipython crash to the user, even
3533 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3537 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3534 This is especially important to help users of WxWindows, but may
3538 This is especially important to help users of WxWindows, but may
3535 also be useful in other cases.
3539 also be useful in other cases.
3536
3540
3537 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3541 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3538 an optional tb_offset to be specified, and to preserve exception
3542 an optional tb_offset to be specified, and to preserve exception
3539 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3543 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3540
3544
3541 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3545 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3542
3546
3543 2003-05-15 Fernando Perez <fperez@colorado.edu>
3547 2003-05-15 Fernando Perez <fperez@colorado.edu>
3544
3548
3545 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3549 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3546 installing for a new user under Windows.
3550 installing for a new user under Windows.
3547
3551
3548 2003-05-12 Fernando Perez <fperez@colorado.edu>
3552 2003-05-12 Fernando Perez <fperez@colorado.edu>
3549
3553
3550 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3554 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3551 handler for Emacs comint-based lines. Currently it doesn't do
3555 handler for Emacs comint-based lines. Currently it doesn't do
3552 much (but importantly, it doesn't update the history cache). In
3556 much (but importantly, it doesn't update the history cache). In
3553 the future it may be expanded if Alex needs more functionality
3557 the future it may be expanded if Alex needs more functionality
3554 there.
3558 there.
3555
3559
3556 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3560 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3557 info to crash reports.
3561 info to crash reports.
3558
3562
3559 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3563 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3560 just like Python's -c. Also fixed crash with invalid -color
3564 just like Python's -c. Also fixed crash with invalid -color
3561 option value at startup. Thanks to Will French
3565 option value at startup. Thanks to Will French
3562 <wfrench-AT-bestweb.net> for the bug report.
3566 <wfrench-AT-bestweb.net> for the bug report.
3563
3567
3564 2003-05-09 Fernando Perez <fperez@colorado.edu>
3568 2003-05-09 Fernando Perez <fperez@colorado.edu>
3565
3569
3566 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3570 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3567 to EvalDict (it's a mapping, after all) and simplified its code
3571 to EvalDict (it's a mapping, after all) and simplified its code
3568 quite a bit, after a nice discussion on c.l.py where Gustavo
3572 quite a bit, after a nice discussion on c.l.py where Gustavo
3569 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3573 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3570
3574
3571 2003-04-30 Fernando Perez <fperez@colorado.edu>
3575 2003-04-30 Fernando Perez <fperez@colorado.edu>
3572
3576
3573 * IPython/genutils.py (timings_out): modified it to reduce its
3577 * IPython/genutils.py (timings_out): modified it to reduce its
3574 overhead in the common reps==1 case.
3578 overhead in the common reps==1 case.
3575
3579
3576 2003-04-29 Fernando Perez <fperez@colorado.edu>
3580 2003-04-29 Fernando Perez <fperez@colorado.edu>
3577
3581
3578 * IPython/genutils.py (timings_out): Modified to use the resource
3582 * IPython/genutils.py (timings_out): Modified to use the resource
3579 module, which avoids the wraparound problems of time.clock().
3583 module, which avoids the wraparound problems of time.clock().
3580
3584
3581 2003-04-17 *** Released version 0.2.15pre4
3585 2003-04-17 *** Released version 0.2.15pre4
3582
3586
3583 2003-04-17 Fernando Perez <fperez@colorado.edu>
3587 2003-04-17 Fernando Perez <fperez@colorado.edu>
3584
3588
3585 * setup.py (scriptfiles): Split windows-specific stuff over to a
3589 * setup.py (scriptfiles): Split windows-specific stuff over to a
3586 separate file, in an attempt to have a Windows GUI installer.
3590 separate file, in an attempt to have a Windows GUI installer.
3587 That didn't work, but part of the groundwork is done.
3591 That didn't work, but part of the groundwork is done.
3588
3592
3589 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3593 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3590 indent/unindent with 4 spaces. Particularly useful in combination
3594 indent/unindent with 4 spaces. Particularly useful in combination
3591 with the new auto-indent option.
3595 with the new auto-indent option.
3592
3596
3593 2003-04-16 Fernando Perez <fperez@colorado.edu>
3597 2003-04-16 Fernando Perez <fperez@colorado.edu>
3594
3598
3595 * IPython/Magic.py: various replacements of self.rc for
3599 * IPython/Magic.py: various replacements of self.rc for
3596 self.shell.rc. A lot more remains to be done to fully disentangle
3600 self.shell.rc. A lot more remains to be done to fully disentangle
3597 this class from the main Shell class.
3601 this class from the main Shell class.
3598
3602
3599 * IPython/GnuplotRuntime.py: added checks for mouse support so
3603 * IPython/GnuplotRuntime.py: added checks for mouse support so
3600 that we don't try to enable it if the current gnuplot doesn't
3604 that we don't try to enable it if the current gnuplot doesn't
3601 really support it. Also added checks so that we don't try to
3605 really support it. Also added checks so that we don't try to
3602 enable persist under Windows (where Gnuplot doesn't recognize the
3606 enable persist under Windows (where Gnuplot doesn't recognize the
3603 option).
3607 option).
3604
3608
3605 * IPython/iplib.py (InteractiveShell.interact): Added optional
3609 * IPython/iplib.py (InteractiveShell.interact): Added optional
3606 auto-indenting code, after a patch by King C. Shu
3610 auto-indenting code, after a patch by King C. Shu
3607 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3611 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3608 get along well with pasting indented code. If I ever figure out
3612 get along well with pasting indented code. If I ever figure out
3609 how to make that part go well, it will become on by default.
3613 how to make that part go well, it will become on by default.
3610
3614
3611 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3615 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3612 crash ipython if there was an unmatched '%' in the user's prompt
3616 crash ipython if there was an unmatched '%' in the user's prompt
3613 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3617 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3614
3618
3615 * IPython/iplib.py (InteractiveShell.interact): removed the
3619 * IPython/iplib.py (InteractiveShell.interact): removed the
3616 ability to ask the user whether he wants to crash or not at the
3620 ability to ask the user whether he wants to crash or not at the
3617 'last line' exception handler. Calling functions at that point
3621 'last line' exception handler. Calling functions at that point
3618 changes the stack, and the error reports would have incorrect
3622 changes the stack, and the error reports would have incorrect
3619 tracebacks.
3623 tracebacks.
3620
3624
3621 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3625 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3622 pass through a peger a pretty-printed form of any object. After a
3626 pass through a peger a pretty-printed form of any object. After a
3623 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3627 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3624
3628
3625 2003-04-14 Fernando Perez <fperez@colorado.edu>
3629 2003-04-14 Fernando Perez <fperez@colorado.edu>
3626
3630
3627 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3631 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3628 all files in ~ would be modified at first install (instead of
3632 all files in ~ would be modified at first install (instead of
3629 ~/.ipython). This could be potentially disastrous, as the
3633 ~/.ipython). This could be potentially disastrous, as the
3630 modification (make line-endings native) could damage binary files.
3634 modification (make line-endings native) could damage binary files.
3631
3635
3632 2003-04-10 Fernando Perez <fperez@colorado.edu>
3636 2003-04-10 Fernando Perez <fperez@colorado.edu>
3633
3637
3634 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3638 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3635 handle only lines which are invalid python. This now means that
3639 handle only lines which are invalid python. This now means that
3636 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3640 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3637 for the bug report.
3641 for the bug report.
3638
3642
3639 2003-04-01 Fernando Perez <fperez@colorado.edu>
3643 2003-04-01 Fernando Perez <fperez@colorado.edu>
3640
3644
3641 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3645 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3642 where failing to set sys.last_traceback would crash pdb.pm().
3646 where failing to set sys.last_traceback would crash pdb.pm().
3643 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3647 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3644 report.
3648 report.
3645
3649
3646 2003-03-25 Fernando Perez <fperez@colorado.edu>
3650 2003-03-25 Fernando Perez <fperez@colorado.edu>
3647
3651
3648 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3652 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3649 before printing it (it had a lot of spurious blank lines at the
3653 before printing it (it had a lot of spurious blank lines at the
3650 end).
3654 end).
3651
3655
3652 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3656 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3653 output would be sent 21 times! Obviously people don't use this
3657 output would be sent 21 times! Obviously people don't use this
3654 too often, or I would have heard about it.
3658 too often, or I would have heard about it.
3655
3659
3656 2003-03-24 Fernando Perez <fperez@colorado.edu>
3660 2003-03-24 Fernando Perez <fperez@colorado.edu>
3657
3661
3658 * setup.py (scriptfiles): renamed the data_files parameter from
3662 * setup.py (scriptfiles): renamed the data_files parameter from
3659 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3663 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3660 for the patch.
3664 for the patch.
3661
3665
3662 2003-03-20 Fernando Perez <fperez@colorado.edu>
3666 2003-03-20 Fernando Perez <fperez@colorado.edu>
3663
3667
3664 * IPython/genutils.py (error): added error() and fatal()
3668 * IPython/genutils.py (error): added error() and fatal()
3665 functions.
3669 functions.
3666
3670
3667 2003-03-18 *** Released version 0.2.15pre3
3671 2003-03-18 *** Released version 0.2.15pre3
3668
3672
3669 2003-03-18 Fernando Perez <fperez@colorado.edu>
3673 2003-03-18 Fernando Perez <fperez@colorado.edu>
3670
3674
3671 * setupext/install_data_ext.py
3675 * setupext/install_data_ext.py
3672 (install_data_ext.initialize_options): Class contributed by Jack
3676 (install_data_ext.initialize_options): Class contributed by Jack
3673 Moffit for fixing the old distutils hack. He is sending this to
3677 Moffit for fixing the old distutils hack. He is sending this to
3674 the distutils folks so in the future we may not need it as a
3678 the distutils folks so in the future we may not need it as a
3675 private fix.
3679 private fix.
3676
3680
3677 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3681 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3678 changes for Debian packaging. See his patch for full details.
3682 changes for Debian packaging. See his patch for full details.
3679 The old distutils hack of making the ipythonrc* files carry a
3683 The old distutils hack of making the ipythonrc* files carry a
3680 bogus .py extension is gone, at last. Examples were moved to a
3684 bogus .py extension is gone, at last. Examples were moved to a
3681 separate subdir under doc/, and the separate executable scripts
3685 separate subdir under doc/, and the separate executable scripts
3682 now live in their own directory. Overall a great cleanup. The
3686 now live in their own directory. Overall a great cleanup. The
3683 manual was updated to use the new files, and setup.py has been
3687 manual was updated to use the new files, and setup.py has been
3684 fixed for this setup.
3688 fixed for this setup.
3685
3689
3686 * IPython/PyColorize.py (Parser.usage): made non-executable and
3690 * IPython/PyColorize.py (Parser.usage): made non-executable and
3687 created a pycolor wrapper around it to be included as a script.
3691 created a pycolor wrapper around it to be included as a script.
3688
3692
3689 2003-03-12 *** Released version 0.2.15pre2
3693 2003-03-12 *** Released version 0.2.15pre2
3690
3694
3691 2003-03-12 Fernando Perez <fperez@colorado.edu>
3695 2003-03-12 Fernando Perez <fperez@colorado.edu>
3692
3696
3693 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3697 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3694 long-standing problem with garbage characters in some terminals.
3698 long-standing problem with garbage characters in some terminals.
3695 The issue was really that the \001 and \002 escapes must _only_ be
3699 The issue was really that the \001 and \002 escapes must _only_ be
3696 passed to input prompts (which call readline), but _never_ to
3700 passed to input prompts (which call readline), but _never_ to
3697 normal text to be printed on screen. I changed ColorANSI to have
3701 normal text to be printed on screen. I changed ColorANSI to have
3698 two classes: TermColors and InputTermColors, each with the
3702 two classes: TermColors and InputTermColors, each with the
3699 appropriate escapes for input prompts or normal text. The code in
3703 appropriate escapes for input prompts or normal text. The code in
3700 Prompts.py got slightly more complicated, but this very old and
3704 Prompts.py got slightly more complicated, but this very old and
3701 annoying bug is finally fixed.
3705 annoying bug is finally fixed.
3702
3706
3703 All the credit for nailing down the real origin of this problem
3707 All the credit for nailing down the real origin of this problem
3704 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3708 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3705 *Many* thanks to him for spending quite a bit of effort on this.
3709 *Many* thanks to him for spending quite a bit of effort on this.
3706
3710
3707 2003-03-05 *** Released version 0.2.15pre1
3711 2003-03-05 *** Released version 0.2.15pre1
3708
3712
3709 2003-03-03 Fernando Perez <fperez@colorado.edu>
3713 2003-03-03 Fernando Perez <fperez@colorado.edu>
3710
3714
3711 * IPython/FakeModule.py: Moved the former _FakeModule to a
3715 * IPython/FakeModule.py: Moved the former _FakeModule to a
3712 separate file, because it's also needed by Magic (to fix a similar
3716 separate file, because it's also needed by Magic (to fix a similar
3713 pickle-related issue in @run).
3717 pickle-related issue in @run).
3714
3718
3715 2003-03-02 Fernando Perez <fperez@colorado.edu>
3719 2003-03-02 Fernando Perez <fperez@colorado.edu>
3716
3720
3717 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3721 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3718 the autocall option at runtime.
3722 the autocall option at runtime.
3719 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3723 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3720 across Magic.py to start separating Magic from InteractiveShell.
3724 across Magic.py to start separating Magic from InteractiveShell.
3721 (Magic._ofind): Fixed to return proper namespace for dotted
3725 (Magic._ofind): Fixed to return proper namespace for dotted
3722 names. Before, a dotted name would always return 'not currently
3726 names. Before, a dotted name would always return 'not currently
3723 defined', because it would find the 'parent'. s.x would be found,
3727 defined', because it would find the 'parent'. s.x would be found,
3724 but since 'x' isn't defined by itself, it would get confused.
3728 but since 'x' isn't defined by itself, it would get confused.
3725 (Magic.magic_run): Fixed pickling problems reported by Ralf
3729 (Magic.magic_run): Fixed pickling problems reported by Ralf
3726 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3730 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3727 that I'd used when Mike Heeter reported similar issues at the
3731 that I'd used when Mike Heeter reported similar issues at the
3728 top-level, but now for @run. It boils down to injecting the
3732 top-level, but now for @run. It boils down to injecting the
3729 namespace where code is being executed with something that looks
3733 namespace where code is being executed with something that looks
3730 enough like a module to fool pickle.dump(). Since a pickle stores
3734 enough like a module to fool pickle.dump(). Since a pickle stores
3731 a named reference to the importing module, we need this for
3735 a named reference to the importing module, we need this for
3732 pickles to save something sensible.
3736 pickles to save something sensible.
3733
3737
3734 * IPython/ipmaker.py (make_IPython): added an autocall option.
3738 * IPython/ipmaker.py (make_IPython): added an autocall option.
3735
3739
3736 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3740 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3737 the auto-eval code. Now autocalling is an option, and the code is
3741 the auto-eval code. Now autocalling is an option, and the code is
3738 also vastly safer. There is no more eval() involved at all.
3742 also vastly safer. There is no more eval() involved at all.
3739
3743
3740 2003-03-01 Fernando Perez <fperez@colorado.edu>
3744 2003-03-01 Fernando Perez <fperez@colorado.edu>
3741
3745
3742 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3746 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3743 dict with named keys instead of a tuple.
3747 dict with named keys instead of a tuple.
3744
3748
3745 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3749 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3746
3750
3747 * setup.py (make_shortcut): Fixed message about directories
3751 * setup.py (make_shortcut): Fixed message about directories
3748 created during Windows installation (the directories were ok, just
3752 created during Windows installation (the directories were ok, just
3749 the printed message was misleading). Thanks to Chris Liechti
3753 the printed message was misleading). Thanks to Chris Liechti
3750 <cliechti-AT-gmx.net> for the heads up.
3754 <cliechti-AT-gmx.net> for the heads up.
3751
3755
3752 2003-02-21 Fernando Perez <fperez@colorado.edu>
3756 2003-02-21 Fernando Perez <fperez@colorado.edu>
3753
3757
3754 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3758 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3755 of ValueError exception when checking for auto-execution. This
3759 of ValueError exception when checking for auto-execution. This
3756 one is raised by things like Numeric arrays arr.flat when the
3760 one is raised by things like Numeric arrays arr.flat when the
3757 array is non-contiguous.
3761 array is non-contiguous.
3758
3762
3759 2003-01-31 Fernando Perez <fperez@colorado.edu>
3763 2003-01-31 Fernando Perez <fperez@colorado.edu>
3760
3764
3761 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3765 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3762 not return any value at all (even though the command would get
3766 not return any value at all (even though the command would get
3763 executed).
3767 executed).
3764 (xsys): Flush stdout right after printing the command to ensure
3768 (xsys): Flush stdout right after printing the command to ensure
3765 proper ordering of commands and command output in the total
3769 proper ordering of commands and command output in the total
3766 output.
3770 output.
3767 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3771 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3768 system/getoutput as defaults. The old ones are kept for
3772 system/getoutput as defaults. The old ones are kept for
3769 compatibility reasons, so no code which uses this library needs
3773 compatibility reasons, so no code which uses this library needs
3770 changing.
3774 changing.
3771
3775
3772 2003-01-27 *** Released version 0.2.14
3776 2003-01-27 *** Released version 0.2.14
3773
3777
3774 2003-01-25 Fernando Perez <fperez@colorado.edu>
3778 2003-01-25 Fernando Perez <fperez@colorado.edu>
3775
3779
3776 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3780 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3777 functions defined in previous edit sessions could not be re-edited
3781 functions defined in previous edit sessions could not be re-edited
3778 (because the temp files were immediately removed). Now temp files
3782 (because the temp files were immediately removed). Now temp files
3779 are removed only at IPython's exit.
3783 are removed only at IPython's exit.
3780 (Magic.magic_run): Improved @run to perform shell-like expansions
3784 (Magic.magic_run): Improved @run to perform shell-like expansions
3781 on its arguments (~users and $VARS). With this, @run becomes more
3785 on its arguments (~users and $VARS). With this, @run becomes more
3782 like a normal command-line.
3786 like a normal command-line.
3783
3787
3784 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3788 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3785 bugs related to embedding and cleaned up that code. A fairly
3789 bugs related to embedding and cleaned up that code. A fairly
3786 important one was the impossibility to access the global namespace
3790 important one was the impossibility to access the global namespace
3787 through the embedded IPython (only local variables were visible).
3791 through the embedded IPython (only local variables were visible).
3788
3792
3789 2003-01-14 Fernando Perez <fperez@colorado.edu>
3793 2003-01-14 Fernando Perez <fperez@colorado.edu>
3790
3794
3791 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3795 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3792 auto-calling to be a bit more conservative. Now it doesn't get
3796 auto-calling to be a bit more conservative. Now it doesn't get
3793 triggered if any of '!=()<>' are in the rest of the input line, to
3797 triggered if any of '!=()<>' are in the rest of the input line, to
3794 allow comparing callables. Thanks to Alex for the heads up.
3798 allow comparing callables. Thanks to Alex for the heads up.
3795
3799
3796 2003-01-07 Fernando Perez <fperez@colorado.edu>
3800 2003-01-07 Fernando Perez <fperez@colorado.edu>
3797
3801
3798 * IPython/genutils.py (page): fixed estimation of the number of
3802 * IPython/genutils.py (page): fixed estimation of the number of
3799 lines in a string to be paged to simply count newlines. This
3803 lines in a string to be paged to simply count newlines. This
3800 prevents over-guessing due to embedded escape sequences. A better
3804 prevents over-guessing due to embedded escape sequences. A better
3801 long-term solution would involve stripping out the control chars
3805 long-term solution would involve stripping out the control chars
3802 for the count, but it's potentially so expensive I just don't
3806 for the count, but it's potentially so expensive I just don't
3803 think it's worth doing.
3807 think it's worth doing.
3804
3808
3805 2002-12-19 *** Released version 0.2.14pre50
3809 2002-12-19 *** Released version 0.2.14pre50
3806
3810
3807 2002-12-19 Fernando Perez <fperez@colorado.edu>
3811 2002-12-19 Fernando Perez <fperez@colorado.edu>
3808
3812
3809 * tools/release (version): Changed release scripts to inform
3813 * tools/release (version): Changed release scripts to inform
3810 Andrea and build a NEWS file with a list of recent changes.
3814 Andrea and build a NEWS file with a list of recent changes.
3811
3815
3812 * IPython/ColorANSI.py (__all__): changed terminal detection
3816 * IPython/ColorANSI.py (__all__): changed terminal detection
3813 code. Seems to work better for xterms without breaking
3817 code. Seems to work better for xterms without breaking
3814 konsole. Will need more testing to determine if WinXP and Mac OSX
3818 konsole. Will need more testing to determine if WinXP and Mac OSX
3815 also work ok.
3819 also work ok.
3816
3820
3817 2002-12-18 *** Released version 0.2.14pre49
3821 2002-12-18 *** Released version 0.2.14pre49
3818
3822
3819 2002-12-18 Fernando Perez <fperez@colorado.edu>
3823 2002-12-18 Fernando Perez <fperez@colorado.edu>
3820
3824
3821 * Docs: added new info about Mac OSX, from Andrea.
3825 * Docs: added new info about Mac OSX, from Andrea.
3822
3826
3823 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3827 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3824 allow direct plotting of python strings whose format is the same
3828 allow direct plotting of python strings whose format is the same
3825 of gnuplot data files.
3829 of gnuplot data files.
3826
3830
3827 2002-12-16 Fernando Perez <fperez@colorado.edu>
3831 2002-12-16 Fernando Perez <fperez@colorado.edu>
3828
3832
3829 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3833 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3830 value of exit question to be acknowledged.
3834 value of exit question to be acknowledged.
3831
3835
3832 2002-12-03 Fernando Perez <fperez@colorado.edu>
3836 2002-12-03 Fernando Perez <fperez@colorado.edu>
3833
3837
3834 * IPython/ipmaker.py: removed generators, which had been added
3838 * IPython/ipmaker.py: removed generators, which had been added
3835 by mistake in an earlier debugging run. This was causing trouble
3839 by mistake in an earlier debugging run. This was causing trouble
3836 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3840 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3837 for pointing this out.
3841 for pointing this out.
3838
3842
3839 2002-11-17 Fernando Perez <fperez@colorado.edu>
3843 2002-11-17 Fernando Perez <fperez@colorado.edu>
3840
3844
3841 * Manual: updated the Gnuplot section.
3845 * Manual: updated the Gnuplot section.
3842
3846
3843 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3847 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3844 a much better split of what goes in Runtime and what goes in
3848 a much better split of what goes in Runtime and what goes in
3845 Interactive.
3849 Interactive.
3846
3850
3847 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3851 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3848 being imported from iplib.
3852 being imported from iplib.
3849
3853
3850 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3854 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3851 for command-passing. Now the global Gnuplot instance is called
3855 for command-passing. Now the global Gnuplot instance is called
3852 'gp' instead of 'g', which was really a far too fragile and
3856 'gp' instead of 'g', which was really a far too fragile and
3853 common name.
3857 common name.
3854
3858
3855 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3859 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3856 bounding boxes generated by Gnuplot for square plots.
3860 bounding boxes generated by Gnuplot for square plots.
3857
3861
3858 * IPython/genutils.py (popkey): new function added. I should
3862 * IPython/genutils.py (popkey): new function added. I should
3859 suggest this on c.l.py as a dict method, it seems useful.
3863 suggest this on c.l.py as a dict method, it seems useful.
3860
3864
3861 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3865 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3862 to transparently handle PostScript generation. MUCH better than
3866 to transparently handle PostScript generation. MUCH better than
3863 the previous plot_eps/replot_eps (which I removed now). The code
3867 the previous plot_eps/replot_eps (which I removed now). The code
3864 is also fairly clean and well documented now (including
3868 is also fairly clean and well documented now (including
3865 docstrings).
3869 docstrings).
3866
3870
3867 2002-11-13 Fernando Perez <fperez@colorado.edu>
3871 2002-11-13 Fernando Perez <fperez@colorado.edu>
3868
3872
3869 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3873 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3870 (inconsistent with options).
3874 (inconsistent with options).
3871
3875
3872 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3876 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3873 manually disabled, I don't know why. Fixed it.
3877 manually disabled, I don't know why. Fixed it.
3874 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3878 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3875 eps output.
3879 eps output.
3876
3880
3877 2002-11-12 Fernando Perez <fperez@colorado.edu>
3881 2002-11-12 Fernando Perez <fperez@colorado.edu>
3878
3882
3879 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3883 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3880 don't propagate up to caller. Fixes crash reported by François
3884 don't propagate up to caller. Fixes crash reported by François
3881 Pinard.
3885 Pinard.
3882
3886
3883 2002-11-09 Fernando Perez <fperez@colorado.edu>
3887 2002-11-09 Fernando Perez <fperez@colorado.edu>
3884
3888
3885 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3889 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3886 history file for new users.
3890 history file for new users.
3887 (make_IPython): fixed bug where initial install would leave the
3891 (make_IPython): fixed bug where initial install would leave the
3888 user running in the .ipython dir.
3892 user running in the .ipython dir.
3889 (make_IPython): fixed bug where config dir .ipython would be
3893 (make_IPython): fixed bug where config dir .ipython would be
3890 created regardless of the given -ipythondir option. Thanks to Cory
3894 created regardless of the given -ipythondir option. Thanks to Cory
3891 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3895 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3892
3896
3893 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3897 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3894 type confirmations. Will need to use it in all of IPython's code
3898 type confirmations. Will need to use it in all of IPython's code
3895 consistently.
3899 consistently.
3896
3900
3897 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3901 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3898 context to print 31 lines instead of the default 5. This will make
3902 context to print 31 lines instead of the default 5. This will make
3899 the crash reports extremely detailed in case the problem is in
3903 the crash reports extremely detailed in case the problem is in
3900 libraries I don't have access to.
3904 libraries I don't have access to.
3901
3905
3902 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3906 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3903 line of defense' code to still crash, but giving users fair
3907 line of defense' code to still crash, but giving users fair
3904 warning. I don't want internal errors to go unreported: if there's
3908 warning. I don't want internal errors to go unreported: if there's
3905 an internal problem, IPython should crash and generate a full
3909 an internal problem, IPython should crash and generate a full
3906 report.
3910 report.
3907
3911
3908 2002-11-08 Fernando Perez <fperez@colorado.edu>
3912 2002-11-08 Fernando Perez <fperez@colorado.edu>
3909
3913
3910 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3914 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3911 otherwise uncaught exceptions which can appear if people set
3915 otherwise uncaught exceptions which can appear if people set
3912 sys.stdout to something badly broken. Thanks to a crash report
3916 sys.stdout to something badly broken. Thanks to a crash report
3913 from henni-AT-mail.brainbot.com.
3917 from henni-AT-mail.brainbot.com.
3914
3918
3915 2002-11-04 Fernando Perez <fperez@colorado.edu>
3919 2002-11-04 Fernando Perez <fperez@colorado.edu>
3916
3920
3917 * IPython/iplib.py (InteractiveShell.interact): added
3921 * IPython/iplib.py (InteractiveShell.interact): added
3918 __IPYTHON__active to the builtins. It's a flag which goes on when
3922 __IPYTHON__active to the builtins. It's a flag which goes on when
3919 the interaction starts and goes off again when it stops. This
3923 the interaction starts and goes off again when it stops. This
3920 allows embedding code to detect being inside IPython. Before this
3924 allows embedding code to detect being inside IPython. Before this
3921 was done via __IPYTHON__, but that only shows that an IPython
3925 was done via __IPYTHON__, but that only shows that an IPython
3922 instance has been created.
3926 instance has been created.
3923
3927
3924 * IPython/Magic.py (Magic.magic_env): I realized that in a
3928 * IPython/Magic.py (Magic.magic_env): I realized that in a
3925 UserDict, instance.data holds the data as a normal dict. So I
3929 UserDict, instance.data holds the data as a normal dict. So I
3926 modified @env to return os.environ.data instead of rebuilding a
3930 modified @env to return os.environ.data instead of rebuilding a
3927 dict by hand.
3931 dict by hand.
3928
3932
3929 2002-11-02 Fernando Perez <fperez@colorado.edu>
3933 2002-11-02 Fernando Perez <fperez@colorado.edu>
3930
3934
3931 * IPython/genutils.py (warn): changed so that level 1 prints no
3935 * IPython/genutils.py (warn): changed so that level 1 prints no
3932 header. Level 2 is now the default (with 'WARNING' header, as
3936 header. Level 2 is now the default (with 'WARNING' header, as
3933 before). I think I tracked all places where changes were needed in
3937 before). I think I tracked all places where changes were needed in
3934 IPython, but outside code using the old level numbering may have
3938 IPython, but outside code using the old level numbering may have
3935 broken.
3939 broken.
3936
3940
3937 * IPython/iplib.py (InteractiveShell.runcode): added this to
3941 * IPython/iplib.py (InteractiveShell.runcode): added this to
3938 handle the tracebacks in SystemExit traps correctly. The previous
3942 handle the tracebacks in SystemExit traps correctly. The previous
3939 code (through interact) was printing more of the stack than
3943 code (through interact) was printing more of the stack than
3940 necessary, showing IPython internal code to the user.
3944 necessary, showing IPython internal code to the user.
3941
3945
3942 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3946 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3943 default. Now that the default at the confirmation prompt is yes,
3947 default. Now that the default at the confirmation prompt is yes,
3944 it's not so intrusive. François' argument that ipython sessions
3948 it's not so intrusive. François' argument that ipython sessions
3945 tend to be complex enough not to lose them from an accidental C-d,
3949 tend to be complex enough not to lose them from an accidental C-d,
3946 is a valid one.
3950 is a valid one.
3947
3951
3948 * IPython/iplib.py (InteractiveShell.interact): added a
3952 * IPython/iplib.py (InteractiveShell.interact): added a
3949 showtraceback() call to the SystemExit trap, and modified the exit
3953 showtraceback() call to the SystemExit trap, and modified the exit
3950 confirmation to have yes as the default.
3954 confirmation to have yes as the default.
3951
3955
3952 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3956 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3953 this file. It's been gone from the code for a long time, this was
3957 this file. It's been gone from the code for a long time, this was
3954 simply leftover junk.
3958 simply leftover junk.
3955
3959
3956 2002-11-01 Fernando Perez <fperez@colorado.edu>
3960 2002-11-01 Fernando Perez <fperez@colorado.edu>
3957
3961
3958 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3962 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3959 added. If set, IPython now traps EOF and asks for
3963 added. If set, IPython now traps EOF and asks for
3960 confirmation. After a request by François Pinard.
3964 confirmation. After a request by François Pinard.
3961
3965
3962 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3966 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3963 of @abort, and with a new (better) mechanism for handling the
3967 of @abort, and with a new (better) mechanism for handling the
3964 exceptions.
3968 exceptions.
3965
3969
3966 2002-10-27 Fernando Perez <fperez@colorado.edu>
3970 2002-10-27 Fernando Perez <fperez@colorado.edu>
3967
3971
3968 * IPython/usage.py (__doc__): updated the --help information and
3972 * IPython/usage.py (__doc__): updated the --help information and
3969 the ipythonrc file to indicate that -log generates
3973 the ipythonrc file to indicate that -log generates
3970 ./ipython.log. Also fixed the corresponding info in @logstart.
3974 ./ipython.log. Also fixed the corresponding info in @logstart.
3971 This and several other fixes in the manuals thanks to reports by
3975 This and several other fixes in the manuals thanks to reports by
3972 François Pinard <pinard-AT-iro.umontreal.ca>.
3976 François Pinard <pinard-AT-iro.umontreal.ca>.
3973
3977
3974 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3978 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3975 refer to @logstart (instead of @log, which doesn't exist).
3979 refer to @logstart (instead of @log, which doesn't exist).
3976
3980
3977 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3981 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3978 AttributeError crash. Thanks to Christopher Armstrong
3982 AttributeError crash. Thanks to Christopher Armstrong
3979 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3983 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3980 introduced recently (in 0.2.14pre37) with the fix to the eval
3984 introduced recently (in 0.2.14pre37) with the fix to the eval
3981 problem mentioned below.
3985 problem mentioned below.
3982
3986
3983 2002-10-17 Fernando Perez <fperez@colorado.edu>
3987 2002-10-17 Fernando Perez <fperez@colorado.edu>
3984
3988
3985 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3989 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3986 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3990 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3987
3991
3988 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3992 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3989 this function to fix a problem reported by Alex Schmolck. He saw
3993 this function to fix a problem reported by Alex Schmolck. He saw
3990 it with list comprehensions and generators, which were getting
3994 it with list comprehensions and generators, which were getting
3991 called twice. The real problem was an 'eval' call in testing for
3995 called twice. The real problem was an 'eval' call in testing for
3992 automagic which was evaluating the input line silently.
3996 automagic which was evaluating the input line silently.
3993
3997
3994 This is a potentially very nasty bug, if the input has side
3998 This is a potentially very nasty bug, if the input has side
3995 effects which must not be repeated. The code is much cleaner now,
3999 effects which must not be repeated. The code is much cleaner now,
3996 without any blanket 'except' left and with a regexp test for
4000 without any blanket 'except' left and with a regexp test for
3997 actual function names.
4001 actual function names.
3998
4002
3999 But an eval remains, which I'm not fully comfortable with. I just
4003 But an eval remains, which I'm not fully comfortable with. I just
4000 don't know how to find out if an expression could be a callable in
4004 don't know how to find out if an expression could be a callable in
4001 the user's namespace without doing an eval on the string. However
4005 the user's namespace without doing an eval on the string. However
4002 that string is now much more strictly checked so that no code
4006 that string is now much more strictly checked so that no code
4003 slips by, so the eval should only happen for things that can
4007 slips by, so the eval should only happen for things that can
4004 really be only function/method names.
4008 really be only function/method names.
4005
4009
4006 2002-10-15 Fernando Perez <fperez@colorado.edu>
4010 2002-10-15 Fernando Perez <fperez@colorado.edu>
4007
4011
4008 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4012 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4009 OSX information to main manual, removed README_Mac_OSX file from
4013 OSX information to main manual, removed README_Mac_OSX file from
4010 distribution. Also updated credits for recent additions.
4014 distribution. Also updated credits for recent additions.
4011
4015
4012 2002-10-10 Fernando Perez <fperez@colorado.edu>
4016 2002-10-10 Fernando Perez <fperez@colorado.edu>
4013
4017
4014 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4018 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4015 terminal-related issues. Many thanks to Andrea Riciputi
4019 terminal-related issues. Many thanks to Andrea Riciputi
4016 <andrea.riciputi-AT-libero.it> for writing it.
4020 <andrea.riciputi-AT-libero.it> for writing it.
4017
4021
4018 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4022 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4019 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4023 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4020
4024
4021 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4025 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4022 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4026 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4023 <syver-en-AT-online.no> who both submitted patches for this problem.
4027 <syver-en-AT-online.no> who both submitted patches for this problem.
4024
4028
4025 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4029 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4026 global embedding to make sure that things don't overwrite user
4030 global embedding to make sure that things don't overwrite user
4027 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4031 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4028
4032
4029 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4033 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4030 compatibility. Thanks to Hayden Callow
4034 compatibility. Thanks to Hayden Callow
4031 <h.callow-AT-elec.canterbury.ac.nz>
4035 <h.callow-AT-elec.canterbury.ac.nz>
4032
4036
4033 2002-10-04 Fernando Perez <fperez@colorado.edu>
4037 2002-10-04 Fernando Perez <fperez@colorado.edu>
4034
4038
4035 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4039 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4036 Gnuplot.File objects.
4040 Gnuplot.File objects.
4037
4041
4038 2002-07-23 Fernando Perez <fperez@colorado.edu>
4042 2002-07-23 Fernando Perez <fperez@colorado.edu>
4039
4043
4040 * IPython/genutils.py (timing): Added timings() and timing() for
4044 * IPython/genutils.py (timing): Added timings() and timing() for
4041 quick access to the most commonly needed data, the execution
4045 quick access to the most commonly needed data, the execution
4042 times. Old timing() renamed to timings_out().
4046 times. Old timing() renamed to timings_out().
4043
4047
4044 2002-07-18 Fernando Perez <fperez@colorado.edu>
4048 2002-07-18 Fernando Perez <fperez@colorado.edu>
4045
4049
4046 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4050 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4047 bug with nested instances disrupting the parent's tab completion.
4051 bug with nested instances disrupting the parent's tab completion.
4048
4052
4049 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4053 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4050 all_completions code to begin the emacs integration.
4054 all_completions code to begin the emacs integration.
4051
4055
4052 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4056 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4053 argument to allow titling individual arrays when plotting.
4057 argument to allow titling individual arrays when plotting.
4054
4058
4055 2002-07-15 Fernando Perez <fperez@colorado.edu>
4059 2002-07-15 Fernando Perez <fperez@colorado.edu>
4056
4060
4057 * setup.py (make_shortcut): changed to retrieve the value of
4061 * setup.py (make_shortcut): changed to retrieve the value of
4058 'Program Files' directory from the registry (this value changes in
4062 'Program Files' directory from the registry (this value changes in
4059 non-english versions of Windows). Thanks to Thomas Fanslau
4063 non-english versions of Windows). Thanks to Thomas Fanslau
4060 <tfanslau-AT-gmx.de> for the report.
4064 <tfanslau-AT-gmx.de> for the report.
4061
4065
4062 2002-07-10 Fernando Perez <fperez@colorado.edu>
4066 2002-07-10 Fernando Perez <fperez@colorado.edu>
4063
4067
4064 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4068 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4065 a bug in pdb, which crashes if a line with only whitespace is
4069 a bug in pdb, which crashes if a line with only whitespace is
4066 entered. Bug report submitted to sourceforge.
4070 entered. Bug report submitted to sourceforge.
4067
4071
4068 2002-07-09 Fernando Perez <fperez@colorado.edu>
4072 2002-07-09 Fernando Perez <fperez@colorado.edu>
4069
4073
4070 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4074 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4071 reporting exceptions (it's a bug in inspect.py, I just set a
4075 reporting exceptions (it's a bug in inspect.py, I just set a
4072 workaround).
4076 workaround).
4073
4077
4074 2002-07-08 Fernando Perez <fperez@colorado.edu>
4078 2002-07-08 Fernando Perez <fperez@colorado.edu>
4075
4079
4076 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4080 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4077 __IPYTHON__ in __builtins__ to show up in user_ns.
4081 __IPYTHON__ in __builtins__ to show up in user_ns.
4078
4082
4079 2002-07-03 Fernando Perez <fperez@colorado.edu>
4083 2002-07-03 Fernando Perez <fperez@colorado.edu>
4080
4084
4081 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4085 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4082 name from @gp_set_instance to @gp_set_default.
4086 name from @gp_set_instance to @gp_set_default.
4083
4087
4084 * IPython/ipmaker.py (make_IPython): default editor value set to
4088 * IPython/ipmaker.py (make_IPython): default editor value set to
4085 '0' (a string), to match the rc file. Otherwise will crash when
4089 '0' (a string), to match the rc file. Otherwise will crash when
4086 .strip() is called on it.
4090 .strip() is called on it.
4087
4091
4088
4092
4089 2002-06-28 Fernando Perez <fperez@colorado.edu>
4093 2002-06-28 Fernando Perez <fperez@colorado.edu>
4090
4094
4091 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4095 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4092 of files in current directory when a file is executed via
4096 of files in current directory when a file is executed via
4093 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4097 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4094
4098
4095 * setup.py (manfiles): fix for rpm builds, submitted by RA
4099 * setup.py (manfiles): fix for rpm builds, submitted by RA
4096 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4100 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4097
4101
4098 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4102 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4099 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4103 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4100 string!). A. Schmolck caught this one.
4104 string!). A. Schmolck caught this one.
4101
4105
4102 2002-06-27 Fernando Perez <fperez@colorado.edu>
4106 2002-06-27 Fernando Perez <fperez@colorado.edu>
4103
4107
4104 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4108 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4105 defined files at the cmd line. __name__ wasn't being set to
4109 defined files at the cmd line. __name__ wasn't being set to
4106 __main__.
4110 __main__.
4107
4111
4108 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4112 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4109 regular lists and tuples besides Numeric arrays.
4113 regular lists and tuples besides Numeric arrays.
4110
4114
4111 * IPython/Prompts.py (CachedOutput.__call__): Added output
4115 * IPython/Prompts.py (CachedOutput.__call__): Added output
4112 supression for input ending with ';'. Similar to Mathematica and
4116 supression for input ending with ';'. Similar to Mathematica and
4113 Matlab. The _* vars and Out[] list are still updated, just like
4117 Matlab. The _* vars and Out[] list are still updated, just like
4114 Mathematica behaves.
4118 Mathematica behaves.
4115
4119
4116 2002-06-25 Fernando Perez <fperez@colorado.edu>
4120 2002-06-25 Fernando Perez <fperez@colorado.edu>
4117
4121
4118 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4122 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4119 .ini extensions for profiels under Windows.
4123 .ini extensions for profiels under Windows.
4120
4124
4121 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4125 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4122 string form. Fix contributed by Alexander Schmolck
4126 string form. Fix contributed by Alexander Schmolck
4123 <a.schmolck-AT-gmx.net>
4127 <a.schmolck-AT-gmx.net>
4124
4128
4125 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4129 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4126 pre-configured Gnuplot instance.
4130 pre-configured Gnuplot instance.
4127
4131
4128 2002-06-21 Fernando Perez <fperez@colorado.edu>
4132 2002-06-21 Fernando Perez <fperez@colorado.edu>
4129
4133
4130 * IPython/numutils.py (exp_safe): new function, works around the
4134 * IPython/numutils.py (exp_safe): new function, works around the
4131 underflow problems in Numeric.
4135 underflow problems in Numeric.
4132 (log2): New fn. Safe log in base 2: returns exact integer answer
4136 (log2): New fn. Safe log in base 2: returns exact integer answer
4133 for exact integer powers of 2.
4137 for exact integer powers of 2.
4134
4138
4135 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4139 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4136 properly.
4140 properly.
4137
4141
4138 2002-06-20 Fernando Perez <fperez@colorado.edu>
4142 2002-06-20 Fernando Perez <fperez@colorado.edu>
4139
4143
4140 * IPython/genutils.py (timing): new function like
4144 * IPython/genutils.py (timing): new function like
4141 Mathematica's. Similar to time_test, but returns more info.
4145 Mathematica's. Similar to time_test, but returns more info.
4142
4146
4143 2002-06-18 Fernando Perez <fperez@colorado.edu>
4147 2002-06-18 Fernando Perez <fperez@colorado.edu>
4144
4148
4145 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4149 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4146 according to Mike Heeter's suggestions.
4150 according to Mike Heeter's suggestions.
4147
4151
4148 2002-06-16 Fernando Perez <fperez@colorado.edu>
4152 2002-06-16 Fernando Perez <fperez@colorado.edu>
4149
4153
4150 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4154 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4151 system. GnuplotMagic is gone as a user-directory option. New files
4155 system. GnuplotMagic is gone as a user-directory option. New files
4152 make it easier to use all the gnuplot stuff both from external
4156 make it easier to use all the gnuplot stuff both from external
4153 programs as well as from IPython. Had to rewrite part of
4157 programs as well as from IPython. Had to rewrite part of
4154 hardcopy() b/c of a strange bug: often the ps files simply don't
4158 hardcopy() b/c of a strange bug: often the ps files simply don't
4155 get created, and require a repeat of the command (often several
4159 get created, and require a repeat of the command (often several
4156 times).
4160 times).
4157
4161
4158 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4162 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4159 resolve output channel at call time, so that if sys.stderr has
4163 resolve output channel at call time, so that if sys.stderr has
4160 been redirected by user this gets honored.
4164 been redirected by user this gets honored.
4161
4165
4162 2002-06-13 Fernando Perez <fperez@colorado.edu>
4166 2002-06-13 Fernando Perez <fperez@colorado.edu>
4163
4167
4164 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4168 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4165 IPShell. Kept a copy with the old names to avoid breaking people's
4169 IPShell. Kept a copy with the old names to avoid breaking people's
4166 embedded code.
4170 embedded code.
4167
4171
4168 * IPython/ipython: simplified it to the bare minimum after
4172 * IPython/ipython: simplified it to the bare minimum after
4169 Holger's suggestions. Added info about how to use it in
4173 Holger's suggestions. Added info about how to use it in
4170 PYTHONSTARTUP.
4174 PYTHONSTARTUP.
4171
4175
4172 * IPython/Shell.py (IPythonShell): changed the options passing
4176 * IPython/Shell.py (IPythonShell): changed the options passing
4173 from a string with funky %s replacements to a straight list. Maybe
4177 from a string with funky %s replacements to a straight list. Maybe
4174 a bit more typing, but it follows sys.argv conventions, so there's
4178 a bit more typing, but it follows sys.argv conventions, so there's
4175 less special-casing to remember.
4179 less special-casing to remember.
4176
4180
4177 2002-06-12 Fernando Perez <fperez@colorado.edu>
4181 2002-06-12 Fernando Perez <fperez@colorado.edu>
4178
4182
4179 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4183 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4180 command. Thanks to a suggestion by Mike Heeter.
4184 command. Thanks to a suggestion by Mike Heeter.
4181 (Magic.magic_pfile): added behavior to look at filenames if given
4185 (Magic.magic_pfile): added behavior to look at filenames if given
4182 arg is not a defined object.
4186 arg is not a defined object.
4183 (Magic.magic_save): New @save function to save code snippets. Also
4187 (Magic.magic_save): New @save function to save code snippets. Also
4184 a Mike Heeter idea.
4188 a Mike Heeter idea.
4185
4189
4186 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4190 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4187 plot() and replot(). Much more convenient now, especially for
4191 plot() and replot(). Much more convenient now, especially for
4188 interactive use.
4192 interactive use.
4189
4193
4190 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4194 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4191 filenames.
4195 filenames.
4192
4196
4193 2002-06-02 Fernando Perez <fperez@colorado.edu>
4197 2002-06-02 Fernando Perez <fperez@colorado.edu>
4194
4198
4195 * IPython/Struct.py (Struct.__init__): modified to admit
4199 * IPython/Struct.py (Struct.__init__): modified to admit
4196 initialization via another struct.
4200 initialization via another struct.
4197
4201
4198 * IPython/genutils.py (SystemExec.__init__): New stateful
4202 * IPython/genutils.py (SystemExec.__init__): New stateful
4199 interface to xsys and bq. Useful for writing system scripts.
4203 interface to xsys and bq. Useful for writing system scripts.
4200
4204
4201 2002-05-30 Fernando Perez <fperez@colorado.edu>
4205 2002-05-30 Fernando Perez <fperez@colorado.edu>
4202
4206
4203 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4207 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4204 documents. This will make the user download smaller (it's getting
4208 documents. This will make the user download smaller (it's getting
4205 too big).
4209 too big).
4206
4210
4207 2002-05-29 Fernando Perez <fperez@colorado.edu>
4211 2002-05-29 Fernando Perez <fperez@colorado.edu>
4208
4212
4209 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4213 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4210 fix problems with shelve and pickle. Seems to work, but I don't
4214 fix problems with shelve and pickle. Seems to work, but I don't
4211 know if corner cases break it. Thanks to Mike Heeter
4215 know if corner cases break it. Thanks to Mike Heeter
4212 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4216 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4213
4217
4214 2002-05-24 Fernando Perez <fperez@colorado.edu>
4218 2002-05-24 Fernando Perez <fperez@colorado.edu>
4215
4219
4216 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4220 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4217 macros having broken.
4221 macros having broken.
4218
4222
4219 2002-05-21 Fernando Perez <fperez@colorado.edu>
4223 2002-05-21 Fernando Perez <fperez@colorado.edu>
4220
4224
4221 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4225 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4222 introduced logging bug: all history before logging started was
4226 introduced logging bug: all history before logging started was
4223 being written one character per line! This came from the redesign
4227 being written one character per line! This came from the redesign
4224 of the input history as a special list which slices to strings,
4228 of the input history as a special list which slices to strings,
4225 not to lists.
4229 not to lists.
4226
4230
4227 2002-05-20 Fernando Perez <fperez@colorado.edu>
4231 2002-05-20 Fernando Perez <fperez@colorado.edu>
4228
4232
4229 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4233 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4230 be an attribute of all classes in this module. The design of these
4234 be an attribute of all classes in this module. The design of these
4231 classes needs some serious overhauling.
4235 classes needs some serious overhauling.
4232
4236
4233 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4237 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4234 which was ignoring '_' in option names.
4238 which was ignoring '_' in option names.
4235
4239
4236 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4240 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4237 'Verbose_novars' to 'Context' and made it the new default. It's a
4241 'Verbose_novars' to 'Context' and made it the new default. It's a
4238 bit more readable and also safer than verbose.
4242 bit more readable and also safer than verbose.
4239
4243
4240 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4244 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4241 triple-quoted strings.
4245 triple-quoted strings.
4242
4246
4243 * IPython/OInspect.py (__all__): new module exposing the object
4247 * IPython/OInspect.py (__all__): new module exposing the object
4244 introspection facilities. Now the corresponding magics are dummy
4248 introspection facilities. Now the corresponding magics are dummy
4245 wrappers around this. Having this module will make it much easier
4249 wrappers around this. Having this module will make it much easier
4246 to put these functions into our modified pdb.
4250 to put these functions into our modified pdb.
4247 This new object inspector system uses the new colorizing module,
4251 This new object inspector system uses the new colorizing module,
4248 so source code and other things are nicely syntax highlighted.
4252 so source code and other things are nicely syntax highlighted.
4249
4253
4250 2002-05-18 Fernando Perez <fperez@colorado.edu>
4254 2002-05-18 Fernando Perez <fperez@colorado.edu>
4251
4255
4252 * IPython/ColorANSI.py: Split the coloring tools into a separate
4256 * IPython/ColorANSI.py: Split the coloring tools into a separate
4253 module so I can use them in other code easier (they were part of
4257 module so I can use them in other code easier (they were part of
4254 ultraTB).
4258 ultraTB).
4255
4259
4256 2002-05-17 Fernando Perez <fperez@colorado.edu>
4260 2002-05-17 Fernando Perez <fperez@colorado.edu>
4257
4261
4258 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4262 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4259 fixed it to set the global 'g' also to the called instance, as
4263 fixed it to set the global 'g' also to the called instance, as
4260 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4264 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4261 user's 'g' variables).
4265 user's 'g' variables).
4262
4266
4263 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4267 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4264 global variables (aliases to _ih,_oh) so that users which expect
4268 global variables (aliases to _ih,_oh) so that users which expect
4265 In[5] or Out[7] to work aren't unpleasantly surprised.
4269 In[5] or Out[7] to work aren't unpleasantly surprised.
4266 (InputList.__getslice__): new class to allow executing slices of
4270 (InputList.__getslice__): new class to allow executing slices of
4267 input history directly. Very simple class, complements the use of
4271 input history directly. Very simple class, complements the use of
4268 macros.
4272 macros.
4269
4273
4270 2002-05-16 Fernando Perez <fperez@colorado.edu>
4274 2002-05-16 Fernando Perez <fperez@colorado.edu>
4271
4275
4272 * setup.py (docdirbase): make doc directory be just doc/IPython
4276 * setup.py (docdirbase): make doc directory be just doc/IPython
4273 without version numbers, it will reduce clutter for users.
4277 without version numbers, it will reduce clutter for users.
4274
4278
4275 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4279 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4276 execfile call to prevent possible memory leak. See for details:
4280 execfile call to prevent possible memory leak. See for details:
4277 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4281 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4278
4282
4279 2002-05-15 Fernando Perez <fperez@colorado.edu>
4283 2002-05-15 Fernando Perez <fperez@colorado.edu>
4280
4284
4281 * IPython/Magic.py (Magic.magic_psource): made the object
4285 * IPython/Magic.py (Magic.magic_psource): made the object
4282 introspection names be more standard: pdoc, pdef, pfile and
4286 introspection names be more standard: pdoc, pdef, pfile and
4283 psource. They all print/page their output, and it makes
4287 psource. They all print/page their output, and it makes
4284 remembering them easier. Kept old names for compatibility as
4288 remembering them easier. Kept old names for compatibility as
4285 aliases.
4289 aliases.
4286
4290
4287 2002-05-14 Fernando Perez <fperez@colorado.edu>
4291 2002-05-14 Fernando Perez <fperez@colorado.edu>
4288
4292
4289 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4293 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4290 what the mouse problem was. The trick is to use gnuplot with temp
4294 what the mouse problem was. The trick is to use gnuplot with temp
4291 files and NOT with pipes (for data communication), because having
4295 files and NOT with pipes (for data communication), because having
4292 both pipes and the mouse on is bad news.
4296 both pipes and the mouse on is bad news.
4293
4297
4294 2002-05-13 Fernando Perez <fperez@colorado.edu>
4298 2002-05-13 Fernando Perez <fperez@colorado.edu>
4295
4299
4296 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4300 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4297 bug. Information would be reported about builtins even when
4301 bug. Information would be reported about builtins even when
4298 user-defined functions overrode them.
4302 user-defined functions overrode them.
4299
4303
4300 2002-05-11 Fernando Perez <fperez@colorado.edu>
4304 2002-05-11 Fernando Perez <fperez@colorado.edu>
4301
4305
4302 * IPython/__init__.py (__all__): removed FlexCompleter from
4306 * IPython/__init__.py (__all__): removed FlexCompleter from
4303 __all__ so that things don't fail in platforms without readline.
4307 __all__ so that things don't fail in platforms without readline.
4304
4308
4305 2002-05-10 Fernando Perez <fperez@colorado.edu>
4309 2002-05-10 Fernando Perez <fperez@colorado.edu>
4306
4310
4307 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4311 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4308 it requires Numeric, effectively making Numeric a dependency for
4312 it requires Numeric, effectively making Numeric a dependency for
4309 IPython.
4313 IPython.
4310
4314
4311 * Released 0.2.13
4315 * Released 0.2.13
4312
4316
4313 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4317 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4314 profiler interface. Now all the major options from the profiler
4318 profiler interface. Now all the major options from the profiler
4315 module are directly supported in IPython, both for single
4319 module are directly supported in IPython, both for single
4316 expressions (@prun) and for full programs (@run -p).
4320 expressions (@prun) and for full programs (@run -p).
4317
4321
4318 2002-05-09 Fernando Perez <fperez@colorado.edu>
4322 2002-05-09 Fernando Perez <fperez@colorado.edu>
4319
4323
4320 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4324 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4321 magic properly formatted for screen.
4325 magic properly formatted for screen.
4322
4326
4323 * setup.py (make_shortcut): Changed things to put pdf version in
4327 * setup.py (make_shortcut): Changed things to put pdf version in
4324 doc/ instead of doc/manual (had to change lyxport a bit).
4328 doc/ instead of doc/manual (had to change lyxport a bit).
4325
4329
4326 * IPython/Magic.py (Profile.string_stats): made profile runs go
4330 * IPython/Magic.py (Profile.string_stats): made profile runs go
4327 through pager (they are long and a pager allows searching, saving,
4331 through pager (they are long and a pager allows searching, saving,
4328 etc.)
4332 etc.)
4329
4333
4330 2002-05-08 Fernando Perez <fperez@colorado.edu>
4334 2002-05-08 Fernando Perez <fperez@colorado.edu>
4331
4335
4332 * Released 0.2.12
4336 * Released 0.2.12
4333
4337
4334 2002-05-06 Fernando Perez <fperez@colorado.edu>
4338 2002-05-06 Fernando Perez <fperez@colorado.edu>
4335
4339
4336 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4340 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4337 introduced); 'hist n1 n2' was broken.
4341 introduced); 'hist n1 n2' was broken.
4338 (Magic.magic_pdb): added optional on/off arguments to @pdb
4342 (Magic.magic_pdb): added optional on/off arguments to @pdb
4339 (Magic.magic_run): added option -i to @run, which executes code in
4343 (Magic.magic_run): added option -i to @run, which executes code in
4340 the IPython namespace instead of a clean one. Also added @irun as
4344 the IPython namespace instead of a clean one. Also added @irun as
4341 an alias to @run -i.
4345 an alias to @run -i.
4342
4346
4343 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4347 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4344 fixed (it didn't really do anything, the namespaces were wrong).
4348 fixed (it didn't really do anything, the namespaces were wrong).
4345
4349
4346 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4350 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4347
4351
4348 * IPython/__init__.py (__all__): Fixed package namespace, now
4352 * IPython/__init__.py (__all__): Fixed package namespace, now
4349 'import IPython' does give access to IPython.<all> as
4353 'import IPython' does give access to IPython.<all> as
4350 expected. Also renamed __release__ to Release.
4354 expected. Also renamed __release__ to Release.
4351
4355
4352 * IPython/Debugger.py (__license__): created new Pdb class which
4356 * IPython/Debugger.py (__license__): created new Pdb class which
4353 functions like a drop-in for the normal pdb.Pdb but does NOT
4357 functions like a drop-in for the normal pdb.Pdb but does NOT
4354 import readline by default. This way it doesn't muck up IPython's
4358 import readline by default. This way it doesn't muck up IPython's
4355 readline handling, and now tab-completion finally works in the
4359 readline handling, and now tab-completion finally works in the
4356 debugger -- sort of. It completes things globally visible, but the
4360 debugger -- sort of. It completes things globally visible, but the
4357 completer doesn't track the stack as pdb walks it. That's a bit
4361 completer doesn't track the stack as pdb walks it. That's a bit
4358 tricky, and I'll have to implement it later.
4362 tricky, and I'll have to implement it later.
4359
4363
4360 2002-05-05 Fernando Perez <fperez@colorado.edu>
4364 2002-05-05 Fernando Perez <fperez@colorado.edu>
4361
4365
4362 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4366 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4363 magic docstrings when printed via ? (explicit \'s were being
4367 magic docstrings when printed via ? (explicit \'s were being
4364 printed).
4368 printed).
4365
4369
4366 * IPython/ipmaker.py (make_IPython): fixed namespace
4370 * IPython/ipmaker.py (make_IPython): fixed namespace
4367 identification bug. Now variables loaded via logs or command-line
4371 identification bug. Now variables loaded via logs or command-line
4368 files are recognized in the interactive namespace by @who.
4372 files are recognized in the interactive namespace by @who.
4369
4373
4370 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4374 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4371 log replay system stemming from the string form of Structs.
4375 log replay system stemming from the string form of Structs.
4372
4376
4373 * IPython/Magic.py (Macro.__init__): improved macros to properly
4377 * IPython/Magic.py (Macro.__init__): improved macros to properly
4374 handle magic commands in them.
4378 handle magic commands in them.
4375 (Magic.magic_logstart): usernames are now expanded so 'logstart
4379 (Magic.magic_logstart): usernames are now expanded so 'logstart
4376 ~/mylog' now works.
4380 ~/mylog' now works.
4377
4381
4378 * IPython/iplib.py (complete): fixed bug where paths starting with
4382 * IPython/iplib.py (complete): fixed bug where paths starting with
4379 '/' would be completed as magic names.
4383 '/' would be completed as magic names.
4380
4384
4381 2002-05-04 Fernando Perez <fperez@colorado.edu>
4385 2002-05-04 Fernando Perez <fperez@colorado.edu>
4382
4386
4383 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4387 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4384 allow running full programs under the profiler's control.
4388 allow running full programs under the profiler's control.
4385
4389
4386 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4390 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4387 mode to report exceptions verbosely but without formatting
4391 mode to report exceptions verbosely but without formatting
4388 variables. This addresses the issue of ipython 'freezing' (it's
4392 variables. This addresses the issue of ipython 'freezing' (it's
4389 not frozen, but caught in an expensive formatting loop) when huge
4393 not frozen, but caught in an expensive formatting loop) when huge
4390 variables are in the context of an exception.
4394 variables are in the context of an exception.
4391 (VerboseTB.text): Added '--->' markers at line where exception was
4395 (VerboseTB.text): Added '--->' markers at line where exception was
4392 triggered. Much clearer to read, especially in NoColor modes.
4396 triggered. Much clearer to read, especially in NoColor modes.
4393
4397
4394 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4398 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4395 implemented in reverse when changing to the new parse_options().
4399 implemented in reverse when changing to the new parse_options().
4396
4400
4397 2002-05-03 Fernando Perez <fperez@colorado.edu>
4401 2002-05-03 Fernando Perez <fperez@colorado.edu>
4398
4402
4399 * IPython/Magic.py (Magic.parse_options): new function so that
4403 * IPython/Magic.py (Magic.parse_options): new function so that
4400 magics can parse options easier.
4404 magics can parse options easier.
4401 (Magic.magic_prun): new function similar to profile.run(),
4405 (Magic.magic_prun): new function similar to profile.run(),
4402 suggested by Chris Hart.
4406 suggested by Chris Hart.
4403 (Magic.magic_cd): fixed behavior so that it only changes if
4407 (Magic.magic_cd): fixed behavior so that it only changes if
4404 directory actually is in history.
4408 directory actually is in history.
4405
4409
4406 * IPython/usage.py (__doc__): added information about potential
4410 * IPython/usage.py (__doc__): added information about potential
4407 slowness of Verbose exception mode when there are huge data
4411 slowness of Verbose exception mode when there are huge data
4408 structures to be formatted (thanks to Archie Paulson).
4412 structures to be formatted (thanks to Archie Paulson).
4409
4413
4410 * IPython/ipmaker.py (make_IPython): Changed default logging
4414 * IPython/ipmaker.py (make_IPython): Changed default logging
4411 (when simply called with -log) to use curr_dir/ipython.log in
4415 (when simply called with -log) to use curr_dir/ipython.log in
4412 rotate mode. Fixed crash which was occuring with -log before
4416 rotate mode. Fixed crash which was occuring with -log before
4413 (thanks to Jim Boyle).
4417 (thanks to Jim Boyle).
4414
4418
4415 2002-05-01 Fernando Perez <fperez@colorado.edu>
4419 2002-05-01 Fernando Perez <fperez@colorado.edu>
4416
4420
4417 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4421 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4418 was nasty -- though somewhat of a corner case).
4422 was nasty -- though somewhat of a corner case).
4419
4423
4420 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4424 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4421 text (was a bug).
4425 text (was a bug).
4422
4426
4423 2002-04-30 Fernando Perez <fperez@colorado.edu>
4427 2002-04-30 Fernando Perez <fperez@colorado.edu>
4424
4428
4425 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4429 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4426 a print after ^D or ^C from the user so that the In[] prompt
4430 a print after ^D or ^C from the user so that the In[] prompt
4427 doesn't over-run the gnuplot one.
4431 doesn't over-run the gnuplot one.
4428
4432
4429 2002-04-29 Fernando Perez <fperez@colorado.edu>
4433 2002-04-29 Fernando Perez <fperez@colorado.edu>
4430
4434
4431 * Released 0.2.10
4435 * Released 0.2.10
4432
4436
4433 * IPython/__release__.py (version): get date dynamically.
4437 * IPython/__release__.py (version): get date dynamically.
4434
4438
4435 * Misc. documentation updates thanks to Arnd's comments. Also ran
4439 * Misc. documentation updates thanks to Arnd's comments. Also ran
4436 a full spellcheck on the manual (hadn't been done in a while).
4440 a full spellcheck on the manual (hadn't been done in a while).
4437
4441
4438 2002-04-27 Fernando Perez <fperez@colorado.edu>
4442 2002-04-27 Fernando Perez <fperez@colorado.edu>
4439
4443
4440 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4444 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4441 starting a log in mid-session would reset the input history list.
4445 starting a log in mid-session would reset the input history list.
4442
4446
4443 2002-04-26 Fernando Perez <fperez@colorado.edu>
4447 2002-04-26 Fernando Perez <fperez@colorado.edu>
4444
4448
4445 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4449 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4446 all files were being included in an update. Now anything in
4450 all files were being included in an update. Now anything in
4447 UserConfig that matches [A-Za-z]*.py will go (this excludes
4451 UserConfig that matches [A-Za-z]*.py will go (this excludes
4448 __init__.py)
4452 __init__.py)
4449
4453
4450 2002-04-25 Fernando Perez <fperez@colorado.edu>
4454 2002-04-25 Fernando Perez <fperez@colorado.edu>
4451
4455
4452 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4456 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4453 to __builtins__ so that any form of embedded or imported code can
4457 to __builtins__ so that any form of embedded or imported code can
4454 test for being inside IPython.
4458 test for being inside IPython.
4455
4459
4456 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4460 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4457 changed to GnuplotMagic because it's now an importable module,
4461 changed to GnuplotMagic because it's now an importable module,
4458 this makes the name follow that of the standard Gnuplot module.
4462 this makes the name follow that of the standard Gnuplot module.
4459 GnuplotMagic can now be loaded at any time in mid-session.
4463 GnuplotMagic can now be loaded at any time in mid-session.
4460
4464
4461 2002-04-24 Fernando Perez <fperez@colorado.edu>
4465 2002-04-24 Fernando Perez <fperez@colorado.edu>
4462
4466
4463 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4467 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4464 the globals (IPython has its own namespace) and the
4468 the globals (IPython has its own namespace) and the
4465 PhysicalQuantity stuff is much better anyway.
4469 PhysicalQuantity stuff is much better anyway.
4466
4470
4467 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4471 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4468 embedding example to standard user directory for
4472 embedding example to standard user directory for
4469 distribution. Also put it in the manual.
4473 distribution. Also put it in the manual.
4470
4474
4471 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4475 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4472 instance as first argument (so it doesn't rely on some obscure
4476 instance as first argument (so it doesn't rely on some obscure
4473 hidden global).
4477 hidden global).
4474
4478
4475 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4479 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4476 delimiters. While it prevents ().TAB from working, it allows
4480 delimiters. While it prevents ().TAB from working, it allows
4477 completions in open (... expressions. This is by far a more common
4481 completions in open (... expressions. This is by far a more common
4478 case.
4482 case.
4479
4483
4480 2002-04-23 Fernando Perez <fperez@colorado.edu>
4484 2002-04-23 Fernando Perez <fperez@colorado.edu>
4481
4485
4482 * IPython/Extensions/InterpreterPasteInput.py: new
4486 * IPython/Extensions/InterpreterPasteInput.py: new
4483 syntax-processing module for pasting lines with >>> or ... at the
4487 syntax-processing module for pasting lines with >>> or ... at the
4484 start.
4488 start.
4485
4489
4486 * IPython/Extensions/PhysicalQ_Interactive.py
4490 * IPython/Extensions/PhysicalQ_Interactive.py
4487 (PhysicalQuantityInteractive.__int__): fixed to work with either
4491 (PhysicalQuantityInteractive.__int__): fixed to work with either
4488 Numeric or math.
4492 Numeric or math.
4489
4493
4490 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4494 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4491 provided profiles. Now we have:
4495 provided profiles. Now we have:
4492 -math -> math module as * and cmath with its own namespace.
4496 -math -> math module as * and cmath with its own namespace.
4493 -numeric -> Numeric as *, plus gnuplot & grace
4497 -numeric -> Numeric as *, plus gnuplot & grace
4494 -physics -> same as before
4498 -physics -> same as before
4495
4499
4496 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4500 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4497 user-defined magics wouldn't be found by @magic if they were
4501 user-defined magics wouldn't be found by @magic if they were
4498 defined as class methods. Also cleaned up the namespace search
4502 defined as class methods. Also cleaned up the namespace search
4499 logic and the string building (to use %s instead of many repeated
4503 logic and the string building (to use %s instead of many repeated
4500 string adds).
4504 string adds).
4501
4505
4502 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4506 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4503 of user-defined magics to operate with class methods (cleaner, in
4507 of user-defined magics to operate with class methods (cleaner, in
4504 line with the gnuplot code).
4508 line with the gnuplot code).
4505
4509
4506 2002-04-22 Fernando Perez <fperez@colorado.edu>
4510 2002-04-22 Fernando Perez <fperez@colorado.edu>
4507
4511
4508 * setup.py: updated dependency list so that manual is updated when
4512 * setup.py: updated dependency list so that manual is updated when
4509 all included files change.
4513 all included files change.
4510
4514
4511 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4515 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4512 the delimiter removal option (the fix is ugly right now).
4516 the delimiter removal option (the fix is ugly right now).
4513
4517
4514 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4518 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4515 all of the math profile (quicker loading, no conflict between
4519 all of the math profile (quicker loading, no conflict between
4516 g-9.8 and g-gnuplot).
4520 g-9.8 and g-gnuplot).
4517
4521
4518 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4522 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4519 name of post-mortem files to IPython_crash_report.txt.
4523 name of post-mortem files to IPython_crash_report.txt.
4520
4524
4521 * Cleanup/update of the docs. Added all the new readline info and
4525 * Cleanup/update of the docs. Added all the new readline info and
4522 formatted all lists as 'real lists'.
4526 formatted all lists as 'real lists'.
4523
4527
4524 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4528 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4525 tab-completion options, since the full readline parse_and_bind is
4529 tab-completion options, since the full readline parse_and_bind is
4526 now accessible.
4530 now accessible.
4527
4531
4528 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4532 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4529 handling of readline options. Now users can specify any string to
4533 handling of readline options. Now users can specify any string to
4530 be passed to parse_and_bind(), as well as the delimiters to be
4534 be passed to parse_and_bind(), as well as the delimiters to be
4531 removed.
4535 removed.
4532 (InteractiveShell.__init__): Added __name__ to the global
4536 (InteractiveShell.__init__): Added __name__ to the global
4533 namespace so that things like Itpl which rely on its existence
4537 namespace so that things like Itpl which rely on its existence
4534 don't crash.
4538 don't crash.
4535 (InteractiveShell._prefilter): Defined the default with a _ so
4539 (InteractiveShell._prefilter): Defined the default with a _ so
4536 that prefilter() is easier to override, while the default one
4540 that prefilter() is easier to override, while the default one
4537 remains available.
4541 remains available.
4538
4542
4539 2002-04-18 Fernando Perez <fperez@colorado.edu>
4543 2002-04-18 Fernando Perez <fperez@colorado.edu>
4540
4544
4541 * Added information about pdb in the docs.
4545 * Added information about pdb in the docs.
4542
4546
4543 2002-04-17 Fernando Perez <fperez@colorado.edu>
4547 2002-04-17 Fernando Perez <fperez@colorado.edu>
4544
4548
4545 * IPython/ipmaker.py (make_IPython): added rc_override option to
4549 * IPython/ipmaker.py (make_IPython): added rc_override option to
4546 allow passing config options at creation time which may override
4550 allow passing config options at creation time which may override
4547 anything set in the config files or command line. This is
4551 anything set in the config files or command line. This is
4548 particularly useful for configuring embedded instances.
4552 particularly useful for configuring embedded instances.
4549
4553
4550 2002-04-15 Fernando Perez <fperez@colorado.edu>
4554 2002-04-15 Fernando Perez <fperez@colorado.edu>
4551
4555
4552 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4556 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4553 crash embedded instances because of the input cache falling out of
4557 crash embedded instances because of the input cache falling out of
4554 sync with the output counter.
4558 sync with the output counter.
4555
4559
4556 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4560 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4557 mode which calls pdb after an uncaught exception in IPython itself.
4561 mode which calls pdb after an uncaught exception in IPython itself.
4558
4562
4559 2002-04-14 Fernando Perez <fperez@colorado.edu>
4563 2002-04-14 Fernando Perez <fperez@colorado.edu>
4560
4564
4561 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4565 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4562 readline, fix it back after each call.
4566 readline, fix it back after each call.
4563
4567
4564 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4568 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4565 method to force all access via __call__(), which guarantees that
4569 method to force all access via __call__(), which guarantees that
4566 traceback references are properly deleted.
4570 traceback references are properly deleted.
4567
4571
4568 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4572 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4569 improve printing when pprint is in use.
4573 improve printing when pprint is in use.
4570
4574
4571 2002-04-13 Fernando Perez <fperez@colorado.edu>
4575 2002-04-13 Fernando Perez <fperez@colorado.edu>
4572
4576
4573 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4577 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4574 exceptions aren't caught anymore. If the user triggers one, he
4578 exceptions aren't caught anymore. If the user triggers one, he
4575 should know why he's doing it and it should go all the way up,
4579 should know why he's doing it and it should go all the way up,
4576 just like any other exception. So now @abort will fully kill the
4580 just like any other exception. So now @abort will fully kill the
4577 embedded interpreter and the embedding code (unless that happens
4581 embedded interpreter and the embedding code (unless that happens
4578 to catch SystemExit).
4582 to catch SystemExit).
4579
4583
4580 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4584 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4581 and a debugger() method to invoke the interactive pdb debugger
4585 and a debugger() method to invoke the interactive pdb debugger
4582 after printing exception information. Also added the corresponding
4586 after printing exception information. Also added the corresponding
4583 -pdb option and @pdb magic to control this feature, and updated
4587 -pdb option and @pdb magic to control this feature, and updated
4584 the docs. After a suggestion from Christopher Hart
4588 the docs. After a suggestion from Christopher Hart
4585 (hart-AT-caltech.edu).
4589 (hart-AT-caltech.edu).
4586
4590
4587 2002-04-12 Fernando Perez <fperez@colorado.edu>
4591 2002-04-12 Fernando Perez <fperez@colorado.edu>
4588
4592
4589 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4593 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4590 the exception handlers defined by the user (not the CrashHandler)
4594 the exception handlers defined by the user (not the CrashHandler)
4591 so that user exceptions don't trigger an ipython bug report.
4595 so that user exceptions don't trigger an ipython bug report.
4592
4596
4593 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4597 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4594 configurable (it should have always been so).
4598 configurable (it should have always been so).
4595
4599
4596 2002-03-26 Fernando Perez <fperez@colorado.edu>
4600 2002-03-26 Fernando Perez <fperez@colorado.edu>
4597
4601
4598 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4602 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4599 and there to fix embedding namespace issues. This should all be
4603 and there to fix embedding namespace issues. This should all be
4600 done in a more elegant way.
4604 done in a more elegant way.
4601
4605
4602 2002-03-25 Fernando Perez <fperez@colorado.edu>
4606 2002-03-25 Fernando Perez <fperez@colorado.edu>
4603
4607
4604 * IPython/genutils.py (get_home_dir): Try to make it work under
4608 * IPython/genutils.py (get_home_dir): Try to make it work under
4605 win9x also.
4609 win9x also.
4606
4610
4607 2002-03-20 Fernando Perez <fperez@colorado.edu>
4611 2002-03-20 Fernando Perez <fperez@colorado.edu>
4608
4612
4609 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4613 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4610 sys.displayhook untouched upon __init__.
4614 sys.displayhook untouched upon __init__.
4611
4615
4612 2002-03-19 Fernando Perez <fperez@colorado.edu>
4616 2002-03-19 Fernando Perez <fperez@colorado.edu>
4613
4617
4614 * Released 0.2.9 (for embedding bug, basically).
4618 * Released 0.2.9 (for embedding bug, basically).
4615
4619
4616 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4620 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4617 exceptions so that enclosing shell's state can be restored.
4621 exceptions so that enclosing shell's state can be restored.
4618
4622
4619 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4623 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4620 naming conventions in the .ipython/ dir.
4624 naming conventions in the .ipython/ dir.
4621
4625
4622 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4626 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4623 from delimiters list so filenames with - in them get expanded.
4627 from delimiters list so filenames with - in them get expanded.
4624
4628
4625 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4629 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4626 sys.displayhook not being properly restored after an embedded call.
4630 sys.displayhook not being properly restored after an embedded call.
4627
4631
4628 2002-03-18 Fernando Perez <fperez@colorado.edu>
4632 2002-03-18 Fernando Perez <fperez@colorado.edu>
4629
4633
4630 * Released 0.2.8
4634 * Released 0.2.8
4631
4635
4632 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4636 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4633 some files weren't being included in a -upgrade.
4637 some files weren't being included in a -upgrade.
4634 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4638 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4635 on' so that the first tab completes.
4639 on' so that the first tab completes.
4636 (InteractiveShell.handle_magic): fixed bug with spaces around
4640 (InteractiveShell.handle_magic): fixed bug with spaces around
4637 quotes breaking many magic commands.
4641 quotes breaking many magic commands.
4638
4642
4639 * setup.py: added note about ignoring the syntax error messages at
4643 * setup.py: added note about ignoring the syntax error messages at
4640 installation.
4644 installation.
4641
4645
4642 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4646 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4643 streamlining the gnuplot interface, now there's only one magic @gp.
4647 streamlining the gnuplot interface, now there's only one magic @gp.
4644
4648
4645 2002-03-17 Fernando Perez <fperez@colorado.edu>
4649 2002-03-17 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * IPython/UserConfig/magic_gnuplot.py: new name for the
4651 * IPython/UserConfig/magic_gnuplot.py: new name for the
4648 example-magic_pm.py file. Much enhanced system, now with a shell
4652 example-magic_pm.py file. Much enhanced system, now with a shell
4649 for communicating directly with gnuplot, one command at a time.
4653 for communicating directly with gnuplot, one command at a time.
4650
4654
4651 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4655 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4652 setting __name__=='__main__'.
4656 setting __name__=='__main__'.
4653
4657
4654 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4658 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4655 mini-shell for accessing gnuplot from inside ipython. Should
4659 mini-shell for accessing gnuplot from inside ipython. Should
4656 extend it later for grace access too. Inspired by Arnd's
4660 extend it later for grace access too. Inspired by Arnd's
4657 suggestion.
4661 suggestion.
4658
4662
4659 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4663 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4660 calling magic functions with () in their arguments. Thanks to Arnd
4664 calling magic functions with () in their arguments. Thanks to Arnd
4661 Baecker for pointing this to me.
4665 Baecker for pointing this to me.
4662
4666
4663 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4667 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4664 infinitely for integer or complex arrays (only worked with floats).
4668 infinitely for integer or complex arrays (only worked with floats).
4665
4669
4666 2002-03-16 Fernando Perez <fperez@colorado.edu>
4670 2002-03-16 Fernando Perez <fperez@colorado.edu>
4667
4671
4668 * setup.py: Merged setup and setup_windows into a single script
4672 * setup.py: Merged setup and setup_windows into a single script
4669 which properly handles things for windows users.
4673 which properly handles things for windows users.
4670
4674
4671 2002-03-15 Fernando Perez <fperez@colorado.edu>
4675 2002-03-15 Fernando Perez <fperez@colorado.edu>
4672
4676
4673 * Big change to the manual: now the magics are all automatically
4677 * Big change to the manual: now the magics are all automatically
4674 documented. This information is generated from their docstrings
4678 documented. This information is generated from their docstrings
4675 and put in a latex file included by the manual lyx file. This way
4679 and put in a latex file included by the manual lyx file. This way
4676 we get always up to date information for the magics. The manual
4680 we get always up to date information for the magics. The manual
4677 now also has proper version information, also auto-synced.
4681 now also has proper version information, also auto-synced.
4678
4682
4679 For this to work, an undocumented --magic_docstrings option was added.
4683 For this to work, an undocumented --magic_docstrings option was added.
4680
4684
4681 2002-03-13 Fernando Perez <fperez@colorado.edu>
4685 2002-03-13 Fernando Perez <fperez@colorado.edu>
4682
4686
4683 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4687 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4684 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4688 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4685
4689
4686 2002-03-12 Fernando Perez <fperez@colorado.edu>
4690 2002-03-12 Fernando Perez <fperez@colorado.edu>
4687
4691
4688 * IPython/ultraTB.py (TermColors): changed color escapes again to
4692 * IPython/ultraTB.py (TermColors): changed color escapes again to
4689 fix the (old, reintroduced) line-wrapping bug. Basically, if
4693 fix the (old, reintroduced) line-wrapping bug. Basically, if
4690 \001..\002 aren't given in the color escapes, lines get wrapped
4694 \001..\002 aren't given in the color escapes, lines get wrapped
4691 weirdly. But giving those screws up old xterms and emacs terms. So
4695 weirdly. But giving those screws up old xterms and emacs terms. So
4692 I added some logic for emacs terms to be ok, but I can't identify old
4696 I added some logic for emacs terms to be ok, but I can't identify old
4693 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4697 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4694
4698
4695 2002-03-10 Fernando Perez <fperez@colorado.edu>
4699 2002-03-10 Fernando Perez <fperez@colorado.edu>
4696
4700
4697 * IPython/usage.py (__doc__): Various documentation cleanups and
4701 * IPython/usage.py (__doc__): Various documentation cleanups and
4698 updates, both in usage docstrings and in the manual.
4702 updates, both in usage docstrings and in the manual.
4699
4703
4700 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4704 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4701 handling of caching. Set minimum acceptabe value for having a
4705 handling of caching. Set minimum acceptabe value for having a
4702 cache at 20 values.
4706 cache at 20 values.
4703
4707
4704 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4708 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4705 install_first_time function to a method, renamed it and added an
4709 install_first_time function to a method, renamed it and added an
4706 'upgrade' mode. Now people can update their config directory with
4710 'upgrade' mode. Now people can update their config directory with
4707 a simple command line switch (-upgrade, also new).
4711 a simple command line switch (-upgrade, also new).
4708
4712
4709 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4713 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4710 @file (convenient for automagic users under Python >= 2.2).
4714 @file (convenient for automagic users under Python >= 2.2).
4711 Removed @files (it seemed more like a plural than an abbrev. of
4715 Removed @files (it seemed more like a plural than an abbrev. of
4712 'file show').
4716 'file show').
4713
4717
4714 * IPython/iplib.py (install_first_time): Fixed crash if there were
4718 * IPython/iplib.py (install_first_time): Fixed crash if there were
4715 backup files ('~') in .ipython/ install directory.
4719 backup files ('~') in .ipython/ install directory.
4716
4720
4717 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4721 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4718 system. Things look fine, but these changes are fairly
4722 system. Things look fine, but these changes are fairly
4719 intrusive. Test them for a few days.
4723 intrusive. Test them for a few days.
4720
4724
4721 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4725 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4722 the prompts system. Now all in/out prompt strings are user
4726 the prompts system. Now all in/out prompt strings are user
4723 controllable. This is particularly useful for embedding, as one
4727 controllable. This is particularly useful for embedding, as one
4724 can tag embedded instances with particular prompts.
4728 can tag embedded instances with particular prompts.
4725
4729
4726 Also removed global use of sys.ps1/2, which now allows nested
4730 Also removed global use of sys.ps1/2, which now allows nested
4727 embeddings without any problems. Added command-line options for
4731 embeddings without any problems. Added command-line options for
4728 the prompt strings.
4732 the prompt strings.
4729
4733
4730 2002-03-08 Fernando Perez <fperez@colorado.edu>
4734 2002-03-08 Fernando Perez <fperez@colorado.edu>
4731
4735
4732 * IPython/UserConfig/example-embed-short.py (ipshell): added
4736 * IPython/UserConfig/example-embed-short.py (ipshell): added
4733 example file with the bare minimum code for embedding.
4737 example file with the bare minimum code for embedding.
4734
4738
4735 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4739 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4736 functionality for the embeddable shell to be activated/deactivated
4740 functionality for the embeddable shell to be activated/deactivated
4737 either globally or at each call.
4741 either globally or at each call.
4738
4742
4739 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4743 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4740 rewriting the prompt with '--->' for auto-inputs with proper
4744 rewriting the prompt with '--->' for auto-inputs with proper
4741 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4745 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4742 this is handled by the prompts class itself, as it should.
4746 this is handled by the prompts class itself, as it should.
4743
4747
4744 2002-03-05 Fernando Perez <fperez@colorado.edu>
4748 2002-03-05 Fernando Perez <fperez@colorado.edu>
4745
4749
4746 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4750 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4747 @logstart to avoid name clashes with the math log function.
4751 @logstart to avoid name clashes with the math log function.
4748
4752
4749 * Big updates to X/Emacs section of the manual.
4753 * Big updates to X/Emacs section of the manual.
4750
4754
4751 * Removed ipython_emacs. Milan explained to me how to pass
4755 * Removed ipython_emacs. Milan explained to me how to pass
4752 arguments to ipython through Emacs. Some day I'm going to end up
4756 arguments to ipython through Emacs. Some day I'm going to end up
4753 learning some lisp...
4757 learning some lisp...
4754
4758
4755 2002-03-04 Fernando Perez <fperez@colorado.edu>
4759 2002-03-04 Fernando Perez <fperez@colorado.edu>
4756
4760
4757 * IPython/ipython_emacs: Created script to be used as the
4761 * IPython/ipython_emacs: Created script to be used as the
4758 py-python-command Emacs variable so we can pass IPython
4762 py-python-command Emacs variable so we can pass IPython
4759 parameters. I can't figure out how to tell Emacs directly to pass
4763 parameters. I can't figure out how to tell Emacs directly to pass
4760 parameters to IPython, so a dummy shell script will do it.
4764 parameters to IPython, so a dummy shell script will do it.
4761
4765
4762 Other enhancements made for things to work better under Emacs'
4766 Other enhancements made for things to work better under Emacs'
4763 various types of terminals. Many thanks to Milan Zamazal
4767 various types of terminals. Many thanks to Milan Zamazal
4764 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4768 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4765
4769
4766 2002-03-01 Fernando Perez <fperez@colorado.edu>
4770 2002-03-01 Fernando Perez <fperez@colorado.edu>
4767
4771
4768 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4772 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4769 that loading of readline is now optional. This gives better
4773 that loading of readline is now optional. This gives better
4770 control to emacs users.
4774 control to emacs users.
4771
4775
4772 * IPython/ultraTB.py (__date__): Modified color escape sequences
4776 * IPython/ultraTB.py (__date__): Modified color escape sequences
4773 and now things work fine under xterm and in Emacs' term buffers
4777 and now things work fine under xterm and in Emacs' term buffers
4774 (though not shell ones). Well, in emacs you get colors, but all
4778 (though not shell ones). Well, in emacs you get colors, but all
4775 seem to be 'light' colors (no difference between dark and light
4779 seem to be 'light' colors (no difference between dark and light
4776 ones). But the garbage chars are gone, and also in xterms. It
4780 ones). But the garbage chars are gone, and also in xterms. It
4777 seems that now I'm using 'cleaner' ansi sequences.
4781 seems that now I'm using 'cleaner' ansi sequences.
4778
4782
4779 2002-02-21 Fernando Perez <fperez@colorado.edu>
4783 2002-02-21 Fernando Perez <fperez@colorado.edu>
4780
4784
4781 * Released 0.2.7 (mainly to publish the scoping fix).
4785 * Released 0.2.7 (mainly to publish the scoping fix).
4782
4786
4783 * IPython/Logger.py (Logger.logstate): added. A corresponding
4787 * IPython/Logger.py (Logger.logstate): added. A corresponding
4784 @logstate magic was created.
4788 @logstate magic was created.
4785
4789
4786 * IPython/Magic.py: fixed nested scoping problem under Python
4790 * IPython/Magic.py: fixed nested scoping problem under Python
4787 2.1.x (automagic wasn't working).
4791 2.1.x (automagic wasn't working).
4788
4792
4789 2002-02-20 Fernando Perez <fperez@colorado.edu>
4793 2002-02-20 Fernando Perez <fperez@colorado.edu>
4790
4794
4791 * Released 0.2.6.
4795 * Released 0.2.6.
4792
4796
4793 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4797 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4794 option so that logs can come out without any headers at all.
4798 option so that logs can come out without any headers at all.
4795
4799
4796 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4800 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4797 SciPy.
4801 SciPy.
4798
4802
4799 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4803 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4800 that embedded IPython calls don't require vars() to be explicitly
4804 that embedded IPython calls don't require vars() to be explicitly
4801 passed. Now they are extracted from the caller's frame (code
4805 passed. Now they are extracted from the caller's frame (code
4802 snatched from Eric Jones' weave). Added better documentation to
4806 snatched from Eric Jones' weave). Added better documentation to
4803 the section on embedding and the example file.
4807 the section on embedding and the example file.
4804
4808
4805 * IPython/genutils.py (page): Changed so that under emacs, it just
4809 * IPython/genutils.py (page): Changed so that under emacs, it just
4806 prints the string. You can then page up and down in the emacs
4810 prints the string. You can then page up and down in the emacs
4807 buffer itself. This is how the builtin help() works.
4811 buffer itself. This is how the builtin help() works.
4808
4812
4809 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4813 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4810 macro scoping: macros need to be executed in the user's namespace
4814 macro scoping: macros need to be executed in the user's namespace
4811 to work as if they had been typed by the user.
4815 to work as if they had been typed by the user.
4812
4816
4813 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4817 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4814 execute automatically (no need to type 'exec...'). They then
4818 execute automatically (no need to type 'exec...'). They then
4815 behave like 'true macros'. The printing system was also modified
4819 behave like 'true macros'. The printing system was also modified
4816 for this to work.
4820 for this to work.
4817
4821
4818 2002-02-19 Fernando Perez <fperez@colorado.edu>
4822 2002-02-19 Fernando Perez <fperez@colorado.edu>
4819
4823
4820 * IPython/genutils.py (page_file): new function for paging files
4824 * IPython/genutils.py (page_file): new function for paging files
4821 in an OS-independent way. Also necessary for file viewing to work
4825 in an OS-independent way. Also necessary for file viewing to work
4822 well inside Emacs buffers.
4826 well inside Emacs buffers.
4823 (page): Added checks for being in an emacs buffer.
4827 (page): Added checks for being in an emacs buffer.
4824 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4828 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4825 same bug in iplib.
4829 same bug in iplib.
4826
4830
4827 2002-02-18 Fernando Perez <fperez@colorado.edu>
4831 2002-02-18 Fernando Perez <fperez@colorado.edu>
4828
4832
4829 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4833 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4830 of readline so that IPython can work inside an Emacs buffer.
4834 of readline so that IPython can work inside an Emacs buffer.
4831
4835
4832 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4836 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4833 method signatures (they weren't really bugs, but it looks cleaner
4837 method signatures (they weren't really bugs, but it looks cleaner
4834 and keeps PyChecker happy).
4838 and keeps PyChecker happy).
4835
4839
4836 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4840 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4837 for implementing various user-defined hooks. Currently only
4841 for implementing various user-defined hooks. Currently only
4838 display is done.
4842 display is done.
4839
4843
4840 * IPython/Prompts.py (CachedOutput._display): changed display
4844 * IPython/Prompts.py (CachedOutput._display): changed display
4841 functions so that they can be dynamically changed by users easily.
4845 functions so that they can be dynamically changed by users easily.
4842
4846
4843 * IPython/Extensions/numeric_formats.py (num_display): added an
4847 * IPython/Extensions/numeric_formats.py (num_display): added an
4844 extension for printing NumPy arrays in flexible manners. It
4848 extension for printing NumPy arrays in flexible manners. It
4845 doesn't do anything yet, but all the structure is in
4849 doesn't do anything yet, but all the structure is in
4846 place. Ultimately the plan is to implement output format control
4850 place. Ultimately the plan is to implement output format control
4847 like in Octave.
4851 like in Octave.
4848
4852
4849 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4853 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4850 methods are found at run-time by all the automatic machinery.
4854 methods are found at run-time by all the automatic machinery.
4851
4855
4852 2002-02-17 Fernando Perez <fperez@colorado.edu>
4856 2002-02-17 Fernando Perez <fperez@colorado.edu>
4853
4857
4854 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4858 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4855 whole file a little.
4859 whole file a little.
4856
4860
4857 * ToDo: closed this document. Now there's a new_design.lyx
4861 * ToDo: closed this document. Now there's a new_design.lyx
4858 document for all new ideas. Added making a pdf of it for the
4862 document for all new ideas. Added making a pdf of it for the
4859 end-user distro.
4863 end-user distro.
4860
4864
4861 * IPython/Logger.py (Logger.switch_log): Created this to replace
4865 * IPython/Logger.py (Logger.switch_log): Created this to replace
4862 logon() and logoff(). It also fixes a nasty crash reported by
4866 logon() and logoff(). It also fixes a nasty crash reported by
4863 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4867 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4864
4868
4865 * IPython/iplib.py (complete): got auto-completion to work with
4869 * IPython/iplib.py (complete): got auto-completion to work with
4866 automagic (I had wanted this for a long time).
4870 automagic (I had wanted this for a long time).
4867
4871
4868 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4872 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4869 to @file, since file() is now a builtin and clashes with automagic
4873 to @file, since file() is now a builtin and clashes with automagic
4870 for @file.
4874 for @file.
4871
4875
4872 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4876 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4873 of this was previously in iplib, which had grown to more than 2000
4877 of this was previously in iplib, which had grown to more than 2000
4874 lines, way too long. No new functionality, but it makes managing
4878 lines, way too long. No new functionality, but it makes managing
4875 the code a bit easier.
4879 the code a bit easier.
4876
4880
4877 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4881 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4878 information to crash reports.
4882 information to crash reports.
4879
4883
4880 2002-02-12 Fernando Perez <fperez@colorado.edu>
4884 2002-02-12 Fernando Perez <fperez@colorado.edu>
4881
4885
4882 * Released 0.2.5.
4886 * Released 0.2.5.
4883
4887
4884 2002-02-11 Fernando Perez <fperez@colorado.edu>
4888 2002-02-11 Fernando Perez <fperez@colorado.edu>
4885
4889
4886 * Wrote a relatively complete Windows installer. It puts
4890 * Wrote a relatively complete Windows installer. It puts
4887 everything in place, creates Start Menu entries and fixes the
4891 everything in place, creates Start Menu entries and fixes the
4888 color issues. Nothing fancy, but it works.
4892 color issues. Nothing fancy, but it works.
4889
4893
4890 2002-02-10 Fernando Perez <fperez@colorado.edu>
4894 2002-02-10 Fernando Perez <fperez@colorado.edu>
4891
4895
4892 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4896 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4893 os.path.expanduser() call so that we can type @run ~/myfile.py and
4897 os.path.expanduser() call so that we can type @run ~/myfile.py and
4894 have thigs work as expected.
4898 have thigs work as expected.
4895
4899
4896 * IPython/genutils.py (page): fixed exception handling so things
4900 * IPython/genutils.py (page): fixed exception handling so things
4897 work both in Unix and Windows correctly. Quitting a pager triggers
4901 work both in Unix and Windows correctly. Quitting a pager triggers
4898 an IOError/broken pipe in Unix, and in windows not finding a pager
4902 an IOError/broken pipe in Unix, and in windows not finding a pager
4899 is also an IOError, so I had to actually look at the return value
4903 is also an IOError, so I had to actually look at the return value
4900 of the exception, not just the exception itself. Should be ok now.
4904 of the exception, not just the exception itself. Should be ok now.
4901
4905
4902 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4906 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4903 modified to allow case-insensitive color scheme changes.
4907 modified to allow case-insensitive color scheme changes.
4904
4908
4905 2002-02-09 Fernando Perez <fperez@colorado.edu>
4909 2002-02-09 Fernando Perez <fperez@colorado.edu>
4906
4910
4907 * IPython/genutils.py (native_line_ends): new function to leave
4911 * IPython/genutils.py (native_line_ends): new function to leave
4908 user config files with os-native line-endings.
4912 user config files with os-native line-endings.
4909
4913
4910 * README and manual updates.
4914 * README and manual updates.
4911
4915
4912 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4916 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4913 instead of StringType to catch Unicode strings.
4917 instead of StringType to catch Unicode strings.
4914
4918
4915 * IPython/genutils.py (filefind): fixed bug for paths with
4919 * IPython/genutils.py (filefind): fixed bug for paths with
4916 embedded spaces (very common in Windows).
4920 embedded spaces (very common in Windows).
4917
4921
4918 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4922 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4919 files under Windows, so that they get automatically associated
4923 files under Windows, so that they get automatically associated
4920 with a text editor. Windows makes it a pain to handle
4924 with a text editor. Windows makes it a pain to handle
4921 extension-less files.
4925 extension-less files.
4922
4926
4923 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4927 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4924 warning about readline only occur for Posix. In Windows there's no
4928 warning about readline only occur for Posix. In Windows there's no
4925 way to get readline, so why bother with the warning.
4929 way to get readline, so why bother with the warning.
4926
4930
4927 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4931 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4928 for __str__ instead of dir(self), since dir() changed in 2.2.
4932 for __str__ instead of dir(self), since dir() changed in 2.2.
4929
4933
4930 * Ported to Windows! Tested on XP, I suspect it should work fine
4934 * Ported to Windows! Tested on XP, I suspect it should work fine
4931 on NT/2000, but I don't think it will work on 98 et al. That
4935 on NT/2000, but I don't think it will work on 98 et al. That
4932 series of Windows is such a piece of junk anyway that I won't try
4936 series of Windows is such a piece of junk anyway that I won't try
4933 porting it there. The XP port was straightforward, showed a few
4937 porting it there. The XP port was straightforward, showed a few
4934 bugs here and there (fixed all), in particular some string
4938 bugs here and there (fixed all), in particular some string
4935 handling stuff which required considering Unicode strings (which
4939 handling stuff which required considering Unicode strings (which
4936 Windows uses). This is good, but hasn't been too tested :) No
4940 Windows uses). This is good, but hasn't been too tested :) No
4937 fancy installer yet, I'll put a note in the manual so people at
4941 fancy installer yet, I'll put a note in the manual so people at
4938 least make manually a shortcut.
4942 least make manually a shortcut.
4939
4943
4940 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4944 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4941 into a single one, "colors". This now controls both prompt and
4945 into a single one, "colors". This now controls both prompt and
4942 exception color schemes, and can be changed both at startup
4946 exception color schemes, and can be changed both at startup
4943 (either via command-line switches or via ipythonrc files) and at
4947 (either via command-line switches or via ipythonrc files) and at
4944 runtime, with @colors.
4948 runtime, with @colors.
4945 (Magic.magic_run): renamed @prun to @run and removed the old
4949 (Magic.magic_run): renamed @prun to @run and removed the old
4946 @run. The two were too similar to warrant keeping both.
4950 @run. The two were too similar to warrant keeping both.
4947
4951
4948 2002-02-03 Fernando Perez <fperez@colorado.edu>
4952 2002-02-03 Fernando Perez <fperez@colorado.edu>
4949
4953
4950 * IPython/iplib.py (install_first_time): Added comment on how to
4954 * IPython/iplib.py (install_first_time): Added comment on how to
4951 configure the color options for first-time users. Put a <return>
4955 configure the color options for first-time users. Put a <return>
4952 request at the end so that small-terminal users get a chance to
4956 request at the end so that small-terminal users get a chance to
4953 read the startup info.
4957 read the startup info.
4954
4958
4955 2002-01-23 Fernando Perez <fperez@colorado.edu>
4959 2002-01-23 Fernando Perez <fperez@colorado.edu>
4956
4960
4957 * IPython/iplib.py (CachedOutput.update): Changed output memory
4961 * IPython/iplib.py (CachedOutput.update): Changed output memory
4958 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4962 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4959 input history we still use _i. Did this b/c these variable are
4963 input history we still use _i. Did this b/c these variable are
4960 very commonly used in interactive work, so the less we need to
4964 very commonly used in interactive work, so the less we need to
4961 type the better off we are.
4965 type the better off we are.
4962 (Magic.magic_prun): updated @prun to better handle the namespaces
4966 (Magic.magic_prun): updated @prun to better handle the namespaces
4963 the file will run in, including a fix for __name__ not being set
4967 the file will run in, including a fix for __name__ not being set
4964 before.
4968 before.
4965
4969
4966 2002-01-20 Fernando Perez <fperez@colorado.edu>
4970 2002-01-20 Fernando Perez <fperez@colorado.edu>
4967
4971
4968 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4972 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4969 extra garbage for Python 2.2. Need to look more carefully into
4973 extra garbage for Python 2.2. Need to look more carefully into
4970 this later.
4974 this later.
4971
4975
4972 2002-01-19 Fernando Perez <fperez@colorado.edu>
4976 2002-01-19 Fernando Perez <fperez@colorado.edu>
4973
4977
4974 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4978 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4975 display SyntaxError exceptions properly formatted when they occur
4979 display SyntaxError exceptions properly formatted when they occur
4976 (they can be triggered by imported code).
4980 (they can be triggered by imported code).
4977
4981
4978 2002-01-18 Fernando Perez <fperez@colorado.edu>
4982 2002-01-18 Fernando Perez <fperez@colorado.edu>
4979
4983
4980 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4984 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4981 SyntaxError exceptions are reported nicely formatted, instead of
4985 SyntaxError exceptions are reported nicely formatted, instead of
4982 spitting out only offset information as before.
4986 spitting out only offset information as before.
4983 (Magic.magic_prun): Added the @prun function for executing
4987 (Magic.magic_prun): Added the @prun function for executing
4984 programs with command line args inside IPython.
4988 programs with command line args inside IPython.
4985
4989
4986 2002-01-16 Fernando Perez <fperez@colorado.edu>
4990 2002-01-16 Fernando Perez <fperez@colorado.edu>
4987
4991
4988 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4992 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4989 to *not* include the last item given in a range. This brings their
4993 to *not* include the last item given in a range. This brings their
4990 behavior in line with Python's slicing:
4994 behavior in line with Python's slicing:
4991 a[n1:n2] -> a[n1]...a[n2-1]
4995 a[n1:n2] -> a[n1]...a[n2-1]
4992 It may be a bit less convenient, but I prefer to stick to Python's
4996 It may be a bit less convenient, but I prefer to stick to Python's
4993 conventions *everywhere*, so users never have to wonder.
4997 conventions *everywhere*, so users never have to wonder.
4994 (Magic.magic_macro): Added @macro function to ease the creation of
4998 (Magic.magic_macro): Added @macro function to ease the creation of
4995 macros.
4999 macros.
4996
5000
4997 2002-01-05 Fernando Perez <fperez@colorado.edu>
5001 2002-01-05 Fernando Perez <fperez@colorado.edu>
4998
5002
4999 * Released 0.2.4.
5003 * Released 0.2.4.
5000
5004
5001 * IPython/iplib.py (Magic.magic_pdef):
5005 * IPython/iplib.py (Magic.magic_pdef):
5002 (InteractiveShell.safe_execfile): report magic lines and error
5006 (InteractiveShell.safe_execfile): report magic lines and error
5003 lines without line numbers so one can easily copy/paste them for
5007 lines without line numbers so one can easily copy/paste them for
5004 re-execution.
5008 re-execution.
5005
5009
5006 * Updated manual with recent changes.
5010 * Updated manual with recent changes.
5007
5011
5008 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5012 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5009 docstring printing when class? is called. Very handy for knowing
5013 docstring printing when class? is called. Very handy for knowing
5010 how to create class instances (as long as __init__ is well
5014 how to create class instances (as long as __init__ is well
5011 documented, of course :)
5015 documented, of course :)
5012 (Magic.magic_doc): print both class and constructor docstrings.
5016 (Magic.magic_doc): print both class and constructor docstrings.
5013 (Magic.magic_pdef): give constructor info if passed a class and
5017 (Magic.magic_pdef): give constructor info if passed a class and
5014 __call__ info for callable object instances.
5018 __call__ info for callable object instances.
5015
5019
5016 2002-01-04 Fernando Perez <fperez@colorado.edu>
5020 2002-01-04 Fernando Perez <fperez@colorado.edu>
5017
5021
5018 * Made deep_reload() off by default. It doesn't always work
5022 * Made deep_reload() off by default. It doesn't always work
5019 exactly as intended, so it's probably safer to have it off. It's
5023 exactly as intended, so it's probably safer to have it off. It's
5020 still available as dreload() anyway, so nothing is lost.
5024 still available as dreload() anyway, so nothing is lost.
5021
5025
5022 2002-01-02 Fernando Perez <fperez@colorado.edu>
5026 2002-01-02 Fernando Perez <fperez@colorado.edu>
5023
5027
5024 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5028 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5025 so I wanted an updated release).
5029 so I wanted an updated release).
5026
5030
5027 2001-12-27 Fernando Perez <fperez@colorado.edu>
5031 2001-12-27 Fernando Perez <fperez@colorado.edu>
5028
5032
5029 * IPython/iplib.py (InteractiveShell.interact): Added the original
5033 * IPython/iplib.py (InteractiveShell.interact): Added the original
5030 code from 'code.py' for this module in order to change the
5034 code from 'code.py' for this module in order to change the
5031 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5035 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5032 the history cache would break when the user hit Ctrl-C, and
5036 the history cache would break when the user hit Ctrl-C, and
5033 interact() offers no way to add any hooks to it.
5037 interact() offers no way to add any hooks to it.
5034
5038
5035 2001-12-23 Fernando Perez <fperez@colorado.edu>
5039 2001-12-23 Fernando Perez <fperez@colorado.edu>
5036
5040
5037 * setup.py: added check for 'MANIFEST' before trying to remove
5041 * setup.py: added check for 'MANIFEST' before trying to remove
5038 it. Thanks to Sean Reifschneider.
5042 it. Thanks to Sean Reifschneider.
5039
5043
5040 2001-12-22 Fernando Perez <fperez@colorado.edu>
5044 2001-12-22 Fernando Perez <fperez@colorado.edu>
5041
5045
5042 * Released 0.2.2.
5046 * Released 0.2.2.
5043
5047
5044 * Finished (reasonably) writing the manual. Later will add the
5048 * Finished (reasonably) writing the manual. Later will add the
5045 python-standard navigation stylesheets, but for the time being
5049 python-standard navigation stylesheets, but for the time being
5046 it's fairly complete. Distribution will include html and pdf
5050 it's fairly complete. Distribution will include html and pdf
5047 versions.
5051 versions.
5048
5052
5049 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5053 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5050 (MayaVi author).
5054 (MayaVi author).
5051
5055
5052 2001-12-21 Fernando Perez <fperez@colorado.edu>
5056 2001-12-21 Fernando Perez <fperez@colorado.edu>
5053
5057
5054 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5058 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5055 good public release, I think (with the manual and the distutils
5059 good public release, I think (with the manual and the distutils
5056 installer). The manual can use some work, but that can go
5060 installer). The manual can use some work, but that can go
5057 slowly. Otherwise I think it's quite nice for end users. Next
5061 slowly. Otherwise I think it's quite nice for end users. Next
5058 summer, rewrite the guts of it...
5062 summer, rewrite the guts of it...
5059
5063
5060 * Changed format of ipythonrc files to use whitespace as the
5064 * Changed format of ipythonrc files to use whitespace as the
5061 separator instead of an explicit '='. Cleaner.
5065 separator instead of an explicit '='. Cleaner.
5062
5066
5063 2001-12-20 Fernando Perez <fperez@colorado.edu>
5067 2001-12-20 Fernando Perez <fperez@colorado.edu>
5064
5068
5065 * Started a manual in LyX. For now it's just a quick merge of the
5069 * Started a manual in LyX. For now it's just a quick merge of the
5066 various internal docstrings and READMEs. Later it may grow into a
5070 various internal docstrings and READMEs. Later it may grow into a
5067 nice, full-blown manual.
5071 nice, full-blown manual.
5068
5072
5069 * Set up a distutils based installer. Installation should now be
5073 * Set up a distutils based installer. Installation should now be
5070 trivially simple for end-users.
5074 trivially simple for end-users.
5071
5075
5072 2001-12-11 Fernando Perez <fperez@colorado.edu>
5076 2001-12-11 Fernando Perez <fperez@colorado.edu>
5073
5077
5074 * Released 0.2.0. First public release, announced it at
5078 * Released 0.2.0. First public release, announced it at
5075 comp.lang.python. From now on, just bugfixes...
5079 comp.lang.python. From now on, just bugfixes...
5076
5080
5077 * Went through all the files, set copyright/license notices and
5081 * Went through all the files, set copyright/license notices and
5078 cleaned up things. Ready for release.
5082 cleaned up things. Ready for release.
5079
5083
5080 2001-12-10 Fernando Perez <fperez@colorado.edu>
5084 2001-12-10 Fernando Perez <fperez@colorado.edu>
5081
5085
5082 * Changed the first-time installer not to use tarfiles. It's more
5086 * Changed the first-time installer not to use tarfiles. It's more
5083 robust now and less unix-dependent. Also makes it easier for
5087 robust now and less unix-dependent. Also makes it easier for
5084 people to later upgrade versions.
5088 people to later upgrade versions.
5085
5089
5086 * Changed @exit to @abort to reflect the fact that it's pretty
5090 * Changed @exit to @abort to reflect the fact that it's pretty
5087 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5091 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5088 becomes significant only when IPyhton is embedded: in that case,
5092 becomes significant only when IPyhton is embedded: in that case,
5089 C-D closes IPython only, but @abort kills the enclosing program
5093 C-D closes IPython only, but @abort kills the enclosing program
5090 too (unless it had called IPython inside a try catching
5094 too (unless it had called IPython inside a try catching
5091 SystemExit).
5095 SystemExit).
5092
5096
5093 * Created Shell module which exposes the actuall IPython Shell
5097 * Created Shell module which exposes the actuall IPython Shell
5094 classes, currently the normal and the embeddable one. This at
5098 classes, currently the normal and the embeddable one. This at
5095 least offers a stable interface we won't need to change when
5099 least offers a stable interface we won't need to change when
5096 (later) the internals are rewritten. That rewrite will be confined
5100 (later) the internals are rewritten. That rewrite will be confined
5097 to iplib and ipmaker, but the Shell interface should remain as is.
5101 to iplib and ipmaker, but the Shell interface should remain as is.
5098
5102
5099 * Added embed module which offers an embeddable IPShell object,
5103 * Added embed module which offers an embeddable IPShell object,
5100 useful to fire up IPython *inside* a running program. Great for
5104 useful to fire up IPython *inside* a running program. Great for
5101 debugging or dynamical data analysis.
5105 debugging or dynamical data analysis.
5102
5106
5103 2001-12-08 Fernando Perez <fperez@colorado.edu>
5107 2001-12-08 Fernando Perez <fperez@colorado.edu>
5104
5108
5105 * Fixed small bug preventing seeing info from methods of defined
5109 * Fixed small bug preventing seeing info from methods of defined
5106 objects (incorrect namespace in _ofind()).
5110 objects (incorrect namespace in _ofind()).
5107
5111
5108 * Documentation cleanup. Moved the main usage docstrings to a
5112 * Documentation cleanup. Moved the main usage docstrings to a
5109 separate file, usage.py (cleaner to maintain, and hopefully in the
5113 separate file, usage.py (cleaner to maintain, and hopefully in the
5110 future some perlpod-like way of producing interactive, man and
5114 future some perlpod-like way of producing interactive, man and
5111 html docs out of it will be found).
5115 html docs out of it will be found).
5112
5116
5113 * Added @profile to see your profile at any time.
5117 * Added @profile to see your profile at any time.
5114
5118
5115 * Added @p as an alias for 'print'. It's especially convenient if
5119 * Added @p as an alias for 'print'. It's especially convenient if
5116 using automagic ('p x' prints x).
5120 using automagic ('p x' prints x).
5117
5121
5118 * Small cleanups and fixes after a pychecker run.
5122 * Small cleanups and fixes after a pychecker run.
5119
5123
5120 * Changed the @cd command to handle @cd - and @cd -<n> for
5124 * Changed the @cd command to handle @cd - and @cd -<n> for
5121 visiting any directory in _dh.
5125 visiting any directory in _dh.
5122
5126
5123 * Introduced _dh, a history of visited directories. @dhist prints
5127 * Introduced _dh, a history of visited directories. @dhist prints
5124 it out with numbers.
5128 it out with numbers.
5125
5129
5126 2001-12-07 Fernando Perez <fperez@colorado.edu>
5130 2001-12-07 Fernando Perez <fperez@colorado.edu>
5127
5131
5128 * Released 0.1.22
5132 * Released 0.1.22
5129
5133
5130 * Made initialization a bit more robust against invalid color
5134 * Made initialization a bit more robust against invalid color
5131 options in user input (exit, not traceback-crash).
5135 options in user input (exit, not traceback-crash).
5132
5136
5133 * Changed the bug crash reporter to write the report only in the
5137 * Changed the bug crash reporter to write the report only in the
5134 user's .ipython directory. That way IPython won't litter people's
5138 user's .ipython directory. That way IPython won't litter people's
5135 hard disks with crash files all over the place. Also print on
5139 hard disks with crash files all over the place. Also print on
5136 screen the necessary mail command.
5140 screen the necessary mail command.
5137
5141
5138 * With the new ultraTB, implemented LightBG color scheme for light
5142 * With the new ultraTB, implemented LightBG color scheme for light
5139 background terminals. A lot of people like white backgrounds, so I
5143 background terminals. A lot of people like white backgrounds, so I
5140 guess we should at least give them something readable.
5144 guess we should at least give them something readable.
5141
5145
5142 2001-12-06 Fernando Perez <fperez@colorado.edu>
5146 2001-12-06 Fernando Perez <fperez@colorado.edu>
5143
5147
5144 * Modified the structure of ultraTB. Now there's a proper class
5148 * Modified the structure of ultraTB. Now there's a proper class
5145 for tables of color schemes which allow adding schemes easily and
5149 for tables of color schemes which allow adding schemes easily and
5146 switching the active scheme without creating a new instance every
5150 switching the active scheme without creating a new instance every
5147 time (which was ridiculous). The syntax for creating new schemes
5151 time (which was ridiculous). The syntax for creating new schemes
5148 is also cleaner. I think ultraTB is finally done, with a clean
5152 is also cleaner. I think ultraTB is finally done, with a clean
5149 class structure. Names are also much cleaner (now there's proper
5153 class structure. Names are also much cleaner (now there's proper
5150 color tables, no need for every variable to also have 'color' in
5154 color tables, no need for every variable to also have 'color' in
5151 its name).
5155 its name).
5152
5156
5153 * Broke down genutils into separate files. Now genutils only
5157 * Broke down genutils into separate files. Now genutils only
5154 contains utility functions, and classes have been moved to their
5158 contains utility functions, and classes have been moved to their
5155 own files (they had enough independent functionality to warrant
5159 own files (they had enough independent functionality to warrant
5156 it): ConfigLoader, OutputTrap, Struct.
5160 it): ConfigLoader, OutputTrap, Struct.
5157
5161
5158 2001-12-05 Fernando Perez <fperez@colorado.edu>
5162 2001-12-05 Fernando Perez <fperez@colorado.edu>
5159
5163
5160 * IPython turns 21! Released version 0.1.21, as a candidate for
5164 * IPython turns 21! Released version 0.1.21, as a candidate for
5161 public consumption. If all goes well, release in a few days.
5165 public consumption. If all goes well, release in a few days.
5162
5166
5163 * Fixed path bug (files in Extensions/ directory wouldn't be found
5167 * Fixed path bug (files in Extensions/ directory wouldn't be found
5164 unless IPython/ was explicitly in sys.path).
5168 unless IPython/ was explicitly in sys.path).
5165
5169
5166 * Extended the FlexCompleter class as MagicCompleter to allow
5170 * Extended the FlexCompleter class as MagicCompleter to allow
5167 completion of @-starting lines.
5171 completion of @-starting lines.
5168
5172
5169 * Created __release__.py file as a central repository for release
5173 * Created __release__.py file as a central repository for release
5170 info that other files can read from.
5174 info that other files can read from.
5171
5175
5172 * Fixed small bug in logging: when logging was turned on in
5176 * Fixed small bug in logging: when logging was turned on in
5173 mid-session, old lines with special meanings (!@?) were being
5177 mid-session, old lines with special meanings (!@?) were being
5174 logged without the prepended comment, which is necessary since
5178 logged without the prepended comment, which is necessary since
5175 they are not truly valid python syntax. This should make session
5179 they are not truly valid python syntax. This should make session
5176 restores produce less errors.
5180 restores produce less errors.
5177
5181
5178 * The namespace cleanup forced me to make a FlexCompleter class
5182 * The namespace cleanup forced me to make a FlexCompleter class
5179 which is nothing but a ripoff of rlcompleter, but with selectable
5183 which is nothing but a ripoff of rlcompleter, but with selectable
5180 namespace (rlcompleter only works in __main__.__dict__). I'll try
5184 namespace (rlcompleter only works in __main__.__dict__). I'll try
5181 to submit a note to the authors to see if this change can be
5185 to submit a note to the authors to see if this change can be
5182 incorporated in future rlcompleter releases (Dec.6: done)
5186 incorporated in future rlcompleter releases (Dec.6: done)
5183
5187
5184 * More fixes to namespace handling. It was a mess! Now all
5188 * More fixes to namespace handling. It was a mess! Now all
5185 explicit references to __main__.__dict__ are gone (except when
5189 explicit references to __main__.__dict__ are gone (except when
5186 really needed) and everything is handled through the namespace
5190 really needed) and everything is handled through the namespace
5187 dicts in the IPython instance. We seem to be getting somewhere
5191 dicts in the IPython instance. We seem to be getting somewhere
5188 with this, finally...
5192 with this, finally...
5189
5193
5190 * Small documentation updates.
5194 * Small documentation updates.
5191
5195
5192 * Created the Extensions directory under IPython (with an
5196 * Created the Extensions directory under IPython (with an
5193 __init__.py). Put the PhysicalQ stuff there. This directory should
5197 __init__.py). Put the PhysicalQ stuff there. This directory should
5194 be used for all special-purpose extensions.
5198 be used for all special-purpose extensions.
5195
5199
5196 * File renaming:
5200 * File renaming:
5197 ipythonlib --> ipmaker
5201 ipythonlib --> ipmaker
5198 ipplib --> iplib
5202 ipplib --> iplib
5199 This makes a bit more sense in terms of what these files actually do.
5203 This makes a bit more sense in terms of what these files actually do.
5200
5204
5201 * Moved all the classes and functions in ipythonlib to ipplib, so
5205 * Moved all the classes and functions in ipythonlib to ipplib, so
5202 now ipythonlib only has make_IPython(). This will ease up its
5206 now ipythonlib only has make_IPython(). This will ease up its
5203 splitting in smaller functional chunks later.
5207 splitting in smaller functional chunks later.
5204
5208
5205 * Cleaned up (done, I think) output of @whos. Better column
5209 * Cleaned up (done, I think) output of @whos. Better column
5206 formatting, and now shows str(var) for as much as it can, which is
5210 formatting, and now shows str(var) for as much as it can, which is
5207 typically what one gets with a 'print var'.
5211 typically what one gets with a 'print var'.
5208
5212
5209 2001-12-04 Fernando Perez <fperez@colorado.edu>
5213 2001-12-04 Fernando Perez <fperez@colorado.edu>
5210
5214
5211 * Fixed namespace problems. Now builtin/IPyhton/user names get
5215 * Fixed namespace problems. Now builtin/IPyhton/user names get
5212 properly reported in their namespace. Internal namespace handling
5216 properly reported in their namespace. Internal namespace handling
5213 is finally getting decent (not perfect yet, but much better than
5217 is finally getting decent (not perfect yet, but much better than
5214 the ad-hoc mess we had).
5218 the ad-hoc mess we had).
5215
5219
5216 * Removed -exit option. If people just want to run a python
5220 * Removed -exit option. If people just want to run a python
5217 script, that's what the normal interpreter is for. Less
5221 script, that's what the normal interpreter is for. Less
5218 unnecessary options, less chances for bugs.
5222 unnecessary options, less chances for bugs.
5219
5223
5220 * Added a crash handler which generates a complete post-mortem if
5224 * Added a crash handler which generates a complete post-mortem if
5221 IPython crashes. This will help a lot in tracking bugs down the
5225 IPython crashes. This will help a lot in tracking bugs down the
5222 road.
5226 road.
5223
5227
5224 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5228 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5225 which were boud to functions being reassigned would bypass the
5229 which were boud to functions being reassigned would bypass the
5226 logger, breaking the sync of _il with the prompt counter. This
5230 logger, breaking the sync of _il with the prompt counter. This
5227 would then crash IPython later when a new line was logged.
5231 would then crash IPython later when a new line was logged.
5228
5232
5229 2001-12-02 Fernando Perez <fperez@colorado.edu>
5233 2001-12-02 Fernando Perez <fperez@colorado.edu>
5230
5234
5231 * Made IPython a package. This means people don't have to clutter
5235 * Made IPython a package. This means people don't have to clutter
5232 their sys.path with yet another directory. Changed the INSTALL
5236 their sys.path with yet another directory. Changed the INSTALL
5233 file accordingly.
5237 file accordingly.
5234
5238
5235 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5239 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5236 sorts its output (so @who shows it sorted) and @whos formats the
5240 sorts its output (so @who shows it sorted) and @whos formats the
5237 table according to the width of the first column. Nicer, easier to
5241 table according to the width of the first column. Nicer, easier to
5238 read. Todo: write a generic table_format() which takes a list of
5242 read. Todo: write a generic table_format() which takes a list of
5239 lists and prints it nicely formatted, with optional row/column
5243 lists and prints it nicely formatted, with optional row/column
5240 separators and proper padding and justification.
5244 separators and proper padding and justification.
5241
5245
5242 * Released 0.1.20
5246 * Released 0.1.20
5243
5247
5244 * Fixed bug in @log which would reverse the inputcache list (a
5248 * Fixed bug in @log which would reverse the inputcache list (a
5245 copy operation was missing).
5249 copy operation was missing).
5246
5250
5247 * Code cleanup. @config was changed to use page(). Better, since
5251 * Code cleanup. @config was changed to use page(). Better, since
5248 its output is always quite long.
5252 its output is always quite long.
5249
5253
5250 * Itpl is back as a dependency. I was having too many problems
5254 * Itpl is back as a dependency. I was having too many problems
5251 getting the parametric aliases to work reliably, and it's just
5255 getting the parametric aliases to work reliably, and it's just
5252 easier to code weird string operations with it than playing %()s
5256 easier to code weird string operations with it than playing %()s
5253 games. It's only ~6k, so I don't think it's too big a deal.
5257 games. It's only ~6k, so I don't think it's too big a deal.
5254
5258
5255 * Found (and fixed) a very nasty bug with history. !lines weren't
5259 * Found (and fixed) a very nasty bug with history. !lines weren't
5256 getting cached, and the out of sync caches would crash
5260 getting cached, and the out of sync caches would crash
5257 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5261 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5258 division of labor a bit better. Bug fixed, cleaner structure.
5262 division of labor a bit better. Bug fixed, cleaner structure.
5259
5263
5260 2001-12-01 Fernando Perez <fperez@colorado.edu>
5264 2001-12-01 Fernando Perez <fperez@colorado.edu>
5261
5265
5262 * Released 0.1.19
5266 * Released 0.1.19
5263
5267
5264 * Added option -n to @hist to prevent line number printing. Much
5268 * Added option -n to @hist to prevent line number printing. Much
5265 easier to copy/paste code this way.
5269 easier to copy/paste code this way.
5266
5270
5267 * Created global _il to hold the input list. Allows easy
5271 * Created global _il to hold the input list. Allows easy
5268 re-execution of blocks of code by slicing it (inspired by Janko's
5272 re-execution of blocks of code by slicing it (inspired by Janko's
5269 comment on 'macros').
5273 comment on 'macros').
5270
5274
5271 * Small fixes and doc updates.
5275 * Small fixes and doc updates.
5272
5276
5273 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5277 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5274 much too fragile with automagic. Handles properly multi-line
5278 much too fragile with automagic. Handles properly multi-line
5275 statements and takes parameters.
5279 statements and takes parameters.
5276
5280
5277 2001-11-30 Fernando Perez <fperez@colorado.edu>
5281 2001-11-30 Fernando Perez <fperez@colorado.edu>
5278
5282
5279 * Version 0.1.18 released.
5283 * Version 0.1.18 released.
5280
5284
5281 * Fixed nasty namespace bug in initial module imports.
5285 * Fixed nasty namespace bug in initial module imports.
5282
5286
5283 * Added copyright/license notes to all code files (except
5287 * Added copyright/license notes to all code files (except
5284 DPyGetOpt). For the time being, LGPL. That could change.
5288 DPyGetOpt). For the time being, LGPL. That could change.
5285
5289
5286 * Rewrote a much nicer README, updated INSTALL, cleaned up
5290 * Rewrote a much nicer README, updated INSTALL, cleaned up
5287 ipythonrc-* samples.
5291 ipythonrc-* samples.
5288
5292
5289 * Overall code/documentation cleanup. Basically ready for
5293 * Overall code/documentation cleanup. Basically ready for
5290 release. Only remaining thing: licence decision (LGPL?).
5294 release. Only remaining thing: licence decision (LGPL?).
5291
5295
5292 * Converted load_config to a class, ConfigLoader. Now recursion
5296 * Converted load_config to a class, ConfigLoader. Now recursion
5293 control is better organized. Doesn't include the same file twice.
5297 control is better organized. Doesn't include the same file twice.
5294
5298
5295 2001-11-29 Fernando Perez <fperez@colorado.edu>
5299 2001-11-29 Fernando Perez <fperez@colorado.edu>
5296
5300
5297 * Got input history working. Changed output history variables from
5301 * Got input history working. Changed output history variables from
5298 _p to _o so that _i is for input and _o for output. Just cleaner
5302 _p to _o so that _i is for input and _o for output. Just cleaner
5299 convention.
5303 convention.
5300
5304
5301 * Implemented parametric aliases. This pretty much allows the
5305 * Implemented parametric aliases. This pretty much allows the
5302 alias system to offer full-blown shell convenience, I think.
5306 alias system to offer full-blown shell convenience, I think.
5303
5307
5304 * Version 0.1.17 released, 0.1.18 opened.
5308 * Version 0.1.17 released, 0.1.18 opened.
5305
5309
5306 * dot_ipython/ipythonrc (alias): added documentation.
5310 * dot_ipython/ipythonrc (alias): added documentation.
5307 (xcolor): Fixed small bug (xcolors -> xcolor)
5311 (xcolor): Fixed small bug (xcolors -> xcolor)
5308
5312
5309 * Changed the alias system. Now alias is a magic command to define
5313 * Changed the alias system. Now alias is a magic command to define
5310 aliases just like the shell. Rationale: the builtin magics should
5314 aliases just like the shell. Rationale: the builtin magics should
5311 be there for things deeply connected to IPython's
5315 be there for things deeply connected to IPython's
5312 architecture. And this is a much lighter system for what I think
5316 architecture. And this is a much lighter system for what I think
5313 is the really important feature: allowing users to define quickly
5317 is the really important feature: allowing users to define quickly
5314 magics that will do shell things for them, so they can customize
5318 magics that will do shell things for them, so they can customize
5315 IPython easily to match their work habits. If someone is really
5319 IPython easily to match their work habits. If someone is really
5316 desperate to have another name for a builtin alias, they can
5320 desperate to have another name for a builtin alias, they can
5317 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5321 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5318 works.
5322 works.
5319
5323
5320 2001-11-28 Fernando Perez <fperez@colorado.edu>
5324 2001-11-28 Fernando Perez <fperez@colorado.edu>
5321
5325
5322 * Changed @file so that it opens the source file at the proper
5326 * Changed @file so that it opens the source file at the proper
5323 line. Since it uses less, if your EDITOR environment is
5327 line. Since it uses less, if your EDITOR environment is
5324 configured, typing v will immediately open your editor of choice
5328 configured, typing v will immediately open your editor of choice
5325 right at the line where the object is defined. Not as quick as
5329 right at the line where the object is defined. Not as quick as
5326 having a direct @edit command, but for all intents and purposes it
5330 having a direct @edit command, but for all intents and purposes it
5327 works. And I don't have to worry about writing @edit to deal with
5331 works. And I don't have to worry about writing @edit to deal with
5328 all the editors, less does that.
5332 all the editors, less does that.
5329
5333
5330 * Version 0.1.16 released, 0.1.17 opened.
5334 * Version 0.1.16 released, 0.1.17 opened.
5331
5335
5332 * Fixed some nasty bugs in the page/page_dumb combo that could
5336 * Fixed some nasty bugs in the page/page_dumb combo that could
5333 crash IPython.
5337 crash IPython.
5334
5338
5335 2001-11-27 Fernando Perez <fperez@colorado.edu>
5339 2001-11-27 Fernando Perez <fperez@colorado.edu>
5336
5340
5337 * Version 0.1.15 released, 0.1.16 opened.
5341 * Version 0.1.15 released, 0.1.16 opened.
5338
5342
5339 * Finally got ? and ?? to work for undefined things: now it's
5343 * Finally got ? and ?? to work for undefined things: now it's
5340 possible to type {}.get? and get information about the get method
5344 possible to type {}.get? and get information about the get method
5341 of dicts, or os.path? even if only os is defined (so technically
5345 of dicts, or os.path? even if only os is defined (so technically
5342 os.path isn't). Works at any level. For example, after import os,
5346 os.path isn't). Works at any level. For example, after import os,
5343 os?, os.path?, os.path.abspath? all work. This is great, took some
5347 os?, os.path?, os.path.abspath? all work. This is great, took some
5344 work in _ofind.
5348 work in _ofind.
5345
5349
5346 * Fixed more bugs with logging. The sanest way to do it was to add
5350 * Fixed more bugs with logging. The sanest way to do it was to add
5347 to @log a 'mode' parameter. Killed two in one shot (this mode
5351 to @log a 'mode' parameter. Killed two in one shot (this mode
5348 option was a request of Janko's). I think it's finally clean
5352 option was a request of Janko's). I think it's finally clean
5349 (famous last words).
5353 (famous last words).
5350
5354
5351 * Added a page_dumb() pager which does a decent job of paging on
5355 * Added a page_dumb() pager which does a decent job of paging on
5352 screen, if better things (like less) aren't available. One less
5356 screen, if better things (like less) aren't available. One less
5353 unix dependency (someday maybe somebody will port this to
5357 unix dependency (someday maybe somebody will port this to
5354 windows).
5358 windows).
5355
5359
5356 * Fixed problem in magic_log: would lock of logging out if log
5360 * Fixed problem in magic_log: would lock of logging out if log
5357 creation failed (because it would still think it had succeeded).
5361 creation failed (because it would still think it had succeeded).
5358
5362
5359 * Improved the page() function using curses to auto-detect screen
5363 * Improved the page() function using curses to auto-detect screen
5360 size. Now it can make a much better decision on whether to print
5364 size. Now it can make a much better decision on whether to print
5361 or page a string. Option screen_length was modified: a value 0
5365 or page a string. Option screen_length was modified: a value 0
5362 means auto-detect, and that's the default now.
5366 means auto-detect, and that's the default now.
5363
5367
5364 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5368 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5365 go out. I'll test it for a few days, then talk to Janko about
5369 go out. I'll test it for a few days, then talk to Janko about
5366 licences and announce it.
5370 licences and announce it.
5367
5371
5368 * Fixed the length of the auto-generated ---> prompt which appears
5372 * Fixed the length of the auto-generated ---> prompt which appears
5369 for auto-parens and auto-quotes. Getting this right isn't trivial,
5373 for auto-parens and auto-quotes. Getting this right isn't trivial,
5370 with all the color escapes, different prompt types and optional
5374 with all the color escapes, different prompt types and optional
5371 separators. But it seems to be working in all the combinations.
5375 separators. But it seems to be working in all the combinations.
5372
5376
5373 2001-11-26 Fernando Perez <fperez@colorado.edu>
5377 2001-11-26 Fernando Perez <fperez@colorado.edu>
5374
5378
5375 * Wrote a regexp filter to get option types from the option names
5379 * Wrote a regexp filter to get option types from the option names
5376 string. This eliminates the need to manually keep two duplicate
5380 string. This eliminates the need to manually keep two duplicate
5377 lists.
5381 lists.
5378
5382
5379 * Removed the unneeded check_option_names. Now options are handled
5383 * Removed the unneeded check_option_names. Now options are handled
5380 in a much saner manner and it's easy to visually check that things
5384 in a much saner manner and it's easy to visually check that things
5381 are ok.
5385 are ok.
5382
5386
5383 * Updated version numbers on all files I modified to carry a
5387 * Updated version numbers on all files I modified to carry a
5384 notice so Janko and Nathan have clear version markers.
5388 notice so Janko and Nathan have clear version markers.
5385
5389
5386 * Updated docstring for ultraTB with my changes. I should send
5390 * Updated docstring for ultraTB with my changes. I should send
5387 this to Nathan.
5391 this to Nathan.
5388
5392
5389 * Lots of small fixes. Ran everything through pychecker again.
5393 * Lots of small fixes. Ran everything through pychecker again.
5390
5394
5391 * Made loading of deep_reload an cmd line option. If it's not too
5395 * Made loading of deep_reload an cmd line option. If it's not too
5392 kosher, now people can just disable it. With -nodeep_reload it's
5396 kosher, now people can just disable it. With -nodeep_reload it's
5393 still available as dreload(), it just won't overwrite reload().
5397 still available as dreload(), it just won't overwrite reload().
5394
5398
5395 * Moved many options to the no| form (-opt and -noopt
5399 * Moved many options to the no| form (-opt and -noopt
5396 accepted). Cleaner.
5400 accepted). Cleaner.
5397
5401
5398 * Changed magic_log so that if called with no parameters, it uses
5402 * Changed magic_log so that if called with no parameters, it uses
5399 'rotate' mode. That way auto-generated logs aren't automatically
5403 'rotate' mode. That way auto-generated logs aren't automatically
5400 over-written. For normal logs, now a backup is made if it exists
5404 over-written. For normal logs, now a backup is made if it exists
5401 (only 1 level of backups). A new 'backup' mode was added to the
5405 (only 1 level of backups). A new 'backup' mode was added to the
5402 Logger class to support this. This was a request by Janko.
5406 Logger class to support this. This was a request by Janko.
5403
5407
5404 * Added @logoff/@logon to stop/restart an active log.
5408 * Added @logoff/@logon to stop/restart an active log.
5405
5409
5406 * Fixed a lot of bugs in log saving/replay. It was pretty
5410 * Fixed a lot of bugs in log saving/replay. It was pretty
5407 broken. Now special lines (!@,/) appear properly in the command
5411 broken. Now special lines (!@,/) appear properly in the command
5408 history after a log replay.
5412 history after a log replay.
5409
5413
5410 * Tried and failed to implement full session saving via pickle. My
5414 * Tried and failed to implement full session saving via pickle. My
5411 idea was to pickle __main__.__dict__, but modules can't be
5415 idea was to pickle __main__.__dict__, but modules can't be
5412 pickled. This would be a better alternative to replaying logs, but
5416 pickled. This would be a better alternative to replaying logs, but
5413 seems quite tricky to get to work. Changed -session to be called
5417 seems quite tricky to get to work. Changed -session to be called
5414 -logplay, which more accurately reflects what it does. And if we
5418 -logplay, which more accurately reflects what it does. And if we
5415 ever get real session saving working, -session is now available.
5419 ever get real session saving working, -session is now available.
5416
5420
5417 * Implemented color schemes for prompts also. As for tracebacks,
5421 * Implemented color schemes for prompts also. As for tracebacks,
5418 currently only NoColor and Linux are supported. But now the
5422 currently only NoColor and Linux are supported. But now the
5419 infrastructure is in place, based on a generic ColorScheme
5423 infrastructure is in place, based on a generic ColorScheme
5420 class. So writing and activating new schemes both for the prompts
5424 class. So writing and activating new schemes both for the prompts
5421 and the tracebacks should be straightforward.
5425 and the tracebacks should be straightforward.
5422
5426
5423 * Version 0.1.13 released, 0.1.14 opened.
5427 * Version 0.1.13 released, 0.1.14 opened.
5424
5428
5425 * Changed handling of options for output cache. Now counter is
5429 * Changed handling of options for output cache. Now counter is
5426 hardwired starting at 1 and one specifies the maximum number of
5430 hardwired starting at 1 and one specifies the maximum number of
5427 entries *in the outcache* (not the max prompt counter). This is
5431 entries *in the outcache* (not the max prompt counter). This is
5428 much better, since many statements won't increase the cache
5432 much better, since many statements won't increase the cache
5429 count. It also eliminated some confusing options, now there's only
5433 count. It also eliminated some confusing options, now there's only
5430 one: cache_size.
5434 one: cache_size.
5431
5435
5432 * Added 'alias' magic function and magic_alias option in the
5436 * Added 'alias' magic function and magic_alias option in the
5433 ipythonrc file. Now the user can easily define whatever names he
5437 ipythonrc file. Now the user can easily define whatever names he
5434 wants for the magic functions without having to play weird
5438 wants for the magic functions without having to play weird
5435 namespace games. This gives IPython a real shell-like feel.
5439 namespace games. This gives IPython a real shell-like feel.
5436
5440
5437 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5441 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5438 @ or not).
5442 @ or not).
5439
5443
5440 This was one of the last remaining 'visible' bugs (that I know
5444 This was one of the last remaining 'visible' bugs (that I know
5441 of). I think if I can clean up the session loading so it works
5445 of). I think if I can clean up the session loading so it works
5442 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5446 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5443 about licensing).
5447 about licensing).
5444
5448
5445 2001-11-25 Fernando Perez <fperez@colorado.edu>
5449 2001-11-25 Fernando Perez <fperez@colorado.edu>
5446
5450
5447 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5451 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5448 there's a cleaner distinction between what ? and ?? show.
5452 there's a cleaner distinction between what ? and ?? show.
5449
5453
5450 * Added screen_length option. Now the user can define his own
5454 * Added screen_length option. Now the user can define his own
5451 screen size for page() operations.
5455 screen size for page() operations.
5452
5456
5453 * Implemented magic shell-like functions with automatic code
5457 * Implemented magic shell-like functions with automatic code
5454 generation. Now adding another function is just a matter of adding
5458 generation. Now adding another function is just a matter of adding
5455 an entry to a dict, and the function is dynamically generated at
5459 an entry to a dict, and the function is dynamically generated at
5456 run-time. Python has some really cool features!
5460 run-time. Python has some really cool features!
5457
5461
5458 * Renamed many options to cleanup conventions a little. Now all
5462 * Renamed many options to cleanup conventions a little. Now all
5459 are lowercase, and only underscores where needed. Also in the code
5463 are lowercase, and only underscores where needed. Also in the code
5460 option name tables are clearer.
5464 option name tables are clearer.
5461
5465
5462 * Changed prompts a little. Now input is 'In [n]:' instead of
5466 * Changed prompts a little. Now input is 'In [n]:' instead of
5463 'In[n]:='. This allows it the numbers to be aligned with the
5467 'In[n]:='. This allows it the numbers to be aligned with the
5464 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5468 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5465 Python (it was a Mathematica thing). The '...' continuation prompt
5469 Python (it was a Mathematica thing). The '...' continuation prompt
5466 was also changed a little to align better.
5470 was also changed a little to align better.
5467
5471
5468 * Fixed bug when flushing output cache. Not all _p<n> variables
5472 * Fixed bug when flushing output cache. Not all _p<n> variables
5469 exist, so their deletion needs to be wrapped in a try:
5473 exist, so their deletion needs to be wrapped in a try:
5470
5474
5471 * Figured out how to properly use inspect.formatargspec() (it
5475 * Figured out how to properly use inspect.formatargspec() (it
5472 requires the args preceded by *). So I removed all the code from
5476 requires the args preceded by *). So I removed all the code from
5473 _get_pdef in Magic, which was just replicating that.
5477 _get_pdef in Magic, which was just replicating that.
5474
5478
5475 * Added test to prefilter to allow redefining magic function names
5479 * Added test to prefilter to allow redefining magic function names
5476 as variables. This is ok, since the @ form is always available,
5480 as variables. This is ok, since the @ form is always available,
5477 but whe should allow the user to define a variable called 'ls' if
5481 but whe should allow the user to define a variable called 'ls' if
5478 he needs it.
5482 he needs it.
5479
5483
5480 * Moved the ToDo information from README into a separate ToDo.
5484 * Moved the ToDo information from README into a separate ToDo.
5481
5485
5482 * General code cleanup and small bugfixes. I think it's close to a
5486 * General code cleanup and small bugfixes. I think it's close to a
5483 state where it can be released, obviously with a big 'beta'
5487 state where it can be released, obviously with a big 'beta'
5484 warning on it.
5488 warning on it.
5485
5489
5486 * Got the magic function split to work. Now all magics are defined
5490 * Got the magic function split to work. Now all magics are defined
5487 in a separate class. It just organizes things a bit, and now
5491 in a separate class. It just organizes things a bit, and now
5488 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5492 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5489 was too long).
5493 was too long).
5490
5494
5491 * Changed @clear to @reset to avoid potential confusions with
5495 * Changed @clear to @reset to avoid potential confusions with
5492 the shell command clear. Also renamed @cl to @clear, which does
5496 the shell command clear. Also renamed @cl to @clear, which does
5493 exactly what people expect it to from their shell experience.
5497 exactly what people expect it to from their shell experience.
5494
5498
5495 Added a check to the @reset command (since it's so
5499 Added a check to the @reset command (since it's so
5496 destructive, it's probably a good idea to ask for confirmation).
5500 destructive, it's probably a good idea to ask for confirmation).
5497 But now reset only works for full namespace resetting. Since the
5501 But now reset only works for full namespace resetting. Since the
5498 del keyword is already there for deleting a few specific
5502 del keyword is already there for deleting a few specific
5499 variables, I don't see the point of having a redundant magic
5503 variables, I don't see the point of having a redundant magic
5500 function for the same task.
5504 function for the same task.
5501
5505
5502 2001-11-24 Fernando Perez <fperez@colorado.edu>
5506 2001-11-24 Fernando Perez <fperez@colorado.edu>
5503
5507
5504 * Updated the builtin docs (esp. the ? ones).
5508 * Updated the builtin docs (esp. the ? ones).
5505
5509
5506 * Ran all the code through pychecker. Not terribly impressed with
5510 * Ran all the code through pychecker. Not terribly impressed with
5507 it: lots of spurious warnings and didn't really find anything of
5511 it: lots of spurious warnings and didn't really find anything of
5508 substance (just a few modules being imported and not used).
5512 substance (just a few modules being imported and not used).
5509
5513
5510 * Implemented the new ultraTB functionality into IPython. New
5514 * Implemented the new ultraTB functionality into IPython. New
5511 option: xcolors. This chooses color scheme. xmode now only selects
5515 option: xcolors. This chooses color scheme. xmode now only selects
5512 between Plain and Verbose. Better orthogonality.
5516 between Plain and Verbose. Better orthogonality.
5513
5517
5514 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5518 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5515 mode and color scheme for the exception handlers. Now it's
5519 mode and color scheme for the exception handlers. Now it's
5516 possible to have the verbose traceback with no coloring.
5520 possible to have the verbose traceback with no coloring.
5517
5521
5518 2001-11-23 Fernando Perez <fperez@colorado.edu>
5522 2001-11-23 Fernando Perez <fperez@colorado.edu>
5519
5523
5520 * Version 0.1.12 released, 0.1.13 opened.
5524 * Version 0.1.12 released, 0.1.13 opened.
5521
5525
5522 * Removed option to set auto-quote and auto-paren escapes by
5526 * Removed option to set auto-quote and auto-paren escapes by
5523 user. The chances of breaking valid syntax are just too high. If
5527 user. The chances of breaking valid syntax are just too high. If
5524 someone *really* wants, they can always dig into the code.
5528 someone *really* wants, they can always dig into the code.
5525
5529
5526 * Made prompt separators configurable.
5530 * Made prompt separators configurable.
5527
5531
5528 2001-11-22 Fernando Perez <fperez@colorado.edu>
5532 2001-11-22 Fernando Perez <fperez@colorado.edu>
5529
5533
5530 * Small bugfixes in many places.
5534 * Small bugfixes in many places.
5531
5535
5532 * Removed the MyCompleter class from ipplib. It seemed redundant
5536 * Removed the MyCompleter class from ipplib. It seemed redundant
5533 with the C-p,C-n history search functionality. Less code to
5537 with the C-p,C-n history search functionality. Less code to
5534 maintain.
5538 maintain.
5535
5539
5536 * Moved all the original ipython.py code into ipythonlib.py. Right
5540 * Moved all the original ipython.py code into ipythonlib.py. Right
5537 now it's just one big dump into a function called make_IPython, so
5541 now it's just one big dump into a function called make_IPython, so
5538 no real modularity has been gained. But at least it makes the
5542 no real modularity has been gained. But at least it makes the
5539 wrapper script tiny, and since ipythonlib is a module, it gets
5543 wrapper script tiny, and since ipythonlib is a module, it gets
5540 compiled and startup is much faster.
5544 compiled and startup is much faster.
5541
5545
5542 This is a reasobably 'deep' change, so we should test it for a
5546 This is a reasobably 'deep' change, so we should test it for a
5543 while without messing too much more with the code.
5547 while without messing too much more with the code.
5544
5548
5545 2001-11-21 Fernando Perez <fperez@colorado.edu>
5549 2001-11-21 Fernando Perez <fperez@colorado.edu>
5546
5550
5547 * Version 0.1.11 released, 0.1.12 opened for further work.
5551 * Version 0.1.11 released, 0.1.12 opened for further work.
5548
5552
5549 * Removed dependency on Itpl. It was only needed in one place. It
5553 * Removed dependency on Itpl. It was only needed in one place. It
5550 would be nice if this became part of python, though. It makes life
5554 would be nice if this became part of python, though. It makes life
5551 *a lot* easier in some cases.
5555 *a lot* easier in some cases.
5552
5556
5553 * Simplified the prefilter code a bit. Now all handlers are
5557 * Simplified the prefilter code a bit. Now all handlers are
5554 expected to explicitly return a value (at least a blank string).
5558 expected to explicitly return a value (at least a blank string).
5555
5559
5556 * Heavy edits in ipplib. Removed the help system altogether. Now
5560 * Heavy edits in ipplib. Removed the help system altogether. Now
5557 obj?/?? is used for inspecting objects, a magic @doc prints
5561 obj?/?? is used for inspecting objects, a magic @doc prints
5558 docstrings, and full-blown Python help is accessed via the 'help'
5562 docstrings, and full-blown Python help is accessed via the 'help'
5559 keyword. This cleans up a lot of code (less to maintain) and does
5563 keyword. This cleans up a lot of code (less to maintain) and does
5560 the job. Since 'help' is now a standard Python component, might as
5564 the job. Since 'help' is now a standard Python component, might as
5561 well use it and remove duplicate functionality.
5565 well use it and remove duplicate functionality.
5562
5566
5563 Also removed the option to use ipplib as a standalone program. By
5567 Also removed the option to use ipplib as a standalone program. By
5564 now it's too dependent on other parts of IPython to function alone.
5568 now it's too dependent on other parts of IPython to function alone.
5565
5569
5566 * Fixed bug in genutils.pager. It would crash if the pager was
5570 * Fixed bug in genutils.pager. It would crash if the pager was
5567 exited immediately after opening (broken pipe).
5571 exited immediately after opening (broken pipe).
5568
5572
5569 * Trimmed down the VerboseTB reporting a little. The header is
5573 * Trimmed down the VerboseTB reporting a little. The header is
5570 much shorter now and the repeated exception arguments at the end
5574 much shorter now and the repeated exception arguments at the end
5571 have been removed. For interactive use the old header seemed a bit
5575 have been removed. For interactive use the old header seemed a bit
5572 excessive.
5576 excessive.
5573
5577
5574 * Fixed small bug in output of @whos for variables with multi-word
5578 * Fixed small bug in output of @whos for variables with multi-word
5575 types (only first word was displayed).
5579 types (only first word was displayed).
5576
5580
5577 2001-11-17 Fernando Perez <fperez@colorado.edu>
5581 2001-11-17 Fernando Perez <fperez@colorado.edu>
5578
5582
5579 * Version 0.1.10 released, 0.1.11 opened for further work.
5583 * Version 0.1.10 released, 0.1.11 opened for further work.
5580
5584
5581 * Modified dirs and friends. dirs now *returns* the stack (not
5585 * Modified dirs and friends. dirs now *returns* the stack (not
5582 prints), so one can manipulate it as a variable. Convenient to
5586 prints), so one can manipulate it as a variable. Convenient to
5583 travel along many directories.
5587 travel along many directories.
5584
5588
5585 * Fixed bug in magic_pdef: would only work with functions with
5589 * Fixed bug in magic_pdef: would only work with functions with
5586 arguments with default values.
5590 arguments with default values.
5587
5591
5588 2001-11-14 Fernando Perez <fperez@colorado.edu>
5592 2001-11-14 Fernando Perez <fperez@colorado.edu>
5589
5593
5590 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5594 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5591 example with IPython. Various other minor fixes and cleanups.
5595 example with IPython. Various other minor fixes and cleanups.
5592
5596
5593 * Version 0.1.9 released, 0.1.10 opened for further work.
5597 * Version 0.1.9 released, 0.1.10 opened for further work.
5594
5598
5595 * Added sys.path to the list of directories searched in the
5599 * Added sys.path to the list of directories searched in the
5596 execfile= option. It used to be the current directory and the
5600 execfile= option. It used to be the current directory and the
5597 user's IPYTHONDIR only.
5601 user's IPYTHONDIR only.
5598
5602
5599 2001-11-13 Fernando Perez <fperez@colorado.edu>
5603 2001-11-13 Fernando Perez <fperez@colorado.edu>
5600
5604
5601 * Reinstated the raw_input/prefilter separation that Janko had
5605 * Reinstated the raw_input/prefilter separation that Janko had
5602 initially. This gives a more convenient setup for extending the
5606 initially. This gives a more convenient setup for extending the
5603 pre-processor from the outside: raw_input always gets a string,
5607 pre-processor from the outside: raw_input always gets a string,
5604 and prefilter has to process it. We can then redefine prefilter
5608 and prefilter has to process it. We can then redefine prefilter
5605 from the outside and implement extensions for special
5609 from the outside and implement extensions for special
5606 purposes.
5610 purposes.
5607
5611
5608 Today I got one for inputting PhysicalQuantity objects
5612 Today I got one for inputting PhysicalQuantity objects
5609 (from Scientific) without needing any function calls at
5613 (from Scientific) without needing any function calls at
5610 all. Extremely convenient, and it's all done as a user-level
5614 all. Extremely convenient, and it's all done as a user-level
5611 extension (no IPython code was touched). Now instead of:
5615 extension (no IPython code was touched). Now instead of:
5612 a = PhysicalQuantity(4.2,'m/s**2')
5616 a = PhysicalQuantity(4.2,'m/s**2')
5613 one can simply say
5617 one can simply say
5614 a = 4.2 m/s**2
5618 a = 4.2 m/s**2
5615 or even
5619 or even
5616 a = 4.2 m/s^2
5620 a = 4.2 m/s^2
5617
5621
5618 I use this, but it's also a proof of concept: IPython really is
5622 I use this, but it's also a proof of concept: IPython really is
5619 fully user-extensible, even at the level of the parsing of the
5623 fully user-extensible, even at the level of the parsing of the
5620 command line. It's not trivial, but it's perfectly doable.
5624 command line. It's not trivial, but it's perfectly doable.
5621
5625
5622 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5626 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5623 the problem of modules being loaded in the inverse order in which
5627 the problem of modules being loaded in the inverse order in which
5624 they were defined in
5628 they were defined in
5625
5629
5626 * Version 0.1.8 released, 0.1.9 opened for further work.
5630 * Version 0.1.8 released, 0.1.9 opened for further work.
5627
5631
5628 * Added magics pdef, source and file. They respectively show the
5632 * Added magics pdef, source and file. They respectively show the
5629 definition line ('prototype' in C), source code and full python
5633 definition line ('prototype' in C), source code and full python
5630 file for any callable object. The object inspector oinfo uses
5634 file for any callable object. The object inspector oinfo uses
5631 these to show the same information.
5635 these to show the same information.
5632
5636
5633 * Version 0.1.7 released, 0.1.8 opened for further work.
5637 * Version 0.1.7 released, 0.1.8 opened for further work.
5634
5638
5635 * Separated all the magic functions into a class called Magic. The
5639 * Separated all the magic functions into a class called Magic. The
5636 InteractiveShell class was becoming too big for Xemacs to handle
5640 InteractiveShell class was becoming too big for Xemacs to handle
5637 (de-indenting a line would lock it up for 10 seconds while it
5641 (de-indenting a line would lock it up for 10 seconds while it
5638 backtracked on the whole class!)
5642 backtracked on the whole class!)
5639
5643
5640 FIXME: didn't work. It can be done, but right now namespaces are
5644 FIXME: didn't work. It can be done, but right now namespaces are
5641 all messed up. Do it later (reverted it for now, so at least
5645 all messed up. Do it later (reverted it for now, so at least
5642 everything works as before).
5646 everything works as before).
5643
5647
5644 * Got the object introspection system (magic_oinfo) working! I
5648 * Got the object introspection system (magic_oinfo) working! I
5645 think this is pretty much ready for release to Janko, so he can
5649 think this is pretty much ready for release to Janko, so he can
5646 test it for a while and then announce it. Pretty much 100% of what
5650 test it for a while and then announce it. Pretty much 100% of what
5647 I wanted for the 'phase 1' release is ready. Happy, tired.
5651 I wanted for the 'phase 1' release is ready. Happy, tired.
5648
5652
5649 2001-11-12 Fernando Perez <fperez@colorado.edu>
5653 2001-11-12 Fernando Perez <fperez@colorado.edu>
5650
5654
5651 * Version 0.1.6 released, 0.1.7 opened for further work.
5655 * Version 0.1.6 released, 0.1.7 opened for further work.
5652
5656
5653 * Fixed bug in printing: it used to test for truth before
5657 * Fixed bug in printing: it used to test for truth before
5654 printing, so 0 wouldn't print. Now checks for None.
5658 printing, so 0 wouldn't print. Now checks for None.
5655
5659
5656 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5660 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5657 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5661 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5658 reaches by hand into the outputcache. Think of a better way to do
5662 reaches by hand into the outputcache. Think of a better way to do
5659 this later.
5663 this later.
5660
5664
5661 * Various small fixes thanks to Nathan's comments.
5665 * Various small fixes thanks to Nathan's comments.
5662
5666
5663 * Changed magic_pprint to magic_Pprint. This way it doesn't
5667 * Changed magic_pprint to magic_Pprint. This way it doesn't
5664 collide with pprint() and the name is consistent with the command
5668 collide with pprint() and the name is consistent with the command
5665 line option.
5669 line option.
5666
5670
5667 * Changed prompt counter behavior to be fully like
5671 * Changed prompt counter behavior to be fully like
5668 Mathematica's. That is, even input that doesn't return a result
5672 Mathematica's. That is, even input that doesn't return a result
5669 raises the prompt counter. The old behavior was kind of confusing
5673 raises the prompt counter. The old behavior was kind of confusing
5670 (getting the same prompt number several times if the operation
5674 (getting the same prompt number several times if the operation
5671 didn't return a result).
5675 didn't return a result).
5672
5676
5673 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5677 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5674
5678
5675 * Fixed -Classic mode (wasn't working anymore).
5679 * Fixed -Classic mode (wasn't working anymore).
5676
5680
5677 * Added colored prompts using Nathan's new code. Colors are
5681 * Added colored prompts using Nathan's new code. Colors are
5678 currently hardwired, they can be user-configurable. For
5682 currently hardwired, they can be user-configurable. For
5679 developers, they can be chosen in file ipythonlib.py, at the
5683 developers, they can be chosen in file ipythonlib.py, at the
5680 beginning of the CachedOutput class def.
5684 beginning of the CachedOutput class def.
5681
5685
5682 2001-11-11 Fernando Perez <fperez@colorado.edu>
5686 2001-11-11 Fernando Perez <fperez@colorado.edu>
5683
5687
5684 * Version 0.1.5 released, 0.1.6 opened for further work.
5688 * Version 0.1.5 released, 0.1.6 opened for further work.
5685
5689
5686 * Changed magic_env to *return* the environment as a dict (not to
5690 * Changed magic_env to *return* the environment as a dict (not to
5687 print it). This way it prints, but it can also be processed.
5691 print it). This way it prints, but it can also be processed.
5688
5692
5689 * Added Verbose exception reporting to interactive
5693 * Added Verbose exception reporting to interactive
5690 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5694 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5691 traceback. Had to make some changes to the ultraTB file. This is
5695 traceback. Had to make some changes to the ultraTB file. This is
5692 probably the last 'big' thing in my mental todo list. This ties
5696 probably the last 'big' thing in my mental todo list. This ties
5693 in with the next entry:
5697 in with the next entry:
5694
5698
5695 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5699 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5696 has to specify is Plain, Color or Verbose for all exception
5700 has to specify is Plain, Color or Verbose for all exception
5697 handling.
5701 handling.
5698
5702
5699 * Removed ShellServices option. All this can really be done via
5703 * Removed ShellServices option. All this can really be done via
5700 the magic system. It's easier to extend, cleaner and has automatic
5704 the magic system. It's easier to extend, cleaner and has automatic
5701 namespace protection and documentation.
5705 namespace protection and documentation.
5702
5706
5703 2001-11-09 Fernando Perez <fperez@colorado.edu>
5707 2001-11-09 Fernando Perez <fperez@colorado.edu>
5704
5708
5705 * Fixed bug in output cache flushing (missing parameter to
5709 * Fixed bug in output cache flushing (missing parameter to
5706 __init__). Other small bugs fixed (found using pychecker).
5710 __init__). Other small bugs fixed (found using pychecker).
5707
5711
5708 * Version 0.1.4 opened for bugfixing.
5712 * Version 0.1.4 opened for bugfixing.
5709
5713
5710 2001-11-07 Fernando Perez <fperez@colorado.edu>
5714 2001-11-07 Fernando Perez <fperez@colorado.edu>
5711
5715
5712 * Version 0.1.3 released, mainly because of the raw_input bug.
5716 * Version 0.1.3 released, mainly because of the raw_input bug.
5713
5717
5714 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5718 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5715 and when testing for whether things were callable, a call could
5719 and when testing for whether things were callable, a call could
5716 actually be made to certain functions. They would get called again
5720 actually be made to certain functions. They would get called again
5717 once 'really' executed, with a resulting double call. A disaster
5721 once 'really' executed, with a resulting double call. A disaster
5718 in many cases (list.reverse() would never work!).
5722 in many cases (list.reverse() would never work!).
5719
5723
5720 * Removed prefilter() function, moved its code to raw_input (which
5724 * Removed prefilter() function, moved its code to raw_input (which
5721 after all was just a near-empty caller for prefilter). This saves
5725 after all was just a near-empty caller for prefilter). This saves
5722 a function call on every prompt, and simplifies the class a tiny bit.
5726 a function call on every prompt, and simplifies the class a tiny bit.
5723
5727
5724 * Fix _ip to __ip name in magic example file.
5728 * Fix _ip to __ip name in magic example file.
5725
5729
5726 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5730 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5727 work with non-gnu versions of tar.
5731 work with non-gnu versions of tar.
5728
5732
5729 2001-11-06 Fernando Perez <fperez@colorado.edu>
5733 2001-11-06 Fernando Perez <fperez@colorado.edu>
5730
5734
5731 * Version 0.1.2. Just to keep track of the recent changes.
5735 * Version 0.1.2. Just to keep track of the recent changes.
5732
5736
5733 * Fixed nasty bug in output prompt routine. It used to check 'if
5737 * Fixed nasty bug in output prompt routine. It used to check 'if
5734 arg != None...'. Problem is, this fails if arg implements a
5738 arg != None...'. Problem is, this fails if arg implements a
5735 special comparison (__cmp__) which disallows comparing to
5739 special comparison (__cmp__) which disallows comparing to
5736 None. Found it when trying to use the PhysicalQuantity module from
5740 None. Found it when trying to use the PhysicalQuantity module from
5737 ScientificPython.
5741 ScientificPython.
5738
5742
5739 2001-11-05 Fernando Perez <fperez@colorado.edu>
5743 2001-11-05 Fernando Perez <fperez@colorado.edu>
5740
5744
5741 * Also added dirs. Now the pushd/popd/dirs family functions
5745 * Also added dirs. Now the pushd/popd/dirs family functions
5742 basically like the shell, with the added convenience of going home
5746 basically like the shell, with the added convenience of going home
5743 when called with no args.
5747 when called with no args.
5744
5748
5745 * pushd/popd slightly modified to mimic shell behavior more
5749 * pushd/popd slightly modified to mimic shell behavior more
5746 closely.
5750 closely.
5747
5751
5748 * Added env,pushd,popd from ShellServices as magic functions. I
5752 * Added env,pushd,popd from ShellServices as magic functions. I
5749 think the cleanest will be to port all desired functions from
5753 think the cleanest will be to port all desired functions from
5750 ShellServices as magics and remove ShellServices altogether. This
5754 ShellServices as magics and remove ShellServices altogether. This
5751 will provide a single, clean way of adding functionality
5755 will provide a single, clean way of adding functionality
5752 (shell-type or otherwise) to IP.
5756 (shell-type or otherwise) to IP.
5753
5757
5754 2001-11-04 Fernando Perez <fperez@colorado.edu>
5758 2001-11-04 Fernando Perez <fperez@colorado.edu>
5755
5759
5756 * Added .ipython/ directory to sys.path. This way users can keep
5760 * Added .ipython/ directory to sys.path. This way users can keep
5757 customizations there and access them via import.
5761 customizations there and access them via import.
5758
5762
5759 2001-11-03 Fernando Perez <fperez@colorado.edu>
5763 2001-11-03 Fernando Perez <fperez@colorado.edu>
5760
5764
5761 * Opened version 0.1.1 for new changes.
5765 * Opened version 0.1.1 for new changes.
5762
5766
5763 * Changed version number to 0.1.0: first 'public' release, sent to
5767 * Changed version number to 0.1.0: first 'public' release, sent to
5764 Nathan and Janko.
5768 Nathan and Janko.
5765
5769
5766 * Lots of small fixes and tweaks.
5770 * Lots of small fixes and tweaks.
5767
5771
5768 * Minor changes to whos format. Now strings are shown, snipped if
5772 * Minor changes to whos format. Now strings are shown, snipped if
5769 too long.
5773 too long.
5770
5774
5771 * Changed ShellServices to work on __main__ so they show up in @who
5775 * Changed ShellServices to work on __main__ so they show up in @who
5772
5776
5773 * Help also works with ? at the end of a line:
5777 * Help also works with ? at the end of a line:
5774 ?sin and sin?
5778 ?sin and sin?
5775 both produce the same effect. This is nice, as often I use the
5779 both produce the same effect. This is nice, as often I use the
5776 tab-complete to find the name of a method, but I used to then have
5780 tab-complete to find the name of a method, but I used to then have
5777 to go to the beginning of the line to put a ? if I wanted more
5781 to go to the beginning of the line to put a ? if I wanted more
5778 info. Now I can just add the ? and hit return. Convenient.
5782 info. Now I can just add the ? and hit return. Convenient.
5779
5783
5780 2001-11-02 Fernando Perez <fperez@colorado.edu>
5784 2001-11-02 Fernando Perez <fperez@colorado.edu>
5781
5785
5782 * Python version check (>=2.1) added.
5786 * Python version check (>=2.1) added.
5783
5787
5784 * Added LazyPython documentation. At this point the docs are quite
5788 * Added LazyPython documentation. At this point the docs are quite
5785 a mess. A cleanup is in order.
5789 a mess. A cleanup is in order.
5786
5790
5787 * Auto-installer created. For some bizarre reason, the zipfiles
5791 * Auto-installer created. For some bizarre reason, the zipfiles
5788 module isn't working on my system. So I made a tar version
5792 module isn't working on my system. So I made a tar version
5789 (hopefully the command line options in various systems won't kill
5793 (hopefully the command line options in various systems won't kill
5790 me).
5794 me).
5791
5795
5792 * Fixes to Struct in genutils. Now all dictionary-like methods are
5796 * Fixes to Struct in genutils. Now all dictionary-like methods are
5793 protected (reasonably).
5797 protected (reasonably).
5794
5798
5795 * Added pager function to genutils and changed ? to print usage
5799 * Added pager function to genutils and changed ? to print usage
5796 note through it (it was too long).
5800 note through it (it was too long).
5797
5801
5798 * Added the LazyPython functionality. Works great! I changed the
5802 * Added the LazyPython functionality. Works great! I changed the
5799 auto-quote escape to ';', it's on home row and next to '. But
5803 auto-quote escape to ';', it's on home row and next to '. But
5800 both auto-quote and auto-paren (still /) escapes are command-line
5804 both auto-quote and auto-paren (still /) escapes are command-line
5801 parameters.
5805 parameters.
5802
5806
5803
5807
5804 2001-11-01 Fernando Perez <fperez@colorado.edu>
5808 2001-11-01 Fernando Perez <fperez@colorado.edu>
5805
5809
5806 * Version changed to 0.0.7. Fairly large change: configuration now
5810 * Version changed to 0.0.7. Fairly large change: configuration now
5807 is all stored in a directory, by default .ipython. There, all
5811 is all stored in a directory, by default .ipython. There, all
5808 config files have normal looking names (not .names)
5812 config files have normal looking names (not .names)
5809
5813
5810 * Version 0.0.6 Released first to Lucas and Archie as a test
5814 * Version 0.0.6 Released first to Lucas and Archie as a test
5811 run. Since it's the first 'semi-public' release, change version to
5815 run. Since it's the first 'semi-public' release, change version to
5812 > 0.0.6 for any changes now.
5816 > 0.0.6 for any changes now.
5813
5817
5814 * Stuff I had put in the ipplib.py changelog:
5818 * Stuff I had put in the ipplib.py changelog:
5815
5819
5816 Changes to InteractiveShell:
5820 Changes to InteractiveShell:
5817
5821
5818 - Made the usage message a parameter.
5822 - Made the usage message a parameter.
5819
5823
5820 - Require the name of the shell variable to be given. It's a bit
5824 - Require the name of the shell variable to be given. It's a bit
5821 of a hack, but allows the name 'shell' not to be hardwired in the
5825 of a hack, but allows the name 'shell' not to be hardwired in the
5822 magic (@) handler, which is problematic b/c it requires
5826 magic (@) handler, which is problematic b/c it requires
5823 polluting the global namespace with 'shell'. This in turn is
5827 polluting the global namespace with 'shell'. This in turn is
5824 fragile: if a user redefines a variable called shell, things
5828 fragile: if a user redefines a variable called shell, things
5825 break.
5829 break.
5826
5830
5827 - magic @: all functions available through @ need to be defined
5831 - magic @: all functions available through @ need to be defined
5828 as magic_<name>, even though they can be called simply as
5832 as magic_<name>, even though they can be called simply as
5829 @<name>. This allows the special command @magic to gather
5833 @<name>. This allows the special command @magic to gather
5830 information automatically about all existing magic functions,
5834 information automatically about all existing magic functions,
5831 even if they are run-time user extensions, by parsing the shell
5835 even if they are run-time user extensions, by parsing the shell
5832 instance __dict__ looking for special magic_ names.
5836 instance __dict__ looking for special magic_ names.
5833
5837
5834 - mainloop: added *two* local namespace parameters. This allows
5838 - mainloop: added *two* local namespace parameters. This allows
5835 the class to differentiate between parameters which were there
5839 the class to differentiate between parameters which were there
5836 before and after command line initialization was processed. This
5840 before and after command line initialization was processed. This
5837 way, later @who can show things loaded at startup by the
5841 way, later @who can show things loaded at startup by the
5838 user. This trick was necessary to make session saving/reloading
5842 user. This trick was necessary to make session saving/reloading
5839 really work: ideally after saving/exiting/reloading a session,
5843 really work: ideally after saving/exiting/reloading a session,
5840 *everything* should look the same, including the output of @who. I
5844 *everything* should look the same, including the output of @who. I
5841 was only able to make this work with this double namespace
5845 was only able to make this work with this double namespace
5842 trick.
5846 trick.
5843
5847
5844 - added a header to the logfile which allows (almost) full
5848 - added a header to the logfile which allows (almost) full
5845 session restoring.
5849 session restoring.
5846
5850
5847 - prepend lines beginning with @ or !, with a and log
5851 - prepend lines beginning with @ or !, with a and log
5848 them. Why? !lines: may be useful to know what you did @lines:
5852 them. Why? !lines: may be useful to know what you did @lines:
5849 they may affect session state. So when restoring a session, at
5853 they may affect session state. So when restoring a session, at
5850 least inform the user of their presence. I couldn't quite get
5854 least inform the user of their presence. I couldn't quite get
5851 them to properly re-execute, but at least the user is warned.
5855 them to properly re-execute, but at least the user is warned.
5852
5856
5853 * Started ChangeLog.
5857 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now