##// END OF EJS Templates
changelog
vivainio -
r202:1a7052fe
parent child
Show More
@@ -1,5225 +1,5230
1 2006-02-24 Ville Vainio <vivainio@gmail.com>
2
3 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
4 "cleanly" and safely than the older upgrade mechanism.
5
1 2006-02-21 Ville Vainio <vivainio@gmail.com>
6 2006-02-21 Ville Vainio <vivainio@gmail.com>
2
7
3 * Magic.py: %save works again.
8 * Magic.py: %save works again.
4
9
5 2006-02-15 Ville Vainio <vivainio@gmail.com>
10 2006-02-15 Ville Vainio <vivainio@gmail.com>
6
11
7 * Magic.py: %Pprint works again
12 * Magic.py: %Pprint works again
8
13
9 * Extensions/ipy_sane_defaults.py: Provide everything provided
14 * Extensions/ipy_sane_defaults.py: Provide everything provided
10 in default ipythonrc, to make it possible to have a completely empty
15 in default ipythonrc, to make it possible to have a completely empty
11 ipythonrc (and thus completely rc-file free configuration)
16 ipythonrc (and thus completely rc-file free configuration)
12
17
13
18
14 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
19 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
15
20
16 * IPython/hooks.py (editor): quote the call to the editor command,
21 * IPython/hooks.py (editor): quote the call to the editor command,
17 to allow commands with spaces in them. Problem noted by watching
22 to allow commands with spaces in them. Problem noted by watching
18 Ian Oswald's video about textpad under win32 at
23 Ian Oswald's video about textpad under win32 at
19 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
24 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
20
25
21 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
26 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
22 describing magics (we haven't used @ for a loong time).
27 describing magics (we haven't used @ for a loong time).
23
28
24 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
29 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
25 contributed by marienz to close
30 contributed by marienz to close
26 http://www.scipy.net/roundup/ipython/issue53.
31 http://www.scipy.net/roundup/ipython/issue53.
27
32
28 2006-02-10 Ville Vainio <vivainio@gmail.com>
33 2006-02-10 Ville Vainio <vivainio@gmail.com>
29
34
30 * genutils.py: getoutput now works in win32 too
35 * genutils.py: getoutput now works in win32 too
31
36
32 * completer.py: alias and magic completion only invoked
37 * completer.py: alias and magic completion only invoked
33 at the first "item" in the line, to avoid "cd %store"
38 at the first "item" in the line, to avoid "cd %store"
34 nonsense.
39 nonsense.
35
40
36 2006-02-09 Ville Vainio <vivainio@gmail.com>
41 2006-02-09 Ville Vainio <vivainio@gmail.com>
37
42
38 * test/*: Added a unit testing framework (finally).
43 * test/*: Added a unit testing framework (finally).
39 '%run runtests.py' to run test_*.
44 '%run runtests.py' to run test_*.
40
45
41 * ipapi.py: Exposed runlines and set_custom_exc
46 * ipapi.py: Exposed runlines and set_custom_exc
42
47
43 2006-02-07 Ville Vainio <vivainio@gmail.com>
48 2006-02-07 Ville Vainio <vivainio@gmail.com>
44
49
45 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
50 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
46 instead use "f(1 2)" as before.
51 instead use "f(1 2)" as before.
47
52
48 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
53 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
49
54
50 * IPython/demo.py (IPythonDemo): Add new classes to the demo
55 * IPython/demo.py (IPythonDemo): Add new classes to the demo
51 facilities, for demos processed by the IPython input filter
56 facilities, for demos processed by the IPython input filter
52 (IPythonDemo), and for running a script one-line-at-a-time as a
57 (IPythonDemo), and for running a script one-line-at-a-time as a
53 demo, both for pure Python (LineDemo) and for IPython-processed
58 demo, both for pure Python (LineDemo) and for IPython-processed
54 input (IPythonLineDemo). After a request by Dave Kohel, from the
59 input (IPythonLineDemo). After a request by Dave Kohel, from the
55 SAGE team.
60 SAGE team.
56 (Demo.edit): added and edit() method to the demo objects, to edit
61 (Demo.edit): added and edit() method to the demo objects, to edit
57 the in-memory copy of the last executed block.
62 the in-memory copy of the last executed block.
58
63
59 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
64 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
60 processing to %edit, %macro and %save. These commands can now be
65 processing to %edit, %macro and %save. These commands can now be
61 invoked on the unprocessed input as it was typed by the user
66 invoked on the unprocessed input as it was typed by the user
62 (without any prefilters applied). After requests by the SAGE team
67 (without any prefilters applied). After requests by the SAGE team
63 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
68 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
64
69
65 2006-02-01 Ville Vainio <vivainio@gmail.com>
70 2006-02-01 Ville Vainio <vivainio@gmail.com>
66
71
67 * setup.py, eggsetup.py: easy_install ipython==dev works
72 * setup.py, eggsetup.py: easy_install ipython==dev works
68 correctly now (on Linux)
73 correctly now (on Linux)
69
74
70 * ipy_user_conf,ipmaker: user config changes, removed spurious
75 * ipy_user_conf,ipmaker: user config changes, removed spurious
71 warnings
76 warnings
72
77
73 * iplib: if rc.banner is string, use it as is.
78 * iplib: if rc.banner is string, use it as is.
74
79
75 * Magic: %pycat accepts a string argument and pages it's contents.
80 * Magic: %pycat accepts a string argument and pages it's contents.
76
81
77
82
78 2006-01-30 Ville Vainio <vivainio@gmail.com>
83 2006-01-30 Ville Vainio <vivainio@gmail.com>
79
84
80 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
85 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
81 Now %store and bookmarks work through PickleShare, meaning that
86 Now %store and bookmarks work through PickleShare, meaning that
82 concurrent access is possible and all ipython sessions see the
87 concurrent access is possible and all ipython sessions see the
83 same database situation all the time, instead of snapshot of
88 same database situation all the time, instead of snapshot of
84 the situation when the session was started. Hence, %bookmark
89 the situation when the session was started. Hence, %bookmark
85 results are immediately accessible from othes sessions. The database
90 results are immediately accessible from othes sessions. The database
86 is also available for use by user extensions. See:
91 is also available for use by user extensions. See:
87 http://www.python.org/pypi/pickleshare
92 http://www.python.org/pypi/pickleshare
88
93
89 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
94 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
90
95
91 * aliases can now be %store'd
96 * aliases can now be %store'd
92
97
93 * path.py move to Extensions so that pickleshare does not need
98 * path.py move to Extensions so that pickleshare does not need
94 IPython-specific import. Extensions added to pythonpath right
99 IPython-specific import. Extensions added to pythonpath right
95 at __init__.
100 at __init__.
96
101
97 * iplib.py: ipalias deprecated/redundant; aliases are converted and
102 * iplib.py: ipalias deprecated/redundant; aliases are converted and
98 called with _ip.system and the pre-transformed command string.
103 called with _ip.system and the pre-transformed command string.
99
104
100 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
105 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
101
106
102 * IPython/iplib.py (interact): Fix that we were not catching
107 * IPython/iplib.py (interact): Fix that we were not catching
103 KeyboardInterrupt exceptions properly. I'm not quite sure why the
108 KeyboardInterrupt exceptions properly. I'm not quite sure why the
104 logic here had to change, but it's fixed now.
109 logic here had to change, but it's fixed now.
105
110
106 2006-01-29 Ville Vainio <vivainio@gmail.com>
111 2006-01-29 Ville Vainio <vivainio@gmail.com>
107
112
108 * iplib.py: Try to import pyreadline on Windows.
113 * iplib.py: Try to import pyreadline on Windows.
109
114
110 2006-01-27 Ville Vainio <vivainio@gmail.com>
115 2006-01-27 Ville Vainio <vivainio@gmail.com>
111
116
112 * iplib.py: Expose ipapi as _ip in builtin namespace.
117 * iplib.py: Expose ipapi as _ip in builtin namespace.
113 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
118 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
114 and ip_set_hook (-> _ip.set_hook) redundant. % and !
119 and ip_set_hook (-> _ip.set_hook) redundant. % and !
115 syntax now produce _ip.* variant of the commands.
120 syntax now produce _ip.* variant of the commands.
116
121
117 * "_ip.options().autoedit_syntax = 2" automatically throws
122 * "_ip.options().autoedit_syntax = 2" automatically throws
118 user to editor for syntax error correction without prompting.
123 user to editor for syntax error correction without prompting.
119
124
120 2006-01-27 Ville Vainio <vivainio@gmail.com>
125 2006-01-27 Ville Vainio <vivainio@gmail.com>
121
126
122 * ipmaker.py: Give "realistic" sys.argv for scripts (without
127 * ipmaker.py: Give "realistic" sys.argv for scripts (without
123 'ipython' at argv[0]) executed through command line.
128 'ipython' at argv[0]) executed through command line.
124 NOTE: this DEPRECATES calling ipython with multiple scripts
129 NOTE: this DEPRECATES calling ipython with multiple scripts
125 ("ipython a.py b.py c.py")
130 ("ipython a.py b.py c.py")
126
131
127 * iplib.py, hooks.py: Added configurable input prefilter,
132 * iplib.py, hooks.py: Added configurable input prefilter,
128 named 'input_prefilter'. See ext_rescapture.py for example
133 named 'input_prefilter'. See ext_rescapture.py for example
129 usage.
134 usage.
130
135
131 * ext_rescapture.py, Magic.py: Better system command output capture
136 * ext_rescapture.py, Magic.py: Better system command output capture
132 through 'var = !ls' (deprecates user-visible %sc). Same notation
137 through 'var = !ls' (deprecates user-visible %sc). Same notation
133 applies for magics, 'var = %alias' assigns alias list to var.
138 applies for magics, 'var = %alias' assigns alias list to var.
134
139
135 * ipapi.py: added meta() for accessing extension-usable data store.
140 * ipapi.py: added meta() for accessing extension-usable data store.
136
141
137 * iplib.py: added InteractiveShell.getapi(). New magics should be
142 * iplib.py: added InteractiveShell.getapi(). New magics should be
138 written doing self.getapi() instead of using the shell directly.
143 written doing self.getapi() instead of using the shell directly.
139
144
140 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
145 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
141 %store foo >> ~/myfoo.txt to store variables to files (in clean
146 %store foo >> ~/myfoo.txt to store variables to files (in clean
142 textual form, not a restorable pickle).
147 textual form, not a restorable pickle).
143
148
144 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
149 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
145
150
146 * usage.py, Magic.py: added %quickref
151 * usage.py, Magic.py: added %quickref
147
152
148 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
153 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
149
154
150 * GetoptErrors when invoking magics etc. with wrong args
155 * GetoptErrors when invoking magics etc. with wrong args
151 are now more helpful:
156 are now more helpful:
152 GetoptError: option -l not recognized (allowed: "qb" )
157 GetoptError: option -l not recognized (allowed: "qb" )
153
158
154 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
159 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
155
160
156 * IPython/demo.py (Demo.show): Flush stdout after each block, so
161 * IPython/demo.py (Demo.show): Flush stdout after each block, so
157 computationally intensive blocks don't appear to stall the demo.
162 computationally intensive blocks don't appear to stall the demo.
158
163
159 2006-01-24 Ville Vainio <vivainio@gmail.com>
164 2006-01-24 Ville Vainio <vivainio@gmail.com>
160
165
161 * iplib.py, hooks.py: 'result_display' hook can return a non-None
166 * iplib.py, hooks.py: 'result_display' hook can return a non-None
162 value to manipulate resulting history entry.
167 value to manipulate resulting history entry.
163
168
164 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
169 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
165 to instance methods of IPApi class, to make extending an embedded
170 to instance methods of IPApi class, to make extending an embedded
166 IPython feasible. See ext_rehashdir.py for example usage.
171 IPython feasible. See ext_rehashdir.py for example usage.
167
172
168 * Merged 1071-1076 from banches/0.7.1
173 * Merged 1071-1076 from banches/0.7.1
169
174
170
175
171 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
176 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
172
177
173 * tools/release (daystamp): Fix build tools to use the new
178 * tools/release (daystamp): Fix build tools to use the new
174 eggsetup.py script to build lightweight eggs.
179 eggsetup.py script to build lightweight eggs.
175
180
176 * Applied changesets 1062 and 1064 before 0.7.1 release.
181 * Applied changesets 1062 and 1064 before 0.7.1 release.
177
182
178 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
183 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
179 see the raw input history (without conversions like %ls ->
184 see the raw input history (without conversions like %ls ->
180 ipmagic("ls")). After a request from W. Stein, SAGE
185 ipmagic("ls")). After a request from W. Stein, SAGE
181 (http://modular.ucsd.edu/sage) developer. This information is
186 (http://modular.ucsd.edu/sage) developer. This information is
182 stored in the input_hist_raw attribute of the IPython instance, so
187 stored in the input_hist_raw attribute of the IPython instance, so
183 developers can access it if needed (it's an InputList instance).
188 developers can access it if needed (it's an InputList instance).
184
189
185 * Versionstring = 0.7.2.svn
190 * Versionstring = 0.7.2.svn
186
191
187 * eggsetup.py: A separate script for constructing eggs, creates
192 * eggsetup.py: A separate script for constructing eggs, creates
188 proper launch scripts even on Windows (an .exe file in
193 proper launch scripts even on Windows (an .exe file in
189 \python24\scripts).
194 \python24\scripts).
190
195
191 * ipapi.py: launch_new_instance, launch entry point needed for the
196 * ipapi.py: launch_new_instance, launch entry point needed for the
192 egg.
197 egg.
193
198
194 2006-01-23 Ville Vainio <vivainio@gmail.com>
199 2006-01-23 Ville Vainio <vivainio@gmail.com>
195
200
196 * Added %cpaste magic for pasting python code
201 * Added %cpaste magic for pasting python code
197
202
198 2006-01-22 Ville Vainio <vivainio@gmail.com>
203 2006-01-22 Ville Vainio <vivainio@gmail.com>
199
204
200 * Merge from branches/0.7.1 into trunk, revs 1052-1057
205 * Merge from branches/0.7.1 into trunk, revs 1052-1057
201
206
202 * Versionstring = 0.7.2.svn
207 * Versionstring = 0.7.2.svn
203
208
204 * eggsetup.py: A separate script for constructing eggs, creates
209 * eggsetup.py: A separate script for constructing eggs, creates
205 proper launch scripts even on Windows (an .exe file in
210 proper launch scripts even on Windows (an .exe file in
206 \python24\scripts).
211 \python24\scripts).
207
212
208 * ipapi.py: launch_new_instance, launch entry point needed for the
213 * ipapi.py: launch_new_instance, launch entry point needed for the
209 egg.
214 egg.
210
215
211 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
216 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
212
217
213 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
218 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
214 %pfile foo would print the file for foo even if it was a binary.
219 %pfile foo would print the file for foo even if it was a binary.
215 Now, extensions '.so' and '.dll' are skipped.
220 Now, extensions '.so' and '.dll' are skipped.
216
221
217 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
222 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
218 bug, where macros would fail in all threaded modes. I'm not 100%
223 bug, where macros would fail in all threaded modes. I'm not 100%
219 sure, so I'm going to put out an rc instead of making a release
224 sure, so I'm going to put out an rc instead of making a release
220 today, and wait for feedback for at least a few days.
225 today, and wait for feedback for at least a few days.
221
226
222 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
227 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
223 it...) the handling of pasting external code with autoindent on.
228 it...) the handling of pasting external code with autoindent on.
224 To get out of a multiline input, the rule will appear for most
229 To get out of a multiline input, the rule will appear for most
225 users unchanged: two blank lines or change the indent level
230 users unchanged: two blank lines or change the indent level
226 proposed by IPython. But there is a twist now: you can
231 proposed by IPython. But there is a twist now: you can
227 add/subtract only *one or two spaces*. If you add/subtract three
232 add/subtract only *one or two spaces*. If you add/subtract three
228 or more (unless you completely delete the line), IPython will
233 or more (unless you completely delete the line), IPython will
229 accept that line, and you'll need to enter a second one of pure
234 accept that line, and you'll need to enter a second one of pure
230 whitespace. I know it sounds complicated, but I can't find a
235 whitespace. I know it sounds complicated, but I can't find a
231 different solution that covers all the cases, with the right
236 different solution that covers all the cases, with the right
232 heuristics. Hopefully in actual use, nobody will really notice
237 heuristics. Hopefully in actual use, nobody will really notice
233 all these strange rules and things will 'just work'.
238 all these strange rules and things will 'just work'.
234
239
235 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
240 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
236
241
237 * IPython/iplib.py (interact): catch exceptions which can be
242 * IPython/iplib.py (interact): catch exceptions which can be
238 triggered asynchronously by signal handlers. Thanks to an
243 triggered asynchronously by signal handlers. Thanks to an
239 automatic crash report, submitted by Colin Kingsley
244 automatic crash report, submitted by Colin Kingsley
240 <tercel-AT-gentoo.org>.
245 <tercel-AT-gentoo.org>.
241
246
242 2006-01-20 Ville Vainio <vivainio@gmail.com>
247 2006-01-20 Ville Vainio <vivainio@gmail.com>
243
248
244 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
249 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
245 (%rehashdir, very useful, try it out) of how to extend ipython
250 (%rehashdir, very useful, try it out) of how to extend ipython
246 with new magics. Also added Extensions dir to pythonpath to make
251 with new magics. Also added Extensions dir to pythonpath to make
247 importing extensions easy.
252 importing extensions easy.
248
253
249 * %store now complains when trying to store interactively declared
254 * %store now complains when trying to store interactively declared
250 classes / instances of those classes.
255 classes / instances of those classes.
251
256
252 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
257 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
253 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
258 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
254 if they exist, and ipy_user_conf.py with some defaults is created for
259 if they exist, and ipy_user_conf.py with some defaults is created for
255 the user.
260 the user.
256
261
257 * Startup rehashing done by the config file, not InterpreterExec.
262 * Startup rehashing done by the config file, not InterpreterExec.
258 This means system commands are available even without selecting the
263 This means system commands are available even without selecting the
259 pysh profile. It's the sensible default after all.
264 pysh profile. It's the sensible default after all.
260
265
261 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
266 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
262
267
263 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
268 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
264 multiline code with autoindent on working. But I am really not
269 multiline code with autoindent on working. But I am really not
265 sure, so this needs more testing. Will commit a debug-enabled
270 sure, so this needs more testing. Will commit a debug-enabled
266 version for now, while I test it some more, so that Ville and
271 version for now, while I test it some more, so that Ville and
267 others may also catch any problems. Also made
272 others may also catch any problems. Also made
268 self.indent_current_str() a method, to ensure that there's no
273 self.indent_current_str() a method, to ensure that there's no
269 chance of the indent space count and the corresponding string
274 chance of the indent space count and the corresponding string
270 falling out of sync. All code needing the string should just call
275 falling out of sync. All code needing the string should just call
271 the method.
276 the method.
272
277
273 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
278 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
274
279
275 * IPython/Magic.py (magic_edit): fix check for when users don't
280 * IPython/Magic.py (magic_edit): fix check for when users don't
276 save their output files, the try/except was in the wrong section.
281 save their output files, the try/except was in the wrong section.
277
282
278 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
283 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
279
284
280 * IPython/Magic.py (magic_run): fix __file__ global missing from
285 * IPython/Magic.py (magic_run): fix __file__ global missing from
281 script's namespace when executed via %run. After a report by
286 script's namespace when executed via %run. After a report by
282 Vivian.
287 Vivian.
283
288
284 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
289 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
285 when using python 2.4. The parent constructor changed in 2.4, and
290 when using python 2.4. The parent constructor changed in 2.4, and
286 we need to track it directly (we can't call it, as it messes up
291 we need to track it directly (we can't call it, as it messes up
287 readline and tab-completion inside our pdb would stop working).
292 readline and tab-completion inside our pdb would stop working).
288 After a bug report by R. Bernstein <rocky-AT-panix.com>.
293 After a bug report by R. Bernstein <rocky-AT-panix.com>.
289
294
290 2006-01-16 Ville Vainio <vivainio@gmail.com>
295 2006-01-16 Ville Vainio <vivainio@gmail.com>
291
296
292 * Ipython/magic.py:Reverted back to old %edit functionality
297 * Ipython/magic.py:Reverted back to old %edit functionality
293 that returns file contents on exit.
298 that returns file contents on exit.
294
299
295 * IPython/path.py: Added Jason Orendorff's "path" module to
300 * IPython/path.py: Added Jason Orendorff's "path" module to
296 IPython tree, http://www.jorendorff.com/articles/python/path/.
301 IPython tree, http://www.jorendorff.com/articles/python/path/.
297 You can get path objects conveniently through %sc, and !!, e.g.:
302 You can get path objects conveniently through %sc, and !!, e.g.:
298 sc files=ls
303 sc files=ls
299 for p in files.paths: # or files.p
304 for p in files.paths: # or files.p
300 print p,p.mtime
305 print p,p.mtime
301
306
302 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
307 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
303 now work again without considering the exclusion regexp -
308 now work again without considering the exclusion regexp -
304 hence, things like ',foo my/path' turn to 'foo("my/path")'
309 hence, things like ',foo my/path' turn to 'foo("my/path")'
305 instead of syntax error.
310 instead of syntax error.
306
311
307
312
308 2006-01-14 Ville Vainio <vivainio@gmail.com>
313 2006-01-14 Ville Vainio <vivainio@gmail.com>
309
314
310 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
315 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
311 ipapi decorators for python 2.4 users, options() provides access to rc
316 ipapi decorators for python 2.4 users, options() provides access to rc
312 data.
317 data.
313
318
314 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
319 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
315 as path separators (even on Linux ;-). Space character after
320 as path separators (even on Linux ;-). Space character after
316 backslash (as yielded by tab completer) is still space;
321 backslash (as yielded by tab completer) is still space;
317 "%cd long\ name" works as expected.
322 "%cd long\ name" works as expected.
318
323
319 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
324 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
320 as "chain of command", with priority. API stays the same,
325 as "chain of command", with priority. API stays the same,
321 TryNext exception raised by a hook function signals that
326 TryNext exception raised by a hook function signals that
322 current hook failed and next hook should try handling it, as
327 current hook failed and next hook should try handling it, as
323 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
328 suggested by Walter Dörwald <walter@livinglogic.de>. Walter also
324 requested configurable display hook, which is now implemented.
329 requested configurable display hook, which is now implemented.
325
330
326 2006-01-13 Ville Vainio <vivainio@gmail.com>
331 2006-01-13 Ville Vainio <vivainio@gmail.com>
327
332
328 * IPython/platutils*.py: platform specific utility functions,
333 * IPython/platutils*.py: platform specific utility functions,
329 so far only set_term_title is implemented (change terminal
334 so far only set_term_title is implemented (change terminal
330 label in windowing systems). %cd now changes the title to
335 label in windowing systems). %cd now changes the title to
331 current dir.
336 current dir.
332
337
333 * IPython/Release.py: Added myself to "authors" list,
338 * IPython/Release.py: Added myself to "authors" list,
334 had to create new files.
339 had to create new files.
335
340
336 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
341 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
337 shell escape; not a known bug but had potential to be one in the
342 shell escape; not a known bug but had potential to be one in the
338 future.
343 future.
339
344
340 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
345 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
341 extension API for IPython! See the module for usage example. Fix
346 extension API for IPython! See the module for usage example. Fix
342 OInspect for docstring-less magic functions.
347 OInspect for docstring-less magic functions.
343
348
344
349
345 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
350 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
346
351
347 * IPython/iplib.py (raw_input): temporarily deactivate all
352 * IPython/iplib.py (raw_input): temporarily deactivate all
348 attempts at allowing pasting of code with autoindent on. It
353 attempts at allowing pasting of code with autoindent on. It
349 introduced bugs (reported by Prabhu) and I can't seem to find a
354 introduced bugs (reported by Prabhu) and I can't seem to find a
350 robust combination which works in all cases. Will have to revisit
355 robust combination which works in all cases. Will have to revisit
351 later.
356 later.
352
357
353 * IPython/genutils.py: remove isspace() function. We've dropped
358 * IPython/genutils.py: remove isspace() function. We've dropped
354 2.2 compatibility, so it's OK to use the string method.
359 2.2 compatibility, so it's OK to use the string method.
355
360
356 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
361 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
357
362
358 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
363 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
359 matching what NOT to autocall on, to include all python binary
364 matching what NOT to autocall on, to include all python binary
360 operators (including things like 'and', 'or', 'is' and 'in').
365 operators (including things like 'and', 'or', 'is' and 'in').
361 Prompted by a bug report on 'foo & bar', but I realized we had
366 Prompted by a bug report on 'foo & bar', but I realized we had
362 many more potential bug cases with other operators. The regexp is
367 many more potential bug cases with other operators. The regexp is
363 self.re_exclude_auto, it's fairly commented.
368 self.re_exclude_auto, it's fairly commented.
364
369
365 2006-01-12 Ville Vainio <vivainio@gmail.com>
370 2006-01-12 Ville Vainio <vivainio@gmail.com>
366
371
367 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
372 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
368 Prettified and hardened string/backslash quoting with ipsystem(),
373 Prettified and hardened string/backslash quoting with ipsystem(),
369 ipalias() and ipmagic(). Now even \ characters are passed to
374 ipalias() and ipmagic(). Now even \ characters are passed to
370 %magics, !shell escapes and aliases exactly as they are in the
375 %magics, !shell escapes and aliases exactly as they are in the
371 ipython command line. Should improve backslash experience,
376 ipython command line. Should improve backslash experience,
372 particularly in Windows (path delimiter for some commands that
377 particularly in Windows (path delimiter for some commands that
373 won't understand '/'), but Unix benefits as well (regexps). %cd
378 won't understand '/'), but Unix benefits as well (regexps). %cd
374 magic still doesn't support backslash path delimiters, though. Also
379 magic still doesn't support backslash path delimiters, though. Also
375 deleted all pretense of supporting multiline command strings in
380 deleted all pretense of supporting multiline command strings in
376 !system or %magic commands. Thanks to Jerry McRae for suggestions.
381 !system or %magic commands. Thanks to Jerry McRae for suggestions.
377
382
378 * doc/build_doc_instructions.txt added. Documentation on how to
383 * doc/build_doc_instructions.txt added. Documentation on how to
379 use doc/update_manual.py, added yesterday. Both files contributed
384 use doc/update_manual.py, added yesterday. Both files contributed
380 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
385 by Jörgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
381 doc/*.sh for deprecation at a later date.
386 doc/*.sh for deprecation at a later date.
382
387
383 * /ipython.py Added ipython.py to root directory for
388 * /ipython.py Added ipython.py to root directory for
384 zero-installation (tar xzvf ipython.tgz; cd ipython; python
389 zero-installation (tar xzvf ipython.tgz; cd ipython; python
385 ipython.py) and development convenience (no need to kee doing
390 ipython.py) and development convenience (no need to kee doing
386 "setup.py install" between changes).
391 "setup.py install" between changes).
387
392
388 * Made ! and !! shell escapes work (again) in multiline expressions:
393 * Made ! and !! shell escapes work (again) in multiline expressions:
389 if 1:
394 if 1:
390 !ls
395 !ls
391 !!ls
396 !!ls
392
397
393 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
398 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
394
399
395 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
400 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
396 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
401 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
397 module in case-insensitive installation. Was causing crashes
402 module in case-insensitive installation. Was causing crashes
398 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
403 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
399
404
400 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
405 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
401 <marienz-AT-gentoo.org>, closes
406 <marienz-AT-gentoo.org>, closes
402 http://www.scipy.net/roundup/ipython/issue51.
407 http://www.scipy.net/roundup/ipython/issue51.
403
408
404 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
409 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
405
410
406 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
411 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
407 problem of excessive CPU usage under *nix and keyboard lag under
412 problem of excessive CPU usage under *nix and keyboard lag under
408 win32.
413 win32.
409
414
410 2006-01-10 *** Released version 0.7.0
415 2006-01-10 *** Released version 0.7.0
411
416
412 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
417 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
413
418
414 * IPython/Release.py (revision): tag version number to 0.7.0,
419 * IPython/Release.py (revision): tag version number to 0.7.0,
415 ready for release.
420 ready for release.
416
421
417 * IPython/Magic.py (magic_edit): Add print statement to %edit so
422 * IPython/Magic.py (magic_edit): Add print statement to %edit so
418 it informs the user of the name of the temp. file used. This can
423 it informs the user of the name of the temp. file used. This can
419 help if you decide later to reuse that same file, so you know
424 help if you decide later to reuse that same file, so you know
420 where to copy the info from.
425 where to copy the info from.
421
426
422 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
427 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
423
428
424 * setup_bdist_egg.py: little script to build an egg. Added
429 * setup_bdist_egg.py: little script to build an egg. Added
425 support in the release tools as well.
430 support in the release tools as well.
426
431
427 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
432 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
428
433
429 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
434 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
430 version selection (new -wxversion command line and ipythonrc
435 version selection (new -wxversion command line and ipythonrc
431 parameter). Patch contributed by Arnd Baecker
436 parameter). Patch contributed by Arnd Baecker
432 <arnd.baecker-AT-web.de>.
437 <arnd.baecker-AT-web.de>.
433
438
434 * IPython/iplib.py (embed_mainloop): fix tab-completion in
439 * IPython/iplib.py (embed_mainloop): fix tab-completion in
435 embedded instances, for variables defined at the interactive
440 embedded instances, for variables defined at the interactive
436 prompt of the embedded ipython. Reported by Arnd.
441 prompt of the embedded ipython. Reported by Arnd.
437
442
438 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
443 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
439 it can be used as a (stateful) toggle, or with a direct parameter.
444 it can be used as a (stateful) toggle, or with a direct parameter.
440
445
441 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
446 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
442 could be triggered in certain cases and cause the traceback
447 could be triggered in certain cases and cause the traceback
443 printer not to work.
448 printer not to work.
444
449
445 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
446
451
447 * IPython/iplib.py (_should_recompile): Small fix, closes
452 * IPython/iplib.py (_should_recompile): Small fix, closes
448 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
453 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
449
454
450 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
455 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
451
456
452 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
457 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
453 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
458 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
454 Moad for help with tracking it down.
459 Moad for help with tracking it down.
455
460
456 * IPython/iplib.py (handle_auto): fix autocall handling for
461 * IPython/iplib.py (handle_auto): fix autocall handling for
457 objects which support BOTH __getitem__ and __call__ (so that f [x]
462 objects which support BOTH __getitem__ and __call__ (so that f [x]
458 is left alone, instead of becoming f([x]) automatically).
463 is left alone, instead of becoming f([x]) automatically).
459
464
460 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
465 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
461 Ville's patch.
466 Ville's patch.
462
467
463 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
468 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
464
469
465 * IPython/iplib.py (handle_auto): changed autocall semantics to
470 * IPython/iplib.py (handle_auto): changed autocall semantics to
466 include 'smart' mode, where the autocall transformation is NOT
471 include 'smart' mode, where the autocall transformation is NOT
467 applied if there are no arguments on the line. This allows you to
472 applied if there are no arguments on the line. This allows you to
468 just type 'foo' if foo is a callable to see its internal form,
473 just type 'foo' if foo is a callable to see its internal form,
469 instead of having it called with no arguments (typically a
474 instead of having it called with no arguments (typically a
470 mistake). The old 'full' autocall still exists: for that, you
475 mistake). The old 'full' autocall still exists: for that, you
471 need to set the 'autocall' parameter to 2 in your ipythonrc file.
476 need to set the 'autocall' parameter to 2 in your ipythonrc file.
472
477
473 * IPython/completer.py (Completer.attr_matches): add
478 * IPython/completer.py (Completer.attr_matches): add
474 tab-completion support for Enthoughts' traits. After a report by
479 tab-completion support for Enthoughts' traits. After a report by
475 Arnd and a patch by Prabhu.
480 Arnd and a patch by Prabhu.
476
481
477 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
482 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
478
483
479 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
484 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
480 Schmolck's patch to fix inspect.getinnerframes().
485 Schmolck's patch to fix inspect.getinnerframes().
481
486
482 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
487 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
483 for embedded instances, regarding handling of namespaces and items
488 for embedded instances, regarding handling of namespaces and items
484 added to the __builtin__ one. Multiple embedded instances and
489 added to the __builtin__ one. Multiple embedded instances and
485 recursive embeddings should work better now (though I'm not sure
490 recursive embeddings should work better now (though I'm not sure
486 I've got all the corner cases fixed, that code is a bit of a brain
491 I've got all the corner cases fixed, that code is a bit of a brain
487 twister).
492 twister).
488
493
489 * IPython/Magic.py (magic_edit): added support to edit in-memory
494 * IPython/Magic.py (magic_edit): added support to edit in-memory
490 macros (automatically creates the necessary temp files). %edit
495 macros (automatically creates the necessary temp files). %edit
491 also doesn't return the file contents anymore, it's just noise.
496 also doesn't return the file contents anymore, it's just noise.
492
497
493 * IPython/completer.py (Completer.attr_matches): revert change to
498 * IPython/completer.py (Completer.attr_matches): revert change to
494 complete only on attributes listed in __all__. I realized it
499 complete only on attributes listed in __all__. I realized it
495 cripples the tab-completion system as a tool for exploring the
500 cripples the tab-completion system as a tool for exploring the
496 internals of unknown libraries (it renders any non-__all__
501 internals of unknown libraries (it renders any non-__all__
497 attribute off-limits). I got bit by this when trying to see
502 attribute off-limits). I got bit by this when trying to see
498 something inside the dis module.
503 something inside the dis module.
499
504
500 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
505 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
501
506
502 * IPython/iplib.py (InteractiveShell.__init__): add .meta
507 * IPython/iplib.py (InteractiveShell.__init__): add .meta
503 namespace for users and extension writers to hold data in. This
508 namespace for users and extension writers to hold data in. This
504 follows the discussion in
509 follows the discussion in
505 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
510 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
506
511
507 * IPython/completer.py (IPCompleter.complete): small patch to help
512 * IPython/completer.py (IPCompleter.complete): small patch to help
508 tab-completion under Emacs, after a suggestion by John Barnard
513 tab-completion under Emacs, after a suggestion by John Barnard
509 <barnarj-AT-ccf.org>.
514 <barnarj-AT-ccf.org>.
510
515
511 * IPython/Magic.py (Magic.extract_input_slices): added support for
516 * IPython/Magic.py (Magic.extract_input_slices): added support for
512 the slice notation in magics to use N-M to represent numbers N...M
517 the slice notation in magics to use N-M to represent numbers N...M
513 (closed endpoints). This is used by %macro and %save.
518 (closed endpoints). This is used by %macro and %save.
514
519
515 * IPython/completer.py (Completer.attr_matches): for modules which
520 * IPython/completer.py (Completer.attr_matches): for modules which
516 define __all__, complete only on those. After a patch by Jeffrey
521 define __all__, complete only on those. After a patch by Jeffrey
517 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
522 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
518 speed up this routine.
523 speed up this routine.
519
524
520 * IPython/Logger.py (Logger.log): fix a history handling bug. I
525 * IPython/Logger.py (Logger.log): fix a history handling bug. I
521 don't know if this is the end of it, but the behavior now is
526 don't know if this is the end of it, but the behavior now is
522 certainly much more correct. Note that coupled with macros,
527 certainly much more correct. Note that coupled with macros,
523 slightly surprising (at first) behavior may occur: a macro will in
528 slightly surprising (at first) behavior may occur: a macro will in
524 general expand to multiple lines of input, so upon exiting, the
529 general expand to multiple lines of input, so upon exiting, the
525 in/out counters will both be bumped by the corresponding amount
530 in/out counters will both be bumped by the corresponding amount
526 (as if the macro's contents had been typed interactively). Typing
531 (as if the macro's contents had been typed interactively). Typing
527 %hist will reveal the intermediate (silently processed) lines.
532 %hist will reveal the intermediate (silently processed) lines.
528
533
529 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
534 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
530 pickle to fail (%run was overwriting __main__ and not restoring
535 pickle to fail (%run was overwriting __main__ and not restoring
531 it, but pickle relies on __main__ to operate).
536 it, but pickle relies on __main__ to operate).
532
537
533 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
538 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
534 using properties, but forgot to make the main InteractiveShell
539 using properties, but forgot to make the main InteractiveShell
535 class a new-style class. Properties fail silently, and
540 class a new-style class. Properties fail silently, and
536 misteriously, with old-style class (getters work, but
541 misteriously, with old-style class (getters work, but
537 setters don't do anything).
542 setters don't do anything).
538
543
539 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
544 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
540
545
541 * IPython/Magic.py (magic_history): fix history reporting bug (I
546 * IPython/Magic.py (magic_history): fix history reporting bug (I
542 know some nasties are still there, I just can't seem to find a
547 know some nasties are still there, I just can't seem to find a
543 reproducible test case to track them down; the input history is
548 reproducible test case to track them down; the input history is
544 falling out of sync...)
549 falling out of sync...)
545
550
546 * IPython/iplib.py (handle_shell_escape): fix bug where both
551 * IPython/iplib.py (handle_shell_escape): fix bug where both
547 aliases and system accesses where broken for indented code (such
552 aliases and system accesses where broken for indented code (such
548 as loops).
553 as loops).
549
554
550 * IPython/genutils.py (shell): fix small but critical bug for
555 * IPython/genutils.py (shell): fix small but critical bug for
551 win32 system access.
556 win32 system access.
552
557
553 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
558 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
554
559
555 * IPython/iplib.py (showtraceback): remove use of the
560 * IPython/iplib.py (showtraceback): remove use of the
556 sys.last_{type/value/traceback} structures, which are non
561 sys.last_{type/value/traceback} structures, which are non
557 thread-safe.
562 thread-safe.
558 (_prefilter): change control flow to ensure that we NEVER
563 (_prefilter): change control flow to ensure that we NEVER
559 introspect objects when autocall is off. This will guarantee that
564 introspect objects when autocall is off. This will guarantee that
560 having an input line of the form 'x.y', where access to attribute
565 having an input line of the form 'x.y', where access to attribute
561 'y' has side effects, doesn't trigger the side effect TWICE. It
566 'y' has side effects, doesn't trigger the side effect TWICE. It
562 is important to note that, with autocall on, these side effects
567 is important to note that, with autocall on, these side effects
563 can still happen.
568 can still happen.
564 (ipsystem): new builtin, to complete the ip{magic/alias/system}
569 (ipsystem): new builtin, to complete the ip{magic/alias/system}
565 trio. IPython offers these three kinds of special calls which are
570 trio. IPython offers these three kinds of special calls which are
566 not python code, and it's a good thing to have their call method
571 not python code, and it's a good thing to have their call method
567 be accessible as pure python functions (not just special syntax at
572 be accessible as pure python functions (not just special syntax at
568 the command line). It gives us a better internal implementation
573 the command line). It gives us a better internal implementation
569 structure, as well as exposing these for user scripting more
574 structure, as well as exposing these for user scripting more
570 cleanly.
575 cleanly.
571
576
572 * IPython/macro.py (Macro.__init__): moved macros to a standalone
577 * IPython/macro.py (Macro.__init__): moved macros to a standalone
573 file. Now that they'll be more likely to be used with the
578 file. Now that they'll be more likely to be used with the
574 persistance system (%store), I want to make sure their module path
579 persistance system (%store), I want to make sure their module path
575 doesn't change in the future, so that we don't break things for
580 doesn't change in the future, so that we don't break things for
576 users' persisted data.
581 users' persisted data.
577
582
578 * IPython/iplib.py (autoindent_update): move indentation
583 * IPython/iplib.py (autoindent_update): move indentation
579 management into the _text_ processing loop, not the keyboard
584 management into the _text_ processing loop, not the keyboard
580 interactive one. This is necessary to correctly process non-typed
585 interactive one. This is necessary to correctly process non-typed
581 multiline input (such as macros).
586 multiline input (such as macros).
582
587
583 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
588 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
584 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
589 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
585 which was producing problems in the resulting manual.
590 which was producing problems in the resulting manual.
586 (magic_whos): improve reporting of instances (show their class,
591 (magic_whos): improve reporting of instances (show their class,
587 instead of simply printing 'instance' which isn't terribly
592 instead of simply printing 'instance' which isn't terribly
588 informative).
593 informative).
589
594
590 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
595 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
591 (minor mods) to support network shares under win32.
596 (minor mods) to support network shares under win32.
592
597
593 * IPython/winconsole.py (get_console_size): add new winconsole
598 * IPython/winconsole.py (get_console_size): add new winconsole
594 module and fixes to page_dumb() to improve its behavior under
599 module and fixes to page_dumb() to improve its behavior under
595 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
600 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
596
601
597 * IPython/Magic.py (Macro): simplified Macro class to just
602 * IPython/Magic.py (Macro): simplified Macro class to just
598 subclass list. We've had only 2.2 compatibility for a very long
603 subclass list. We've had only 2.2 compatibility for a very long
599 time, yet I was still avoiding subclassing the builtin types. No
604 time, yet I was still avoiding subclassing the builtin types. No
600 more (I'm also starting to use properties, though I won't shift to
605 more (I'm also starting to use properties, though I won't shift to
601 2.3-specific features quite yet).
606 2.3-specific features quite yet).
602 (magic_store): added Ville's patch for lightweight variable
607 (magic_store): added Ville's patch for lightweight variable
603 persistence, after a request on the user list by Matt Wilkie
608 persistence, after a request on the user list by Matt Wilkie
604 <maphew-AT-gmail.com>. The new %store magic's docstring has full
609 <maphew-AT-gmail.com>. The new %store magic's docstring has full
605 details.
610 details.
606
611
607 * IPython/iplib.py (InteractiveShell.post_config_initialization):
612 * IPython/iplib.py (InteractiveShell.post_config_initialization):
608 changed the default logfile name from 'ipython.log' to
613 changed the default logfile name from 'ipython.log' to
609 'ipython_log.py'. These logs are real python files, and now that
614 'ipython_log.py'. These logs are real python files, and now that
610 we have much better multiline support, people are more likely to
615 we have much better multiline support, people are more likely to
611 want to use them as such. Might as well name them correctly.
616 want to use them as such. Might as well name them correctly.
612
617
613 * IPython/Magic.py: substantial cleanup. While we can't stop
618 * IPython/Magic.py: substantial cleanup. While we can't stop
614 using magics as mixins, due to the existing customizations 'out
619 using magics as mixins, due to the existing customizations 'out
615 there' which rely on the mixin naming conventions, at least I
620 there' which rely on the mixin naming conventions, at least I
616 cleaned out all cross-class name usage. So once we are OK with
621 cleaned out all cross-class name usage. So once we are OK with
617 breaking compatibility, the two systems can be separated.
622 breaking compatibility, the two systems can be separated.
618
623
619 * IPython/Logger.py: major cleanup. This one is NOT a mixin
624 * IPython/Logger.py: major cleanup. This one is NOT a mixin
620 anymore, and the class is a fair bit less hideous as well. New
625 anymore, and the class is a fair bit less hideous as well. New
621 features were also introduced: timestamping of input, and logging
626 features were also introduced: timestamping of input, and logging
622 of output results. These are user-visible with the -t and -o
627 of output results. These are user-visible with the -t and -o
623 options to %logstart. Closes
628 options to %logstart. Closes
624 http://www.scipy.net/roundup/ipython/issue11 and a request by
629 http://www.scipy.net/roundup/ipython/issue11 and a request by
625 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
630 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
626
631
627 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
632 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
628
633
629 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
634 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
630 better hadnle backslashes in paths. See the thread 'More Windows
635 better hadnle backslashes in paths. See the thread 'More Windows
631 questions part 2 - \/ characters revisited' on the iypthon user
636 questions part 2 - \/ characters revisited' on the iypthon user
632 list:
637 list:
633 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
638 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
634
639
635 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
640 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
636
641
637 (InteractiveShell.__init__): change threaded shells to not use the
642 (InteractiveShell.__init__): change threaded shells to not use the
638 ipython crash handler. This was causing more problems than not,
643 ipython crash handler. This was causing more problems than not,
639 as exceptions in the main thread (GUI code, typically) would
644 as exceptions in the main thread (GUI code, typically) would
640 always show up as a 'crash', when they really weren't.
645 always show up as a 'crash', when they really weren't.
641
646
642 The colors and exception mode commands (%colors/%xmode) have been
647 The colors and exception mode commands (%colors/%xmode) have been
643 synchronized to also take this into account, so users can get
648 synchronized to also take this into account, so users can get
644 verbose exceptions for their threaded code as well. I also added
649 verbose exceptions for their threaded code as well. I also added
645 support for activating pdb inside this exception handler as well,
650 support for activating pdb inside this exception handler as well,
646 so now GUI authors can use IPython's enhanced pdb at runtime.
651 so now GUI authors can use IPython's enhanced pdb at runtime.
647
652
648 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
653 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
649 true by default, and add it to the shipped ipythonrc file. Since
654 true by default, and add it to the shipped ipythonrc file. Since
650 this asks the user before proceeding, I think it's OK to make it
655 this asks the user before proceeding, I think it's OK to make it
651 true by default.
656 true by default.
652
657
653 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
658 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
654 of the previous special-casing of input in the eval loop. I think
659 of the previous special-casing of input in the eval loop. I think
655 this is cleaner, as they really are commands and shouldn't have
660 this is cleaner, as they really are commands and shouldn't have
656 a special role in the middle of the core code.
661 a special role in the middle of the core code.
657
662
658 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
663 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
659
664
660 * IPython/iplib.py (edit_syntax_error): added support for
665 * IPython/iplib.py (edit_syntax_error): added support for
661 automatically reopening the editor if the file had a syntax error
666 automatically reopening the editor if the file had a syntax error
662 in it. Thanks to scottt who provided the patch at:
667 in it. Thanks to scottt who provided the patch at:
663 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
668 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
664 version committed).
669 version committed).
665
670
666 * IPython/iplib.py (handle_normal): add suport for multi-line
671 * IPython/iplib.py (handle_normal): add suport for multi-line
667 input with emtpy lines. This fixes
672 input with emtpy lines. This fixes
668 http://www.scipy.net/roundup/ipython/issue43 and a similar
673 http://www.scipy.net/roundup/ipython/issue43 and a similar
669 discussion on the user list.
674 discussion on the user list.
670
675
671 WARNING: a behavior change is necessarily introduced to support
676 WARNING: a behavior change is necessarily introduced to support
672 blank lines: now a single blank line with whitespace does NOT
677 blank lines: now a single blank line with whitespace does NOT
673 break the input loop, which means that when autoindent is on, by
678 break the input loop, which means that when autoindent is on, by
674 default hitting return on the next (indented) line does NOT exit.
679 default hitting return on the next (indented) line does NOT exit.
675
680
676 Instead, to exit a multiline input you can either have:
681 Instead, to exit a multiline input you can either have:
677
682
678 - TWO whitespace lines (just hit return again), or
683 - TWO whitespace lines (just hit return again), or
679 - a single whitespace line of a different length than provided
684 - a single whitespace line of a different length than provided
680 by the autoindent (add or remove a space).
685 by the autoindent (add or remove a space).
681
686
682 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
687 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
683 module to better organize all readline-related functionality.
688 module to better organize all readline-related functionality.
684 I've deleted FlexCompleter and put all completion clases here.
689 I've deleted FlexCompleter and put all completion clases here.
685
690
686 * IPython/iplib.py (raw_input): improve indentation management.
691 * IPython/iplib.py (raw_input): improve indentation management.
687 It is now possible to paste indented code with autoindent on, and
692 It is now possible to paste indented code with autoindent on, and
688 the code is interpreted correctly (though it still looks bad on
693 the code is interpreted correctly (though it still looks bad on
689 screen, due to the line-oriented nature of ipython).
694 screen, due to the line-oriented nature of ipython).
690 (MagicCompleter.complete): change behavior so that a TAB key on an
695 (MagicCompleter.complete): change behavior so that a TAB key on an
691 otherwise empty line actually inserts a tab, instead of completing
696 otherwise empty line actually inserts a tab, instead of completing
692