##// END OF EJS Templates
Fix typos and remove trailing whitespace.
walter.doerwald -
Show More
@@ -1,5594 +1,5593 b''
1 1 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2 2
3 3 * IPython/Extensions/ibrowse.py: Add two new commands to
4 ibrowse: hideattr (mapped to "h") hides the attribute under
4 ibrowse: "hideattr" (mapped to "h") hides the attribute under
5 5 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
6 6 attributes again. Remapped the help command to "?". Display
7 7 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
8 8 as keys for the "home" and "end" commands.
9 9
10 10 2006-06-15 Ville Vainio <vivainio@gmail.com>
11 11
12 12 * iplib.py, hooks.py: Added new generate_prompt hook that can be
13 13 used to create prompts dynamically, instead of the "old" way of
14 14 assigning "magic" strings to prompt_in1 and prompt_in2. The old
15 15 way still works (it's invoked by the default hook), of course.
16 16
17 17 * Prompts.py: added generate_output_prompt hook for altering output
18 18 prompt
19 19
20 20 * Release.py: Changed version string to 0.7.3.svn.
21 21
22 22 2006-06-15 Walter Doerwald <walter@livinglogic.de>
23 23
24 24 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
25 25 the call to fetch() always tries to fetch enough data for at least one
26 26 full screen. This makes it possible to simply call moveto(0,0,True) in
27 27 the constructor. Fix typos and removed the obsolete goto attribute.
28 28
29 29 2006-06-12 Ville Vainio <vivainio@gmail.com>
30 30
31 31 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
32 32 allowing $variable interpolation within multiline statements,
33 33 though so far only with "sh" profile for a testing period.
34 34 The patch also enables splitting long commands with \ but it
35 35 doesn't work properly yet.
36 36
37 37 2006-06-12 Walter Doerwald <walter@livinglogic.de>
38 38
39 39 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
40 40 input history and the position of the cursor in the input history for
41 41 the find, findbackwards and goto command.
42 42
43 43 2006-06-10 Walter Doerwald <walter@livinglogic.de>
44 44
45 45 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
46 46 implements the basic functionality of browser commands that require
47 47 input. Reimplement the goto, find and findbackwards commands as
48 48 subclasses of _CommandInput. Add an input history and keymaps to those
49 49 commands. Add "\r" as a keyboard shortcut for the enterdefault and
50 50 execute commands.
51 51
52 52 2006-06-07 Ville Vainio <vivainio@gmail.com>
53 53
54 54 * iplib.py: ipython mybatch.ipy exits ipython immediately after
55 55 running the batch files instead of leaving the session open.
56 56
57 57 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
58 58
59 59 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
60 60 the original fix was incomplete. Patch submitted by W. Maier.
61 61
62 62 2006-06-07 Ville Vainio <vivainio@gmail.com>
63 63
64 64 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
65 65 Confirmation prompts can be supressed by 'quiet' option.
66 66 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
67 67
68 68 2006-06-06 *** Released version 0.7.2
69 69
70 70 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
71 71
72 72 * IPython/Release.py (version): Made 0.7.2 final for release.
73 73 Repo tagged and release cut.
74 74
75 75 2006-06-05 Ville Vainio <vivainio@gmail.com>
76 76
77 77 * Magic.py (magic_rehashx): Honor no_alias list earlier in
78 78 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
79 79
80 80 * upgrade_dir.py: try import 'path' module a bit harder
81 81 (for %upgrade)
82 82
83 83 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
84 84
85 85 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
86 86 instead of looping 20 times.
87 87
88 88 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
89 89 correctly at initialization time. Bug reported by Krishna Mohan
90 90 Gundu <gkmohan-AT-gmail.com> on the user list.
91 91
92 92 * IPython/Release.py (version): Mark 0.7.2 version to start
93 93 testing for release on 06/06.
94 94
95 95 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
96 96
97 97 * scripts/irunner: thin script interface so users don't have to
98 98 find the module and call it as an executable, since modules rarely
99 99 live in people's PATH.
100 100
101 101 * IPython/irunner.py (InteractiveRunner.__init__): added
102 102 delaybeforesend attribute to control delays with newer versions of
103 103 pexpect. Thanks to detailed help from pexpect's author, Noah
104 104 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
105 105 correctly (it works in NoColor mode).
106 106
107 107 * IPython/iplib.py (handle_normal): fix nasty crash reported on
108 108 SAGE list, from improper log() calls.
109 109
110 110 2006-05-31 Ville Vainio <vivainio@gmail.com>
111 111
112 112 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
113 113 with args in parens to work correctly with dirs that have spaces.
114 114
115 115 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
116 116
117 117 * IPython/Logger.py (Logger.logstart): add option to log raw input
118 118 instead of the processed one. A -r flag was added to the
119 119 %logstart magic used for controlling logging.
120 120
121 121 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
122 122
123 123 * IPython/iplib.py (InteractiveShell.__init__): add check for the
124 124 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
125 125 recognize the option. After a bug report by Will Maier. This
126 126 closes #64 (will do it after confirmation from W. Maier).
127 127
128 128 * IPython/irunner.py: New module to run scripts as if manually
129 129 typed into an interactive environment, based on pexpect. After a
130 130 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
131 131 ipython-user list. Simple unittests in the tests/ directory.
132 132
133 133 * tools/release: add Will Maier, OpenBSD port maintainer, to
134 134 recepients list. We are now officially part of the OpenBSD ports:
135 135 http://www.openbsd.org/ports.html ! Many thanks to Will for the
136 136 work.
137 137
138 138 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
139 139
140 140 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
141 141 so that it doesn't break tkinter apps.
142 142
143 143 * IPython/iplib.py (_prefilter): fix bug where aliases would
144 144 shadow variables when autocall was fully off. Reported by SAGE
145 145 author William Stein.
146 146
147 147 * IPython/OInspect.py (Inspector.__init__): add a flag to control
148 148 at what detail level strings are computed when foo? is requested.
149 149 This allows users to ask for example that the string form of an
150 150 object is only computed when foo?? is called, or even never, by
151 151 setting the object_info_string_level >= 2 in the configuration
152 152 file. This new option has been added and documented. After a
153 153 request by SAGE to be able to control the printing of very large
154 154 objects more easily.
155 155
156 156 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
157 157
158 158 * IPython/ipmaker.py (make_IPython): remove the ipython call path
159 159 from sys.argv, to be 100% consistent with how Python itself works
160 160 (as seen for example with python -i file.py). After a bug report
161 161 by Jeffrey Collins.
162 162
163 163 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
164 164 nasty bug which was preventing custom namespaces with -pylab,
165 165 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
166 166 compatibility (long gone from mpl).
167 167
168 168 * IPython/ipapi.py (make_session): name change: create->make. We
169 169 use make in other places (ipmaker,...), it's shorter and easier to
170 170 type and say, etc. I'm trying to clean things before 0.7.2 so
171 171 that I can keep things stable wrt to ipapi in the chainsaw branch.
172 172
173 173 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
174 174 python-mode recognizes our debugger mode. Add support for
175 175 autoindent inside (X)emacs. After a patch sent in by Jin Liu
176 176 <m.liu.jin-AT-gmail.com> originally written by
177 177 doxgen-AT-newsmth.net (with minor modifications for xemacs
178 178 compatibility)
179 179
180 180 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
181 181 tracebacks when walking the stack so that the stack tracking system
182 182 in emacs' python-mode can identify the frames correctly.
183 183
184 184 * IPython/ipmaker.py (make_IPython): make the internal (and
185 185 default config) autoedit_syntax value false by default. Too many
186 186 users have complained to me (both on and off-list) about problems
187 187 with this option being on by default, so I'm making it default to
188 188 off. It can still be enabled by anyone via the usual mechanisms.
189 189
190 190 * IPython/completer.py (Completer.attr_matches): add support for
191 191 PyCrust-style _getAttributeNames magic method. Patch contributed
192 192 by <mscott-AT-goldenspud.com>. Closes #50.
193 193
194 194 * IPython/iplib.py (InteractiveShell.__init__): remove the
195 195 deletion of exit/quit from __builtin__, which can break
196 196 third-party tools like the Zope debugging console. The
197 197 %exit/%quit magics remain. In general, it's probably a good idea
198 198 not to delete anything from __builtin__, since we never know what
199 199 that will break. In any case, python now (for 2.5) will support
200 200 'real' exit/quit, so this issue is moot. Closes #55.
201 201
202 202 * IPython/genutils.py (with_obj): rename the 'with' function to
203 203 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
204 204 becomes a language keyword. Closes #53.
205 205
206 206 * IPython/FakeModule.py (FakeModule.__init__): add a proper
207 207 __file__ attribute to this so it fools more things into thinking
208 208 it is a real module. Closes #59.
209 209
210 210 * IPython/Magic.py (magic_edit): add -n option to open the editor
211 211 at a specific line number. After a patch by Stefan van der Walt.
212 212
213 213 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
214 214
215 215 * IPython/iplib.py (edit_syntax_error): fix crash when for some
216 216 reason the file could not be opened. After automatic crash
217 217 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
218 218 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
219 219 (_should_recompile): Don't fire editor if using %bg, since there
220 220 is no file in the first place. From the same report as above.
221 221 (raw_input): protect against faulty third-party prefilters. After
222 222 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
223 223 while running under SAGE.
224 224
225 225 2006-05-23 Ville Vainio <vivainio@gmail.com>
226 226
227 227 * ipapi.py: Stripped down ip.to_user_ns() to work only as
228 228 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
229 229 now returns None (again), unless dummy is specifically allowed by
230 230 ipapi.get(allow_dummy=True).
231 231
232 232 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
233 233
234 234 * IPython: remove all 2.2-compatibility objects and hacks from
235 235 everywhere, since we only support 2.3 at this point. Docs
236 236 updated.
237 237
238 238 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
239 239 Anything requiring extra validation can be turned into a Python
240 240 property in the future. I used a property for the db one b/c
241 241 there was a nasty circularity problem with the initialization
242 242 order, which right now I don't have time to clean up.
243 243
244 244 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
245 245 another locking bug reported by Jorgen. I'm not 100% sure though,
246 246 so more testing is needed...
247 247
248 248 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
249 249
250 250 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
251 251 local variables from any routine in user code (typically executed
252 252 with %run) directly into the interactive namespace. Very useful
253 253 when doing complex debugging.
254 254 (IPythonNotRunning): Changed the default None object to a dummy
255 255 whose attributes can be queried as well as called without
256 256 exploding, to ease writing code which works transparently both in
257 257 and out of ipython and uses some of this API.
258 258
259 259 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
260 260
261 261 * IPython/hooks.py (result_display): Fix the fact that our display
262 262 hook was using str() instead of repr(), as the default python
263 263 console does. This had gone unnoticed b/c it only happened if
264 264 %Pprint was off, but the inconsistency was there.
265 265
266 266 2006-05-15 Ville Vainio <vivainio@gmail.com>
267 267
268 268 * Oinspect.py: Only show docstring for nonexisting/binary files
269 269 when doing object??, closing ticket #62
270 270
271 271 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
272 272
273 273 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
274 274 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
275 275 was being released in a routine which hadn't checked if it had
276 276 been the one to acquire it.
277 277
278 278 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
279 279
280 280 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
281 281
282 282 2006-04-11 Ville Vainio <vivainio@gmail.com>
283 283
284 284 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
285 285 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
286 286 prefilters, allowing stuff like magics and aliases in the file.
287 287
288 288 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
289 289 added. Supported now are "%clear in" and "%clear out" (clear input and
290 290 output history, respectively). Also fixed CachedOutput.flush to
291 291 properly flush the output cache.
292 292
293 293 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
294 294 half-success (and fail explicitly).
295 295
296 296 2006-03-28 Ville Vainio <vivainio@gmail.com>
297 297
298 298 * iplib.py: Fix quoting of aliases so that only argless ones
299 299 are quoted
300 300
301 301 2006-03-28 Ville Vainio <vivainio@gmail.com>
302 302
303 303 * iplib.py: Quote aliases with spaces in the name.
304 304 "c:\program files\blah\bin" is now legal alias target.
305 305
306 306 * ext_rehashdir.py: Space no longer allowed as arg
307 307 separator, since space is legal in path names.
308 308
309 309 2006-03-16 Ville Vainio <vivainio@gmail.com>
310 310
311 311 * upgrade_dir.py: Take path.py from Extensions, correcting
312 312 %upgrade magic
313 313
314 314 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
315 315
316 316 * hooks.py: Only enclose editor binary in quotes if legal and
317 317 necessary (space in the name, and is an existing file). Fixes a bug
318 318 reported by Zachary Pincus.
319 319
320 320 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
321 321
322 322 * Manual: thanks to a tip on proper color handling for Emacs, by
323 323 Eric J Haywiser <ejh1-AT-MIT.EDU>.
324 324
325 325 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
326 326 by applying the provided patch. Thanks to Liu Jin
327 327 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
328 328 XEmacs/Linux, I'm trusting the submitter that it actually helps
329 329 under win32/GNU Emacs. Will revisit if any problems are reported.
330 330
331 331 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
332 332
333 333 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
334 334 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
335 335
336 336 2006-03-12 Ville Vainio <vivainio@gmail.com>
337 337
338 338 * Magic.py (magic_timeit): Added %timeit magic, contributed by
339 339 Torsten Marek.
340 340
341 341 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
342 342
343 343 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
344 344 line ranges works again.
345 345
346 346 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
347 347
348 348 * IPython/iplib.py (showtraceback): add back sys.last_traceback
349 349 and friends, after a discussion with Zach Pincus on ipython-user.
350 I'm not 100% sure, but after thinking aobut it quite a bit, it may
350 I'm not 100% sure, but after thinking about it quite a bit, it may
351 351 be OK. Testing with the multithreaded shells didn't reveal any
352 352 problems, but let's keep an eye out.
353 353
354 354 In the process, I fixed a few things which were calling
355 355 self.InteractiveTB() directly (like safe_execfile), which is a
356 356 mistake: ALL exception reporting should be done by calling
357 357 self.showtraceback(), which handles state and tab-completion and
358 358 more.
359 359
360 360 2006-03-01 Ville Vainio <vivainio@gmail.com>
361 361
362 362 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
363 363 To use, do "from ipipe import *".
364 364
365 365 2006-02-24 Ville Vainio <vivainio@gmail.com>
366 366
367 367 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
368 368 "cleanly" and safely than the older upgrade mechanism.
369 369
370 370 2006-02-21 Ville Vainio <vivainio@gmail.com>
371 371
372 372 * Magic.py: %save works again.
373 373
374 374 2006-02-15 Ville Vainio <vivainio@gmail.com>
375 375
376 376 * Magic.py: %Pprint works again
377 377
378 378 * Extensions/ipy_sane_defaults.py: Provide everything provided
379 379 in default ipythonrc, to make it possible to have a completely empty
380 380 ipythonrc (and thus completely rc-file free configuration)
381 381
382
383 382 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
384 383
385 384 * IPython/hooks.py (editor): quote the call to the editor command,
386 385 to allow commands with spaces in them. Problem noted by watching
387 386 Ian Oswald's video about textpad under win32 at
388 387 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
389 388
390 389 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
391 390 describing magics (we haven't used @ for a loong time).
392 391
393 392 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
394 393 contributed by marienz to close
395 394 http://www.scipy.net/roundup/ipython/issue53.
396 395
397 396 2006-02-10 Ville Vainio <vivainio@gmail.com>
398 397
399 398 * genutils.py: getoutput now works in win32 too
400 399
401 400 * completer.py: alias and magic completion only invoked
402 401 at the first "item" in the line, to avoid "cd %store"
403 402 nonsense.
404 403
405 404 2006-02-09 Ville Vainio <vivainio@gmail.com>
406 405
407 406 * test/*: Added a unit testing framework (finally).
408 407 '%run runtests.py' to run test_*.
409 408
410 409 * ipapi.py: Exposed runlines and set_custom_exc
411 410
412 411 2006-02-07 Ville Vainio <vivainio@gmail.com>
413 412
414 413 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
415 414 instead use "f(1 2)" as before.
416 415
417 416 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
418 417
419 418 * IPython/demo.py (IPythonDemo): Add new classes to the demo
420 419 facilities, for demos processed by the IPython input filter
421 420 (IPythonDemo), and for running a script one-line-at-a-time as a
422 421 demo, both for pure Python (LineDemo) and for IPython-processed
423 422 input (IPythonLineDemo). After a request by Dave Kohel, from the
424 423 SAGE team.
425 (Demo.edit): added and edit() method to the demo objects, to edit
424 (Demo.edit): added an edit() method to the demo objects, to edit
426 425 the in-memory copy of the last executed block.
427 426
428 427 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
429 428 processing to %edit, %macro and %save. These commands can now be
430 429 invoked on the unprocessed input as it was typed by the user
431 430 (without any prefilters applied). After requests by the SAGE team
432 431 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
433 432
434 433 2006-02-01 Ville Vainio <vivainio@gmail.com>
435 434
436 435 * setup.py, eggsetup.py: easy_install ipython==dev works
437 436 correctly now (on Linux)
438 437
439 438 * ipy_user_conf,ipmaker: user config changes, removed spurious
440 439 warnings
441 440
442 441 * iplib: if rc.banner is string, use it as is.
443 442
444 443 * Magic: %pycat accepts a string argument and pages it's contents.
445 444
446 445
447 446 2006-01-30 Ville Vainio <vivainio@gmail.com>
448 447
449 448 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
450 449 Now %store and bookmarks work through PickleShare, meaning that
451 450 concurrent access is possible and all ipython sessions see the
452 451 same database situation all the time, instead of snapshot of
453 452 the situation when the session was started. Hence, %bookmark
454 453 results are immediately accessible from othes sessions. The database
455 454 is also available for use by user extensions. See:
456 455 http://www.python.org/pypi/pickleshare
457 456
458 457 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
459 458
460 459 * aliases can now be %store'd
461 460
462 * path.py move to Extensions so that pickleshare does not need
461 * path.py moved to Extensions so that pickleshare does not need
463 462 IPython-specific import. Extensions added to pythonpath right
464 463 at __init__.
465 464
466 465 * iplib.py: ipalias deprecated/redundant; aliases are converted and
467 466 called with _ip.system and the pre-transformed command string.
468 467
469 468 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
470 469
471 470 * IPython/iplib.py (interact): Fix that we were not catching
472 471 KeyboardInterrupt exceptions properly. I'm not quite sure why the
473 472 logic here had to change, but it's fixed now.
474 473
475 474 2006-01-29 Ville Vainio <vivainio@gmail.com>
476 475
477 476 * iplib.py: Try to import pyreadline on Windows.
478 477
479 478 2006-01-27 Ville Vainio <vivainio@gmail.com>
480 479
481 480 * iplib.py: Expose ipapi as _ip in builtin namespace.
482 481 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
483 482 and ip_set_hook (-> _ip.set_hook) redundant. % and !
484 483 syntax now produce _ip.* variant of the commands.
485 484
486 485 * "_ip.options().autoedit_syntax = 2" automatically throws
487 486 user to editor for syntax error correction without prompting.
488 487
489 488 2006-01-27 Ville Vainio <vivainio@gmail.com>
490 489
491 490 * ipmaker.py: Give "realistic" sys.argv for scripts (without
492 491 'ipython' at argv[0]) executed through command line.
493 492 NOTE: this DEPRECATES calling ipython with multiple scripts
494 493 ("ipython a.py b.py c.py")
495 494
496 495 * iplib.py, hooks.py: Added configurable input prefilter,
497 496 named 'input_prefilter'. See ext_rescapture.py for example
498 497 usage.
499 498
500 499 * ext_rescapture.py, Magic.py: Better system command output capture
501 500 through 'var = !ls' (deprecates user-visible %sc). Same notation
502 501 applies for magics, 'var = %alias' assigns alias list to var.
503 502
504 503 * ipapi.py: added meta() for accessing extension-usable data store.
505 504
506 505 * iplib.py: added InteractiveShell.getapi(). New magics should be
507 506 written doing self.getapi() instead of using the shell directly.
508 507
509 508 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
510 509 %store foo >> ~/myfoo.txt to store variables to files (in clean
511 510 textual form, not a restorable pickle).
512 511
513 512 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
514 513
515 514 * usage.py, Magic.py: added %quickref
516 515
517 516 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
518 517
519 518 * GetoptErrors when invoking magics etc. with wrong args
520 519 are now more helpful:
521 520 GetoptError: option -l not recognized (allowed: "qb" )
522 521
523 522 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
524 523
525 524 * IPython/demo.py (Demo.show): Flush stdout after each block, so
526 525 computationally intensive blocks don't appear to stall the demo.
527 526
528 527 2006-01-24 Ville Vainio <vivainio@gmail.com>
529 528
530 529 * iplib.py, hooks.py: 'result_display' hook can return a non-None
531 530 value to manipulate resulting history entry.
532 531
533 532 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
534 533 to instance methods of IPApi class, to make extending an embedded
535 534 IPython feasible. See ext_rehashdir.py for example usage.
536 535
537 * Merged 1071-1076 from banches/0.7.1
536 * Merged 1071-1076 from branches/0.7.1
538 537
539 538
540 539 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
541 540
542 541 * tools/release (daystamp): Fix build tools to use the new
543 542 eggsetup.py script to build lightweight eggs.
544 543
545 544 * Applied changesets 1062 and 1064 before 0.7.1 release.
546 545
547 546 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
548 547 see the raw input history (without conversions like %ls ->
549 548 ipmagic("ls")). After a request from W. Stein, SAGE
550 549 (http://modular.ucsd.edu/sage) developer. This information is
551 550 stored in the input_hist_raw attribute of the IPython instance, so
552 551 developers can access it if needed (it's an InputList instance).
553 552
554 553 * Versionstring = 0.7.2.svn
555 554
556 555 * eggsetup.py: A separate script for constructing eggs, creates
557 556 proper launch scripts even on Windows (an .exe file in
558 557 \python24\scripts).
559 558
560 559 * ipapi.py: launch_new_instance, launch entry point needed for the
561 560 egg.
562 561
563 562 2006-01-23 Ville Vainio <vivainio@gmail.com>
564 563
565 564 * Added %cpaste magic for pasting python code
566 565
567 566 2006-01-22 Ville Vainio <vivainio@gmail.com>
568 567
569 568 * Merge from branches/0.7.1 into trunk, revs 1052-1057
570 569
571 570 * Versionstring = 0.7.2.svn
572 571
573 572 * eggsetup.py: A separate script for constructing eggs, creates
574 573 proper launch scripts even on Windows (an .exe file in
575 574 \python24\scripts).
576 575
577 576 * ipapi.py: launch_new_instance, launch entry point needed for the
578 577 egg.
579 578
580 579 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
581 580
582 581 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
583 582 %pfile foo would print the file for foo even if it was a binary.
584 583 Now, extensions '.so' and '.dll' are skipped.
585 584
586 585 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
587 586 bug, where macros would fail in all threaded modes. I'm not 100%
588 587 sure, so I'm going to put out an rc instead of making a release
589 588 today, and wait for feedback for at least a few days.
590 589
591 590 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
592 591 it...) the handling of pasting external code with autoindent on.
593 592 To get out of a multiline input, the rule will appear for most
594 593 users unchanged: two blank lines or change the indent level
595 594 proposed by IPython. But there is a twist now: you can
596 595 add/subtract only *one or two spaces*. If you add/subtract three
597 596 or more (unless you completely delete the line), IPython will
598 597 accept that line, and you'll need to enter a second one of pure
599 598 whitespace. I know it sounds complicated, but I can't find a
600 599 different solution that covers all the cases, with the right
601 600 heuristics. Hopefully in actual use, nobody will really notice
602 601 all these strange rules and things will 'just work'.
603 602
604 603 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
605 604
606 605 * IPython/iplib.py (interact): catch exceptions which can be
607 606 triggered asynchronously by signal handlers. Thanks to an
608 607 automatic crash report, submitted by Colin Kingsley
609 608 <tercel-AT-gentoo.org>.
610 609
611 610 2006-01-20 Ville Vainio <vivainio@gmail.com>
612 611
613 612 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
614 613 (%rehashdir, very useful, try it out) of how to extend ipython
615 614 with new magics. Also added Extensions dir to pythonpath to make
616 615 importing extensions easy.
617 616
618 617 * %store now complains when trying to store interactively declared
619 618 classes / instances of those classes.
620 619
621 620 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
622 621 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
623 622 if they exist, and ipy_user_conf.py with some defaults is created for
624 623 the user.
625 624
626 625 * Startup rehashing done by the config file, not InterpreterExec.
627 626 This means system commands are available even without selecting the
628 627 pysh profile. It's the sensible default after all.
629 628
630 629 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
631 630
632 631 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
633 632 multiline code with autoindent on working. But I am really not
634 633 sure, so this needs more testing. Will commit a debug-enabled
635 634 version for now, while I test it some more, so that Ville and
636 635 others may also catch any problems. Also made
637 636 self.indent_current_str() a method, to ensure that there's no
638 637 chance of the indent space count and the corresponding string
639 638 falling out of sync. All code needing the string should just call
640 639 the method.
641 640
642 641 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
643 642
644 643 * IPython/Magic.py (magic_edit): fix check for when users don't
645 644 save their output files, the try/except was in the wrong section.
646 645
647 646 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
648 647
649 648 * IPython/Magic.py (magic_run): fix __file__ global missing from
650 649 script's namespace when executed via %run. After a report by
651 650 Vivian.
652 651
653 652 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
654 653 when using python 2.4. The parent constructor changed in 2.4, and
655 654 we need to track it directly (we can't call it, as it messes up
656 655 readline and tab-completion inside our pdb would stop working).
657 656 After a bug report by R. Bernstein <rocky-AT-panix.com>.
658 657
659 658 2006-01-16 Ville Vainio <vivainio@gmail.com>
660 659
661 660 * Ipython/magic.py: Reverted back to old %edit functionality
662 661 that returns file contents on exit.
663 662
664 663 * IPython/path.py: Added Jason Orendorff's "path" module to
665 664 IPython tree, http://www.jorendorff.com/articles/python/path/.
666 665 You can get path objects conveniently through %sc, and !!, e.g.:
667 666 sc files=ls
668 667 for p in files.paths: # or files.p
669 668 print p,p.mtime
670 669
671 670 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
672 671 now work again without considering the exclusion regexp -
673 672 hence, things like ',foo my/path' turn to 'foo("my/path")'
674 673 instead of syntax error.
675 674
676 675
677 676 2006-01-14 Ville Vainio <vivainio@gmail.com>
678 677
679 678 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
680 679 ipapi decorators for python 2.4 users, options() provides access to rc
681 680 data.
682 681
683 682 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
684 683 as path separators (even on Linux ;-). Space character after
685 684 backslash (as yielded by tab completer) is still space;
686 685 "%cd long\ name" works as expected.
687 686
688 687 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
689 688 as "chain of command", with priority. API stays the same,
690 689 TryNext exception raised by a hook function signals that
691 690 current hook failed and next hook should try handling it, as
692 691 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
693 692 requested configurable display hook, which is now implemented.
694 693
695 694 2006-01-13 Ville Vainio <vivainio@gmail.com>
696 695
697 696 * IPython/platutils*.py: platform specific utility functions,
698 697 so far only set_term_title is implemented (change terminal
699 698 label in windowing systems). %cd now changes the title to
700 699 current dir.
701 700
702 701 * IPython/Release.py: Added myself to "authors" list,
703 702 had to create new files.
704 703
705 704 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
706 705 shell escape; not a known bug but had potential to be one in the
707 706 future.
708 707
709 708 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
710 709 extension API for IPython! See the module for usage example. Fix
711 710 OInspect for docstring-less magic functions.
712 711
713 712
714 713 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
715 714
716 715 * IPython/iplib.py (raw_input): temporarily deactivate all
717 716 attempts at allowing pasting of code with autoindent on. It
718 717 introduced bugs (reported by Prabhu) and I can't seem to find a
719 718 robust combination which works in all cases. Will have to revisit
720 719 later.
721 720
722 721 * IPython/genutils.py: remove isspace() function. We've dropped
723 722 2.2 compatibility, so it's OK to use the string method.
724 723
725 724 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
726 725
727 726 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
728 727 matching what NOT to autocall on, to include all python binary
729 728 operators (including things like 'and', 'or', 'is' and 'in').
730 729 Prompted by a bug report on 'foo & bar', but I realized we had
731 730 many more potential bug cases with other operators. The regexp is
732 731 self.re_exclude_auto, it's fairly commented.
733 732
734 733 2006-01-12 Ville Vainio <vivainio@gmail.com>
735 734
736 735 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
737 736 Prettified and hardened string/backslash quoting with ipsystem(),
738 737 ipalias() and ipmagic(). Now even \ characters are passed to
739 738 %magics, !shell escapes and aliases exactly as they are in the
740 739 ipython command line. Should improve backslash experience,
741 740 particularly in Windows (path delimiter for some commands that
742 741 won't understand '/'), but Unix benefits as well (regexps). %cd
743 742 magic still doesn't support backslash path delimiters, though. Also
744 743 deleted all pretense of supporting multiline command strings in
745 744 !system or %magic commands. Thanks to Jerry McRae for suggestions.
746 745
747 746 * doc/build_doc_instructions.txt added. Documentation on how to
748 747 use doc/update_manual.py, added yesterday. Both files contributed
749 748 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
750 749 doc/*.sh for deprecation at a later date.
751 750
752 751 * /ipython.py Added ipython.py to root directory for
753 752 zero-installation (tar xzvf ipython.tgz; cd ipython; python
754 ipython.py) and development convenience (no need to kee doing
753 ipython.py) and development convenience (no need to keep doing
755 754 "setup.py install" between changes).
756 755
757 756 * Made ! and !! shell escapes work (again) in multiline expressions:
758 757 if 1:
759 758 !ls
760 759 !!ls
761 760
762 761 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
763 762
764 763 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
765 764 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
766 765 module in case-insensitive installation. Was causing crashes
767 766 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
768 767
769 768 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
770 769 <marienz-AT-gentoo.org>, closes
771 770 http://www.scipy.net/roundup/ipython/issue51.
772 771
773 772 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
774 773
775 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
774 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
776 775 problem of excessive CPU usage under *nix and keyboard lag under
777 776 win32.
778 777
779 778 2006-01-10 *** Released version 0.7.0
780 779
781 780 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
782 781
783 782 * IPython/Release.py (revision): tag version number to 0.7.0,
784 783 ready for release.
785 784
786 785 * IPython/Magic.py (magic_edit): Add print statement to %edit so
787 786 it informs the user of the name of the temp. file used. This can
788 787 help if you decide later to reuse that same file, so you know
789 788 where to copy the info from.
790 789
791 790 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
792 791
793 792 * setup_bdist_egg.py: little script to build an egg. Added
794 793 support in the release tools as well.
795 794
796 795 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
797 796
798 797 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
799 798 version selection (new -wxversion command line and ipythonrc
800 799 parameter). Patch contributed by Arnd Baecker
801 800 <arnd.baecker-AT-web.de>.
802 801
803 802 * IPython/iplib.py (embed_mainloop): fix tab-completion in
804 803 embedded instances, for variables defined at the interactive
805 804 prompt of the embedded ipython. Reported by Arnd.
806 805
807 806 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
808 807 it can be used as a (stateful) toggle, or with a direct parameter.
809 808
810 809 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
811 810 could be triggered in certain cases and cause the traceback
812 811 printer not to work.
813 812
814 813 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
815 814
816 815 * IPython/iplib.py (_should_recompile): Small fix, closes
817 816 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
818 817
819 818 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
820 819
821 820 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
822 821 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
823 822 Moad for help with tracking it down.
824 823
825 824 * IPython/iplib.py (handle_auto): fix autocall handling for
826 825 objects which support BOTH __getitem__ and __call__ (so that f [x]
827 826 is left alone, instead of becoming f([x]) automatically).
828 827
829 828 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
830 829 Ville's patch.
831 830
832 831 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
833 832
834 833 * IPython/iplib.py (handle_auto): changed autocall semantics to
835 834 include 'smart' mode, where the autocall transformation is NOT
836 835 applied if there are no arguments on the line. This allows you to
837 836 just type 'foo' if foo is a callable to see its internal form,
838 837 instead of having it called with no arguments (typically a
839 838 mistake). The old 'full' autocall still exists: for that, you
840 839 need to set the 'autocall' parameter to 2 in your ipythonrc file.
841 840
842 841 * IPython/completer.py (Completer.attr_matches): add
843 842 tab-completion support for Enthoughts' traits. After a report by
844 843 Arnd and a patch by Prabhu.
845 844
846 845 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
847 846
848 847 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
849 848 Schmolck's patch to fix inspect.getinnerframes().
850 849
851 850 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
852 851 for embedded instances, regarding handling of namespaces and items
853 852 added to the __builtin__ one. Multiple embedded instances and
854 853 recursive embeddings should work better now (though I'm not sure
855 854 I've got all the corner cases fixed, that code is a bit of a brain
856 855 twister).
857 856
858 857 * IPython/Magic.py (magic_edit): added support to edit in-memory
859 858 macros (automatically creates the necessary temp files). %edit
860 859 also doesn't return the file contents anymore, it's just noise.
861 860
862 861 * IPython/completer.py (Completer.attr_matches): revert change to
863 862 complete only on attributes listed in __all__. I realized it
864 863 cripples the tab-completion system as a tool for exploring the
865 864 internals of unknown libraries (it renders any non-__all__
866 865 attribute off-limits). I got bit by this when trying to see
867 866 something inside the dis module.
868 867
869 868 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
870 869
871 870 * IPython/iplib.py (InteractiveShell.__init__): add .meta
872 871 namespace for users and extension writers to hold data in. This
873 872 follows the discussion in
874 873 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
875 874
876 875 * IPython/completer.py (IPCompleter.complete): small patch to help
877 876 tab-completion under Emacs, after a suggestion by John Barnard
878 877 <barnarj-AT-ccf.org>.
879 878
880 879 * IPython/Magic.py (Magic.extract_input_slices): added support for
881 880 the slice notation in magics to use N-M to represent numbers N...M
882 881 (closed endpoints). This is used by %macro and %save.
883 882
884 883 * IPython/completer.py (Completer.attr_matches): for modules which
885 884 define __all__, complete only on those. After a patch by Jeffrey
886 885 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
887 886 speed up this routine.
888 887
889 888 * IPython/Logger.py (Logger.log): fix a history handling bug. I
890 889 don't know if this is the end of it, but the behavior now is
891 890 certainly much more correct. Note that coupled with macros,
892 891 slightly surprising (at first) behavior may occur: a macro will in
893 892 general expand to multiple lines of input, so upon exiting, the
894 893 in/out counters will both be bumped by the corresponding amount
895 894 (as if the macro's contents had been typed interactively). Typing
896 895 %hist will reveal the intermediate (silently processed) lines.
897 896
898 897 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
899 898 pickle to fail (%run was overwriting __main__ and not restoring
900 899 it, but pickle relies on __main__ to operate).
901 900
902 901 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
903 902 using properties, but forgot to make the main InteractiveShell
904 903 class a new-style class. Properties fail silently, and
905 misteriously, with old-style class (getters work, but
904 mysteriously, with old-style class (getters work, but
906 905 setters don't do anything).
907 906
908 907 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
909 908
910 909 * IPython/Magic.py (magic_history): fix history reporting bug (I
911 910 know some nasties are still there, I just can't seem to find a
912 911 reproducible test case to track them down; the input history is
913 912 falling out of sync...)
914 913
915 914 * IPython/iplib.py (handle_shell_escape): fix bug where both
916 915 aliases and system accesses where broken for indented code (such
917 916 as loops).
918 917
919 918 * IPython/genutils.py (shell): fix small but critical bug for
920 919 win32 system access.
921 920
922 921 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
923 922
924 923 * IPython/iplib.py (showtraceback): remove use of the
925 924 sys.last_{type/value/traceback} structures, which are non
926 925 thread-safe.
927 926 (_prefilter): change control flow to ensure that we NEVER
928 927 introspect objects when autocall is off. This will guarantee that
929 928 having an input line of the form 'x.y', where access to attribute
930 929 'y' has side effects, doesn't trigger the side effect TWICE. It
931 930 is important to note that, with autocall on, these side effects
932 931 can still happen.
933 932 (ipsystem): new builtin, to complete the ip{magic/alias/system}
934 933 trio. IPython offers these three kinds of special calls which are
935 934 not python code, and it's a good thing to have their call method
936 935 be accessible as pure python functions (not just special syntax at
937 936 the command line). It gives us a better internal implementation
938 937 structure, as well as exposing these for user scripting more
939 938 cleanly.
940 939
941 940 * IPython/macro.py (Macro.__init__): moved macros to a standalone
942 941 file. Now that they'll be more likely to be used with the
943 942 persistance system (%store), I want to make sure their module path
944 943 doesn't change in the future, so that we don't break things for
945 944 users' persisted data.
946 945
947 946 * IPython/iplib.py (autoindent_update): move indentation
948 947 management into the _text_ processing loop, not the keyboard
949 948 interactive one. This is necessary to correctly process non-typed
950 949 multiline input (such as macros).
951 950
952 951 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
953 952 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
954 953 which was producing problems in the resulting manual.
955 954 (magic_whos): improve reporting of instances (show their class,
956 955 instead of simply printing 'instance' which isn't terribly
957 956 informative).
958 957
959 958 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
960 959 (minor mods) to support network shares under win32.
961 960
962 961 * IPython/winconsole.py (get_console_size): add new winconsole
963 962 module and fixes to page_dumb() to improve its behavior under
964 963 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
965 964
966 965 * IPython/Magic.py (Macro): simplified Macro class to just
967 966 subclass list. We've had only 2.2 compatibility for a very long
968 967 time, yet I was still avoiding subclassing the builtin types. No
969 968 more (I'm also starting to use properties, though I won't shift to
970 969 2.3-specific features quite yet).
971 970 (magic_store): added Ville's patch for lightweight variable
972 971 persistence, after a request on the user list by Matt Wilkie
973 972 <maphew-AT-gmail.com>. The new %store magic's docstring has full
974 973 details.
975 974
976 975 * IPython/iplib.py (InteractiveShell.post_config_initialization):
977 976 changed the default logfile name from 'ipython.log' to
978 977 'ipython_log.py'. These logs are real python files, and now that
979 978 we have much better multiline support, people are more likely to
980 979 want to use them as such. Might as well name them correctly.
981 980
982 981 * IPython/Magic.py: substantial cleanup. While we can't stop
983 982 using magics as mixins, due to the existing customizations 'out
984 983 there' which rely on the mixin naming conventions, at least I
985 984 cleaned out all cross-class name usage. So once we are OK with
986 985 breaking compatibility, the two systems can be separated.
987 986
988 987 * IPython/Logger.py: major cleanup. This one is NOT a mixin
989 988 anymore, and the class is a fair bit less hideous as well. New
990 989 features were also introduced: timestamping of input, and logging
991 990 of output results. These are user-visible with the -t and -o
992 991 options to %logstart. Closes
993 992 http://www.scipy.net/roundup/ipython/issue11 and a request by
994 993 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
995 994
996 995 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
997 996
998 997 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
999 better hadnle backslashes in paths. See the thread 'More Windows
998 better handle backslashes in paths. See the thread 'More Windows
1000 999 questions part 2 - \/ characters revisited' on the iypthon user
1001 1000 list:
1002 1001 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1003 1002
1004 1003 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1005 1004
1006 1005 (InteractiveShell.__init__): change threaded shells to not use the
1007 1006 ipython crash handler. This was causing more problems than not,
1008 1007 as exceptions in the main thread (GUI code, typically) would
1009 1008 always show up as a 'crash', when they really weren't.
1010 1009
1011 1010 The colors and exception mode commands (%colors/%xmode) have been
1012 1011 synchronized to also take this into account, so users can get
1013 1012 verbose exceptions for their threaded code as well. I also added
1014 1013 support for activating pdb inside this exception handler as well,
1015 1014 so now GUI authors can use IPython's enhanced pdb at runtime.
1016 1015
1017 1016 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1018 1017 true by default, and add it to the shipped ipythonrc file. Since
1019 1018 this asks the user before proceeding, I think it's OK to make it
1020 1019 true by default.
1021 1020
1022 1021 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1023 1022 of the previous special-casing of input in the eval loop. I think
1024 1023 this is cleaner, as they really are commands and shouldn't have
1025 1024 a special role in the middle of the core code.
1026 1025
1027 1026 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1028 1027
1029 1028 * IPython/iplib.py (edit_syntax_error): added support for
1030 1029 automatically reopening the editor if the file had a syntax error
1031 1030 in it. Thanks to scottt who provided the patch at:
1032 1031 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1033 1032 version committed).
1034 1033
1035 1034 * IPython/iplib.py (handle_normal): add suport for multi-line
1036 1035 input with emtpy lines. This fixes
1037 1036 http://www.scipy.net/roundup/ipython/issue43 and a similar
1038 1037 discussion on the user list.
1039 1038
1040 1039 WARNING: a behavior change is necessarily introduced to support
1041 1040 blank lines: now a single blank line with whitespace does NOT
1042 1041 break the input loop, which means that when autoindent is on, by
1043 1042 default hitting return on the next (indented) line does NOT exit.
1044 1043
1045 1044 Instead, to exit a multiline input you can either have:
1046 1045
1047 1046 - TWO whitespace lines (just hit return again), or
1048 1047 - a single whitespace line of a different length than provided
1049 1048 by the autoindent (add or remove a space).
1050 1049
1051 1050 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1052 1051 module to better organize all readline-related functionality.
1053 1052 I've deleted FlexCompleter and put all completion clases here.
1054 1053
1055 1054 * IPython/iplib.py (raw_input): improve indentation management.
1056 1055 It is now possible to paste indented code with autoindent on, and
1057 1056 the code is interpreted correctly (though it still looks bad on
1058 1057 screen, due to the line-oriented nature of ipython).
1059 1058 (MagicCompleter.complete): change behavior so that a TAB key on an
1060 1059 otherwise empty line actually inserts a tab, instead of completing
1061 1060 on the entire global namespace. This makes it easier to use the
1062 1061 TAB key for indentation. After a request by Hans Meine
1063 1062 <hans_meine-AT-gmx.net>
1064 1063 (_prefilter): add support so that typing plain 'exit' or 'quit'
1065 1064 does a sensible thing. Originally I tried to deviate as little as
1066 1065 possible from the default python behavior, but even that one may
1067 1066 change in this direction (thread on python-dev to that effect).
1068 1067 Regardless, ipython should do the right thing even if CPython's
1069 1068 '>>>' prompt doesn't.
1070 1069 (InteractiveShell): removed subclassing code.InteractiveConsole
1071 1070 class. By now we'd overridden just about all of its methods: I've
1072 1071 copied the remaining two over, and now ipython is a standalone
1073 1072 class. This will provide a clearer picture for the chainsaw
1074 1073 branch refactoring.
1075 1074
1076 1075 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1077 1076
1078 1077 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1079 1078 failures for objects which break when dir() is called on them.
1080 1079
1081 1080 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1082 1081 distinct local and global namespaces in the completer API. This
1083 change allows us top properly handle completion with distinct
1082 change allows us to properly handle completion with distinct
1084 1083 scopes, including in embedded instances (this had never really
1085 1084 worked correctly).
1086 1085
1087 1086 Note: this introduces a change in the constructor for
1088 1087 MagicCompleter, as a new global_namespace parameter is now the
1089 1088 second argument (the others were bumped one position).
1090 1089
1091 1090 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1092 1091
1093 1092 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1094 1093 embedded instances (which can be done now thanks to Vivian's
1095 1094 frame-handling fixes for pdb).
1096 1095 (InteractiveShell.__init__): Fix namespace handling problem in
1097 1096 embedded instances. We were overwriting __main__ unconditionally,
1098 1097 and this should only be done for 'full' (non-embedded) IPython;
1099 1098 embedded instances must respect the caller's __main__. Thanks to
1100 1099 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1101 1100
1102 1101 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1103 1102
1104 1103 * setup.py: added download_url to setup(). This registers the
1105 1104 download address at PyPI, which is not only useful to humans
1106 1105 browsing the site, but is also picked up by setuptools (the Eggs
1107 1106 machinery). Thanks to Ville and R. Kern for the info/discussion
1108 1107 on this.
1109 1108
1110 1109 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1111 1110
1112 1111 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1113 1112 This brings a lot of nice functionality to the pdb mode, which now
1114 1113 has tab-completion, syntax highlighting, and better stack handling
1115 1114 than before. Many thanks to Vivian De Smedt
1116 1115 <vivian-AT-vdesmedt.com> for the original patches.
1117 1116
1118 1117 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1119 1118
1120 1119 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1121 1120 sequence to consistently accept the banner argument. The
1122 1121 inconsistency was tripping SAGE, thanks to Gary Zablackis
1123 1122 <gzabl-AT-yahoo.com> for the report.
1124 1123
1125 1124 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1126 1125
1127 1126 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1128 1127 Fix bug where a naked 'alias' call in the ipythonrc file would
1129 1128 cause a crash. Bug reported by Jorgen Stenarson.
1130 1129
1131 1130 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1132 1131
1133 1132 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1134 1133 startup time.
1135 1134
1136 1135 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1137 1136 instances had introduced a bug with globals in normal code. Now
1138 1137 it's working in all cases.
1139 1138
1140 1139 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1141 1140 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1142 1141 has been introduced to set the default case sensitivity of the
1143 1142 searches. Users can still select either mode at runtime on a
1144 1143 per-search basis.
1145 1144
1146 1145 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1147 1146
1148 1147 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1149 1148 attributes in wildcard searches for subclasses. Modified version
1150 1149 of a patch by Jorgen.
1151 1150
1152 1151 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1153 1152
1154 1153 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1155 1154 embedded instances. I added a user_global_ns attribute to the
1156 1155 InteractiveShell class to handle this.
1157 1156
1158 1157 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1159 1158
1160 1159 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1161 1160 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1162 1161 (reported under win32, but may happen also in other platforms).
1163 1162 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1164 1163
1165 1164 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1166 1165
1167 1166 * IPython/Magic.py (magic_psearch): new support for wildcard
1168 1167 patterns. Now, typing ?a*b will list all names which begin with a
1169 1168 and end in b, for example. The %psearch magic has full
1170 1169 docstrings. Many thanks to JΓΆrgen Stenarson
1171 1170 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1172 1171 implementing this functionality.
1173 1172
1174 1173 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1175 1174
1176 1175 * Manual: fixed long-standing annoyance of double-dashes (as in
1177 1176 --prefix=~, for example) being stripped in the HTML version. This
1178 1177 is a latex2html bug, but a workaround was provided. Many thanks
1179 1178 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1180 1179 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1181 1180 rolling. This seemingly small issue had tripped a number of users
1182 1181 when first installing, so I'm glad to see it gone.
1183 1182
1184 1183 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1185 1184
1186 1185 * IPython/Extensions/numeric_formats.py: fix missing import,
1187 1186 reported by Stephen Walton.
1188 1187
1189 1188 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1190 1189
1191 1190 * IPython/demo.py: finish demo module, fully documented now.
1192 1191
1193 1192 * IPython/genutils.py (file_read): simple little utility to read a
1194 1193 file and ensure it's closed afterwards.
1195 1194
1196 1195 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1197 1196
1198 1197 * IPython/demo.py (Demo.__init__): added support for individually
1199 1198 tagging blocks for automatic execution.
1200 1199
1201 1200 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1202 1201 syntax-highlighted python sources, requested by John.
1203 1202
1204 1203 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1205 1204
1206 1205 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1207 1206 finishing.
1208 1207
1209 1208 * IPython/genutils.py (shlex_split): moved from Magic to here,
1210 1209 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1211 1210
1212 1211 * IPython/demo.py (Demo.__init__): added support for silent
1213 1212 blocks, improved marks as regexps, docstrings written.
1214 1213 (Demo.__init__): better docstring, added support for sys.argv.
1215 1214
1216 1215 * IPython/genutils.py (marquee): little utility used by the demo
1217 1216 code, handy in general.
1218 1217
1219 1218 * IPython/demo.py (Demo.__init__): new class for interactive
1220 1219 demos. Not documented yet, I just wrote it in a hurry for
1221 1220 scipy'05. Will docstring later.
1222 1221
1223 1222 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1224 1223
1225 1224 * IPython/Shell.py (sigint_handler): Drastic simplification which
1226 1225 also seems to make Ctrl-C work correctly across threads! This is
1227 1226 so simple, that I can't beleive I'd missed it before. Needs more
1228 1227 testing, though.
1229 1228 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1230 1229 like this before...
1231 1230
1232 1231 * IPython/genutils.py (get_home_dir): add protection against
1233 1232 non-dirs in win32 registry.
1234 1233
1235 1234 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1236 1235 bug where dict was mutated while iterating (pysh crash).
1237 1236
1238 1237 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1239 1238
1240 1239 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1241 1240 spurious newlines added by this routine. After a report by
1242 1241 F. Mantegazza.
1243 1242
1244 1243 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1245 1244
1246 1245 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1247 1246 calls. These were a leftover from the GTK 1.x days, and can cause
1248 1247 problems in certain cases (after a report by John Hunter).
1249 1248
1250 1249 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1251 1250 os.getcwd() fails at init time. Thanks to patch from David Remahl
1252 1251 <chmod007-AT-mac.com>.
1253 1252 (InteractiveShell.__init__): prevent certain special magics from
1254 1253 being shadowed by aliases. Closes
1255 1254 http://www.scipy.net/roundup/ipython/issue41.
1256 1255
1257 1256 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1258 1257
1259 1258 * IPython/iplib.py (InteractiveShell.complete): Added new
1260 1259 top-level completion method to expose the completion mechanism
1261 1260 beyond readline-based environments.
1262 1261
1263 1262 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1264 1263
1265 1264 * tools/ipsvnc (svnversion): fix svnversion capture.
1266 1265
1267 1266 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1268 1267 attribute to self, which was missing. Before, it was set by a
1269 1268 routine which in certain cases wasn't being called, so the
1270 1269 instance could end up missing the attribute. This caused a crash.
1271 1270 Closes http://www.scipy.net/roundup/ipython/issue40.
1272 1271
1273 1272 2005-08-16 Fernando Perez <fperez@colorado.edu>
1274 1273
1275 1274 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1276 1275 contains non-string attribute. Closes
1277 1276 http://www.scipy.net/roundup/ipython/issue38.
1278 1277
1279 1278 2005-08-14 Fernando Perez <fperez@colorado.edu>
1280 1279
1281 1280 * tools/ipsvnc: Minor improvements, to add changeset info.
1282 1281
1283 1282 2005-08-12 Fernando Perez <fperez@colorado.edu>
1284 1283
1285 1284 * IPython/iplib.py (runsource): remove self.code_to_run_src
1286 1285 attribute. I realized this is nothing more than
1287 1286 '\n'.join(self.buffer), and having the same data in two different
1288 1287 places is just asking for synchronization bugs. This may impact
1289 1288 people who have custom exception handlers, so I need to warn
1290 1289 ipython-dev about it (F. Mantegazza may use them).
1291 1290
1292 1291 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1293 1292
1294 1293 * IPython/genutils.py: fix 2.2 compatibility (generators)
1295 1294
1296 1295 2005-07-18 Fernando Perez <fperez@colorado.edu>
1297 1296
1298 1297 * IPython/genutils.py (get_home_dir): fix to help users with
1299 1298 invalid $HOME under win32.
1300 1299
1301 1300 2005-07-17 Fernando Perez <fperez@colorado.edu>
1302 1301
1303 1302 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1304 1303 some old hacks and clean up a bit other routines; code should be
1305 1304 simpler and a bit faster.
1306 1305
1307 1306 * IPython/iplib.py (interact): removed some last-resort attempts
1308 1307 to survive broken stdout/stderr. That code was only making it
1309 1308 harder to abstract out the i/o (necessary for gui integration),
1310 1309 and the crashes it could prevent were extremely rare in practice
1311 1310 (besides being fully user-induced in a pretty violent manner).
1312 1311
1313 1312 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1314 1313 Nothing major yet, but the code is simpler to read; this should
1315 1314 make it easier to do more serious modifications in the future.
1316 1315
1317 1316 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1318 1317 which broke in .15 (thanks to a report by Ville).
1319 1318
1320 1319 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1321 1320 be quite correct, I know next to nothing about unicode). This
1322 1321 will allow unicode strings to be used in prompts, amongst other
1323 1322 cases. It also will prevent ipython from crashing when unicode
1324 1323 shows up unexpectedly in many places. If ascii encoding fails, we
1325 1324 assume utf_8. Currently the encoding is not a user-visible
1326 1325 setting, though it could be made so if there is demand for it.
1327 1326
1328 1327 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1329 1328
1330 1329 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1331 1330
1332 1331 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1333 1332
1334 1333 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1335 1334 code can work transparently for 2.2/2.3.
1336 1335
1337 1336 2005-07-16 Fernando Perez <fperez@colorado.edu>
1338 1337
1339 1338 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1340 1339 out of the color scheme table used for coloring exception
1341 1340 tracebacks. This allows user code to add new schemes at runtime.
1342 1341 This is a minimally modified version of the patch at
1343 1342 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1344 1343 for the contribution.
1345 1344
1346 1345 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1347 1346 slightly modified version of the patch in
1348 1347 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1349 1348 to remove the previous try/except solution (which was costlier).
1350 1349 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1351 1350
1352 1351 2005-06-08 Fernando Perez <fperez@colorado.edu>
1353 1352
1354 1353 * IPython/iplib.py (write/write_err): Add methods to abstract all
1355 1354 I/O a bit more.
1356 1355
1357 1356 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1358 1357 warning, reported by Aric Hagberg, fix by JD Hunter.
1359 1358
1360 1359 2005-06-02 *** Released version 0.6.15
1361 1360
1362 1361 2005-06-01 Fernando Perez <fperez@colorado.edu>
1363 1362
1364 1363 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1365 1364 tab-completion of filenames within open-quoted strings. Note that
1366 1365 this requires that in ~/.ipython/ipythonrc, users change the
1367 1366 readline delimiters configuration to read:
1368 1367
1369 1368 readline_remove_delims -/~
1370 1369
1371 1370
1372 1371 2005-05-31 *** Released version 0.6.14
1373 1372
1374 1373 2005-05-29 Fernando Perez <fperez@colorado.edu>
1375 1374
1376 1375 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1377 1376 with files not on the filesystem. Reported by Eliyahu Sandler
1378 1377 <eli@gondolin.net>
1379 1378
1380 1379 2005-05-22 Fernando Perez <fperez@colorado.edu>
1381 1380
1382 1381 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1383 1382 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1384 1383
1385 1384 2005-05-19 Fernando Perez <fperez@colorado.edu>
1386 1385
1387 1386 * IPython/iplib.py (safe_execfile): close a file which could be
1388 1387 left open (causing problems in win32, which locks open files).
1389 1388 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1390 1389
1391 1390 2005-05-18 Fernando Perez <fperez@colorado.edu>
1392 1391
1393 1392 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1394 1393 keyword arguments correctly to safe_execfile().
1395 1394
1396 1395 2005-05-13 Fernando Perez <fperez@colorado.edu>
1397 1396
1398 1397 * ipython.1: Added info about Qt to manpage, and threads warning
1399 1398 to usage page (invoked with --help).
1400 1399
1401 1400 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1402 1401 new matcher (it goes at the end of the priority list) to do
1403 1402 tab-completion on named function arguments. Submitted by George
1404 1403 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1405 1404 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1406 1405 for more details.
1407 1406
1408 1407 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1409 1408 SystemExit exceptions in the script being run. Thanks to a report
1410 1409 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1411 1410 producing very annoying behavior when running unit tests.
1412 1411
1413 1412 2005-05-12 Fernando Perez <fperez@colorado.edu>
1414 1413
1415 1414 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1416 1415 which I'd broken (again) due to a changed regexp. In the process,
1417 1416 added ';' as an escape to auto-quote the whole line without
1418 1417 splitting its arguments. Thanks to a report by Jerry McRae
1419 1418 <qrs0xyc02-AT-sneakemail.com>.
1420 1419
1421 1420 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1422 1421 possible crashes caused by a TokenError. Reported by Ed Schofield
1423 1422 <schofield-AT-ftw.at>.
1424 1423
1425 1424 2005-05-06 Fernando Perez <fperez@colorado.edu>
1426 1425
1427 1426 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1428 1427
1429 1428 2005-04-29 Fernando Perez <fperez@colorado.edu>
1430 1429
1431 1430 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1432 1431 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1433 1432 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1434 1433 which provides support for Qt interactive usage (similar to the
1435 1434 existing one for WX and GTK). This had been often requested.
1436 1435
1437 1436 2005-04-14 *** Released version 0.6.13
1438 1437
1439 1438 2005-04-08 Fernando Perez <fperez@colorado.edu>
1440 1439
1441 1440 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1442 1441 from _ofind, which gets called on almost every input line. Now,
1443 1442 we only try to get docstrings if they are actually going to be
1444 1443 used (the overhead of fetching unnecessary docstrings can be
1445 1444 noticeable for certain objects, such as Pyro proxies).
1446 1445
1447 1446 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1448 1447 for completers. For some reason I had been passing them the state
1449 1448 variable, which completers never actually need, and was in
1450 1449 conflict with the rlcompleter API. Custom completers ONLY need to
1451 1450 take the text parameter.
1452 1451
1453 1452 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1454 1453 work correctly in pysh. I've also moved all the logic which used
1455 1454 to be in pysh.py here, which will prevent problems with future
1456 1455 upgrades. However, this time I must warn users to update their
1457 1456 pysh profile to include the line
1458 1457
1459 1458 import_all IPython.Extensions.InterpreterExec
1460 1459
1461 1460 because otherwise things won't work for them. They MUST also
1462 1461 delete pysh.py and the line
1463 1462
1464 1463 execfile pysh.py
1465 1464
1466 1465 from their ipythonrc-pysh.
1467 1466
1468 1467 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1469 1468 robust in the face of objects whose dir() returns non-strings
1470 1469 (which it shouldn't, but some broken libs like ITK do). Thanks to
1471 1470 a patch by John Hunter (implemented differently, though). Also
1472 1471 minor improvements by using .extend instead of + on lists.
1473 1472
1474 1473 * pysh.py:
1475 1474
1476 1475 2005-04-06 Fernando Perez <fperez@colorado.edu>
1477 1476
1478 1477 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1479 1478 by default, so that all users benefit from it. Those who don't
1480 1479 want it can still turn it off.
1481 1480
1482 1481 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1483 1482 config file, I'd forgotten about this, so users were getting it
1484 1483 off by default.
1485 1484
1486 1485 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1487 1486 consistency. Now magics can be called in multiline statements,
1488 1487 and python variables can be expanded in magic calls via $var.
1489 1488 This makes the magic system behave just like aliases or !system
1490 1489 calls.
1491 1490
1492 1491 2005-03-28 Fernando Perez <fperez@colorado.edu>
1493 1492
1494 1493 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1495 1494 expensive string additions for building command. Add support for
1496 1495 trailing ';' when autocall is used.
1497 1496
1498 1497 2005-03-26 Fernando Perez <fperez@colorado.edu>
1499 1498
1500 1499 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1501 1500 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1502 1501 ipython.el robust against prompts with any number of spaces
1503 1502 (including 0) after the ':' character.
1504 1503
1505 1504 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1506 1505 continuation prompt, which misled users to think the line was
1507 1506 already indented. Closes debian Bug#300847, reported to me by
1508 1507 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1509 1508
1510 1509 2005-03-23 Fernando Perez <fperez@colorado.edu>
1511 1510
1512 1511 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1513 1512 properly aligned if they have embedded newlines.
1514 1513
1515 1514 * IPython/iplib.py (runlines): Add a public method to expose
1516 1515 IPython's code execution machinery, so that users can run strings
1517 1516 as if they had been typed at the prompt interactively.
1518 1517 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1519 1518 methods which can call the system shell, but with python variable
1520 1519 expansion. The three such methods are: __IPYTHON__.system,
1521 1520 .getoutput and .getoutputerror. These need to be documented in a
1522 1521 'public API' section (to be written) of the manual.
1523 1522
1524 1523 2005-03-20 Fernando Perez <fperez@colorado.edu>
1525 1524
1526 1525 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1527 1526 for custom exception handling. This is quite powerful, and it
1528 1527 allows for user-installable exception handlers which can trap
1529 1528 custom exceptions at runtime and treat them separately from
1530 1529 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1531 1530 Mantegazza <mantegazza-AT-ill.fr>.
1532 1531 (InteractiveShell.set_custom_completer): public API function to
1533 1532 add new completers at runtime.
1534 1533
1535 1534 2005-03-19 Fernando Perez <fperez@colorado.edu>
1536 1535
1537 1536 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1538 1537 allow objects which provide their docstrings via non-standard
1539 1538 mechanisms (like Pyro proxies) to still be inspected by ipython's
1540 1539 ? system.
1541 1540
1542 1541 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1543 1542 automatic capture system. I tried quite hard to make it work
1544 1543 reliably, and simply failed. I tried many combinations with the
1545 1544 subprocess module, but eventually nothing worked in all needed
1546 1545 cases (not blocking stdin for the child, duplicating stdout
1547 1546 without blocking, etc). The new %sc/%sx still do capture to these
1548 1547 magical list/string objects which make shell use much more
1549 1548 conveninent, so not all is lost.
1550 1549
1551 1550 XXX - FIX MANUAL for the change above!
1552 1551
1553 1552 (runsource): I copied code.py's runsource() into ipython to modify
1554 1553 it a bit. Now the code object and source to be executed are
1555 1554 stored in ipython. This makes this info accessible to third-party
1556 1555 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1557 1556 Mantegazza <mantegazza-AT-ill.fr>.
1558 1557
1559 1558 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1560 1559 history-search via readline (like C-p/C-n). I'd wanted this for a
1561 1560 long time, but only recently found out how to do it. For users
1562 1561 who already have their ipythonrc files made and want this, just
1563 1562 add:
1564 1563
1565 1564 readline_parse_and_bind "\e[A": history-search-backward
1566 1565 readline_parse_and_bind "\e[B": history-search-forward
1567 1566
1568 1567 2005-03-18 Fernando Perez <fperez@colorado.edu>
1569 1568
1570 1569 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1571 1570 LSString and SList classes which allow transparent conversions
1572 1571 between list mode and whitespace-separated string.
1573 1572 (magic_r): Fix recursion problem in %r.
1574 1573
1575 1574 * IPython/genutils.py (LSString): New class to be used for
1576 1575 automatic storage of the results of all alias/system calls in _o
1577 1576 and _e (stdout/err). These provide a .l/.list attribute which
1578 1577 does automatic splitting on newlines. This means that for most
1579 1578 uses, you'll never need to do capturing of output with %sc/%sx
1580 1579 anymore, since ipython keeps this always done for you. Note that
1581 1580 only the LAST results are stored, the _o/e variables are
1582 1581 overwritten on each call. If you need to save their contents
1583 1582 further, simply bind them to any other name.
1584 1583
1585 1584 2005-03-17 Fernando Perez <fperez@colorado.edu>
1586 1585
1587 1586 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1588 1587 prompt namespace handling.
1589 1588
1590 1589 2005-03-16 Fernando Perez <fperez@colorado.edu>
1591 1590
1592 1591 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1593 1592 classic prompts to be '>>> ' (final space was missing, and it
1594 1593 trips the emacs python mode).
1595 1594 (BasePrompt.__str__): Added safe support for dynamic prompt
1596 1595 strings. Now you can set your prompt string to be '$x', and the
1597 1596 value of x will be printed from your interactive namespace. The
1598 1597 interpolation syntax includes the full Itpl support, so
1599 1598 ${foo()+x+bar()} is a valid prompt string now, and the function
1600 1599 calls will be made at runtime.
1601 1600
1602 1601 2005-03-15 Fernando Perez <fperez@colorado.edu>
1603 1602
1604 1603 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1605 1604 avoid name clashes in pylab. %hist still works, it just forwards
1606 1605 the call to %history.
1607 1606
1608 1607 2005-03-02 *** Released version 0.6.12
1609 1608
1610 1609 2005-03-02 Fernando Perez <fperez@colorado.edu>
1611 1610
1612 1611 * IPython/iplib.py (handle_magic): log magic calls properly as
1613 1612 ipmagic() function calls.
1614 1613
1615 1614 * IPython/Magic.py (magic_time): Improved %time to support
1616 1615 statements and provide wall-clock as well as CPU time.
1617 1616
1618 1617 2005-02-27 Fernando Perez <fperez@colorado.edu>
1619 1618
1620 1619 * IPython/hooks.py: New hooks module, to expose user-modifiable
1621 1620 IPython functionality in a clean manner. For now only the editor
1622 1621 hook is actually written, and other thigns which I intend to turn
1623 1622 into proper hooks aren't yet there. The display and prefilter
1624 1623 stuff, for example, should be hooks. But at least now the
1625 1624 framework is in place, and the rest can be moved here with more
1626 1625 time later. IPython had had a .hooks variable for a long time for
1627 1626 this purpose, but I'd never actually used it for anything.
1628 1627
1629 1628 2005-02-26 Fernando Perez <fperez@colorado.edu>
1630 1629
1631 1630 * IPython/ipmaker.py (make_IPython): make the default ipython
1632 1631 directory be called _ipython under win32, to follow more the
1633 1632 naming peculiarities of that platform (where buggy software like
1634 1633 Visual Sourcesafe breaks with .named directories). Reported by
1635 1634 Ville Vainio.
1636 1635
1637 1636 2005-02-23 Fernando Perez <fperez@colorado.edu>
1638 1637
1639 1638 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1640 1639 auto_aliases for win32 which were causing problems. Users can
1641 1640 define the ones they personally like.
1642 1641
1643 1642 2005-02-21 Fernando Perez <fperez@colorado.edu>
1644 1643
1645 1644 * IPython/Magic.py (magic_time): new magic to time execution of
1646 1645 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1647 1646
1648 1647 2005-02-19 Fernando Perez <fperez@colorado.edu>
1649 1648
1650 1649 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1651 1650 into keys (for prompts, for example).
1652 1651
1653 1652 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1654 1653 prompts in case users want them. This introduces a small behavior
1655 1654 change: ipython does not automatically add a space to all prompts
1656 1655 anymore. To get the old prompts with a space, users should add it
1657 1656 manually to their ipythonrc file, so for example prompt_in1 should
1658 1657 now read 'In [\#]: ' instead of 'In [\#]:'.
1659 1658 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1660 1659 file) to control left-padding of secondary prompts.
1661 1660
1662 1661 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1663 1662 the profiler can't be imported. Fix for Debian, which removed
1664 1663 profile.py because of License issues. I applied a slightly
1665 1664 modified version of the original Debian patch at
1666 1665 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1667 1666
1668 1667 2005-02-17 Fernando Perez <fperez@colorado.edu>
1669 1668
1670 1669 * IPython/genutils.py (native_line_ends): Fix bug which would
1671 1670 cause improper line-ends under win32 b/c I was not opening files
1672 1671 in binary mode. Bug report and fix thanks to Ville.
1673 1672
1674 1673 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1675 1674 trying to catch spurious foo[1] autocalls. My fix actually broke
1676 1675 ',/' autoquote/call with explicit escape (bad regexp).
1677 1676
1678 1677 2005-02-15 *** Released version 0.6.11
1679 1678
1680 1679 2005-02-14 Fernando Perez <fperez@colorado.edu>
1681 1680
1682 1681 * IPython/background_jobs.py: New background job management
1683 1682 subsystem. This is implemented via a new set of classes, and
1684 1683 IPython now provides a builtin 'jobs' object for background job
1685 1684 execution. A convenience %bg magic serves as a lightweight
1686 1685 frontend for starting the more common type of calls. This was
1687 1686 inspired by discussions with B. Granger and the BackgroundCommand
1688 1687 class described in the book Python Scripting for Computational
1689 1688 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1690 1689 (although ultimately no code from this text was used, as IPython's
1691 1690 system is a separate implementation).
1692 1691
1693 1692 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1694 1693 to control the completion of single/double underscore names
1695 1694 separately. As documented in the example ipytonrc file, the
1696 1695 readline_omit__names variable can now be set to 2, to omit even
1697 1696 single underscore names. Thanks to a patch by Brian Wong
1698 1697 <BrianWong-AT-AirgoNetworks.Com>.
1699 1698 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1700 1699 be autocalled as foo([1]) if foo were callable. A problem for
1701 1700 things which are both callable and implement __getitem__.
1702 1701 (init_readline): Fix autoindentation for win32. Thanks to a patch
1703 1702 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1704 1703
1705 1704 2005-02-12 Fernando Perez <fperez@colorado.edu>
1706 1705
1707 1706 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1708 1707 which I had written long ago to sort out user error messages which
1709 1708 may occur during startup. This seemed like a good idea initially,
1710 1709 but it has proven a disaster in retrospect. I don't want to
1711 1710 change much code for now, so my fix is to set the internal 'debug'
1712 1711 flag to true everywhere, whose only job was precisely to control
1713 1712 this subsystem. This closes issue 28 (as well as avoiding all
1714 1713 sorts of strange hangups which occur from time to time).
1715 1714
1716 1715 2005-02-07 Fernando Perez <fperez@colorado.edu>
1717 1716
1718 1717 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1719 1718 previous call produced a syntax error.
1720 1719
1721 1720 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1722 1721 classes without constructor.
1723 1722
1724 1723 2005-02-06 Fernando Perez <fperez@colorado.edu>
1725 1724
1726 1725 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1727 1726 completions with the results of each matcher, so we return results
1728 1727 to the user from all namespaces. This breaks with ipython
1729 1728 tradition, but I think it's a nicer behavior. Now you get all
1730 1729 possible completions listed, from all possible namespaces (python,
1731 1730 filesystem, magics...) After a request by John Hunter
1732 1731 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1733 1732
1734 1733 2005-02-05 Fernando Perez <fperez@colorado.edu>
1735 1734
1736 1735 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1737 1736 the call had quote characters in it (the quotes were stripped).
1738 1737
1739 1738 2005-01-31 Fernando Perez <fperez@colorado.edu>
1740 1739
1741 1740 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1742 1741 Itpl.itpl() to make the code more robust against psyco
1743 1742 optimizations.
1744 1743
1745 1744 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1746 1745 of causing an exception. Quicker, cleaner.
1747 1746
1748 1747 2005-01-28 Fernando Perez <fperez@colorado.edu>
1749 1748
1750 1749 * scripts/ipython_win_post_install.py (install): hardcode
1751 1750 sys.prefix+'python.exe' as the executable path. It turns out that
1752 1751 during the post-installation run, sys.executable resolves to the
1753 1752 name of the binary installer! I should report this as a distutils
1754 1753 bug, I think. I updated the .10 release with this tiny fix, to
1755 1754 avoid annoying the lists further.
1756 1755
1757 1756 2005-01-27 *** Released version 0.6.10
1758 1757
1759 1758 2005-01-27 Fernando Perez <fperez@colorado.edu>
1760 1759
1761 1760 * IPython/numutils.py (norm): Added 'inf' as optional name for
1762 1761 L-infinity norm, included references to mathworld.com for vector
1763 1762 norm definitions.
1764 1763 (amin/amax): added amin/amax for array min/max. Similar to what
1765 1764 pylab ships with after the recent reorganization of names.
1766 1765 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1767 1766
1768 1767 * ipython.el: committed Alex's recent fixes and improvements.
1769 1768 Tested with python-mode from CVS, and it looks excellent. Since
1770 1769 python-mode hasn't released anything in a while, I'm temporarily
1771 1770 putting a copy of today's CVS (v 4.70) of python-mode in:
1772 1771 http://ipython.scipy.org/tmp/python-mode.el
1773 1772
1774 1773 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1775 1774 sys.executable for the executable name, instead of assuming it's
1776 1775 called 'python.exe' (the post-installer would have produced broken
1777 1776 setups on systems with a differently named python binary).
1778 1777
1779 1778 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1780 1779 references to os.linesep, to make the code more
1781 1780 platform-independent. This is also part of the win32 coloring
1782 1781 fixes.
1783 1782
1784 1783 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1785 1784 lines, which actually cause coloring bugs because the length of
1786 1785 the line is very difficult to correctly compute with embedded
1787 1786 escapes. This was the source of all the coloring problems under
1788 1787 Win32. I think that _finally_, Win32 users have a properly
1789 1788 working ipython in all respects. This would never have happened
1790 1789 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1791 1790
1792 1791 2005-01-26 *** Released version 0.6.9
1793 1792
1794 1793 2005-01-25 Fernando Perez <fperez@colorado.edu>
1795 1794
1796 1795 * setup.py: finally, we have a true Windows installer, thanks to
1797 1796 the excellent work of Viktor Ransmayr
1798 1797 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1799 1798 Windows users. The setup routine is quite a bit cleaner thanks to
1800 1799 this, and the post-install script uses the proper functions to
1801 1800 allow a clean de-installation using the standard Windows Control
1802 1801 Panel.
1803 1802
1804 1803 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1805 1804 environment variable under all OSes (including win32) if
1806 1805 available. This will give consistency to win32 users who have set
1807 1806 this variable for any reason. If os.environ['HOME'] fails, the
1808 1807 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1809 1808
1810 1809 2005-01-24 Fernando Perez <fperez@colorado.edu>
1811 1810
1812 1811 * IPython/numutils.py (empty_like): add empty_like(), similar to
1813 1812 zeros_like() but taking advantage of the new empty() Numeric routine.
1814 1813
1815 1814 2005-01-23 *** Released version 0.6.8
1816 1815
1817 1816 2005-01-22 Fernando Perez <fperez@colorado.edu>
1818 1817
1819 1818 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1820 1819 automatic show() calls. After discussing things with JDH, it
1821 1820 turns out there are too many corner cases where this can go wrong.
1822 1821 It's best not to try to be 'too smart', and simply have ipython
1823 1822 reproduce as much as possible the default behavior of a normal
1824 1823 python shell.
1825 1824
1826 1825 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1827 1826 line-splitting regexp and _prefilter() to avoid calling getattr()
1828 1827 on assignments. This closes
1829 1828 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1830 1829 readline uses getattr(), so a simple <TAB> keypress is still
1831 1830 enough to trigger getattr() calls on an object.
1832 1831
1833 1832 2005-01-21 Fernando Perez <fperez@colorado.edu>
1834 1833
1835 1834 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1836 1835 docstring under pylab so it doesn't mask the original.
1837 1836
1838 1837 2005-01-21 *** Released version 0.6.7
1839 1838
1840 1839 2005-01-21 Fernando Perez <fperez@colorado.edu>
1841 1840
1842 1841 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1843 1842 signal handling for win32 users in multithreaded mode.
1844 1843
1845 1844 2005-01-17 Fernando Perez <fperez@colorado.edu>
1846 1845
1847 1846 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1848 1847 instances with no __init__. After a crash report by Norbert Nemec
1849 1848 <Norbert-AT-nemec-online.de>.
1850 1849
1851 1850 2005-01-14 Fernando Perez <fperez@colorado.edu>
1852 1851
1853 1852 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1854 1853 names for verbose exceptions, when multiple dotted names and the
1855 1854 'parent' object were present on the same line.
1856 1855
1857 1856 2005-01-11 Fernando Perez <fperez@colorado.edu>
1858 1857
1859 1858 * IPython/genutils.py (flag_calls): new utility to trap and flag
1860 1859 calls in functions. I need it to clean up matplotlib support.
1861 1860 Also removed some deprecated code in genutils.
1862 1861
1863 1862 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1864 1863 that matplotlib scripts called with %run, which don't call show()
1865 1864 themselves, still have their plotting windows open.
1866 1865
1867 1866 2005-01-05 Fernando Perez <fperez@colorado.edu>
1868 1867
1869 1868 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1870 1869 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1871 1870
1872 1871 2004-12-19 Fernando Perez <fperez@colorado.edu>
1873 1872
1874 1873 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1875 1874 parent_runcode, which was an eyesore. The same result can be
1876 1875 obtained with Python's regular superclass mechanisms.
1877 1876
1878 1877 2004-12-17 Fernando Perez <fperez@colorado.edu>
1879 1878
1880 1879 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1881 1880 reported by Prabhu.
1882 1881 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1883 1882 sys.stderr) instead of explicitly calling sys.stderr. This helps
1884 1883 maintain our I/O abstractions clean, for future GUI embeddings.
1885 1884
1886 1885 * IPython/genutils.py (info): added new utility for sys.stderr
1887 1886 unified info message handling (thin wrapper around warn()).
1888 1887
1889 1888 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1890 1889 composite (dotted) names on verbose exceptions.
1891 1890 (VerboseTB.nullrepr): harden against another kind of errors which
1892 1891 Python's inspect module can trigger, and which were crashing
1893 1892 IPython. Thanks to a report by Marco Lombardi
1894 1893 <mlombard-AT-ma010192.hq.eso.org>.
1895 1894
1896 1895 2004-12-13 *** Released version 0.6.6
1897 1896
1898 1897 2004-12-12 Fernando Perez <fperez@colorado.edu>
1899 1898
1900 1899 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1901 1900 generated by pygtk upon initialization if it was built without
1902 1901 threads (for matplotlib users). After a crash reported by
1903 1902 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1904 1903
1905 1904 * IPython/ipmaker.py (make_IPython): fix small bug in the
1906 1905 import_some parameter for multiple imports.
1907 1906
1908 1907 * IPython/iplib.py (ipmagic): simplified the interface of
1909 1908 ipmagic() to take a single string argument, just as it would be
1910 1909 typed at the IPython cmd line.
1911 1910 (ipalias): Added new ipalias() with an interface identical to
1912 1911 ipmagic(). This completes exposing a pure python interface to the
1913 1912 alias and magic system, which can be used in loops or more complex
1914 1913 code where IPython's automatic line mangling is not active.
1915 1914
1916 1915 * IPython/genutils.py (timing): changed interface of timing to
1917 1916 simply run code once, which is the most common case. timings()
1918 1917 remains unchanged, for the cases where you want multiple runs.
1919 1918
1920 1919 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1921 1920 bug where Python2.2 crashes with exec'ing code which does not end
1922 1921 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1923 1922 before.
1924 1923
1925 1924 2004-12-10 Fernando Perez <fperez@colorado.edu>
1926 1925
1927 1926 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1928 1927 -t to -T, to accomodate the new -t flag in %run (the %run and
1929 1928 %prun options are kind of intermixed, and it's not easy to change
1930 1929 this with the limitations of python's getopt).
1931 1930
1932 1931 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1933 1932 the execution of scripts. It's not as fine-tuned as timeit.py,
1934 1933 but it works from inside ipython (and under 2.2, which lacks
1935 1934 timeit.py). Optionally a number of runs > 1 can be given for
1936 1935 timing very short-running code.
1937 1936
1938 1937 * IPython/genutils.py (uniq_stable): new routine which returns a
1939 1938 list of unique elements in any iterable, but in stable order of
1940 1939 appearance. I needed this for the ultraTB fixes, and it's a handy
1941 1940 utility.
1942 1941
1943 1942 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1944 1943 dotted names in Verbose exceptions. This had been broken since
1945 1944 the very start, now x.y will properly be printed in a Verbose
1946 1945 traceback, instead of x being shown and y appearing always as an
1947 1946 'undefined global'. Getting this to work was a bit tricky,
1948 1947 because by default python tokenizers are stateless. Saved by
1949 1948 python's ability to easily add a bit of state to an arbitrary
1950 1949 function (without needing to build a full-blown callable object).
1951 1950
1952 1951 Also big cleanup of this code, which had horrendous runtime
1953 1952 lookups of zillions of attributes for colorization. Moved all
1954 1953 this code into a few templates, which make it cleaner and quicker.
1955 1954
1956 1955 Printout quality was also improved for Verbose exceptions: one
1957 1956 variable per line, and memory addresses are printed (this can be
1958 1957 quite handy in nasty debugging situations, which is what Verbose
1959 1958 is for).
1960 1959
1961 1960 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1962 1961 the command line as scripts to be loaded by embedded instances.
1963 1962 Doing so has the potential for an infinite recursion if there are
1964 1963 exceptions thrown in the process. This fixes a strange crash
1965 1964 reported by Philippe MULLER <muller-AT-irit.fr>.
1966 1965
1967 1966 2004-12-09 Fernando Perez <fperez@colorado.edu>
1968 1967
1969 1968 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1970 1969 to reflect new names in matplotlib, which now expose the
1971 1970 matlab-compatible interface via a pylab module instead of the
1972 1971 'matlab' name. The new code is backwards compatible, so users of
1973 1972 all matplotlib versions are OK. Patch by J. Hunter.
1974 1973
1975 1974 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1976 1975 of __init__ docstrings for instances (class docstrings are already
1977 1976 automatically printed). Instances with customized docstrings
1978 1977 (indep. of the class) are also recognized and all 3 separate
1979 1978 docstrings are printed (instance, class, constructor). After some
1980 1979 comments/suggestions by J. Hunter.
1981 1980
1982 1981 2004-12-05 Fernando Perez <fperez@colorado.edu>
1983 1982
1984 1983 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1985 1984 warnings when tab-completion fails and triggers an exception.
1986 1985
1987 1986 2004-12-03 Fernando Perez <fperez@colorado.edu>
1988 1987
1989 1988 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1990 1989 be triggered when using 'run -p'. An incorrect option flag was
1991 1990 being set ('d' instead of 'D').
1992 1991 (manpage): fix missing escaped \- sign.
1993 1992
1994 1993 2004-11-30 *** Released version 0.6.5
1995 1994
1996 1995 2004-11-30 Fernando Perez <fperez@colorado.edu>
1997 1996
1998 1997 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1999 1998 setting with -d option.
2000 1999
2001 2000 * setup.py (docfiles): Fix problem where the doc glob I was using
2002 2001 was COMPLETELY BROKEN. It was giving the right files by pure
2003 2002 accident, but failed once I tried to include ipython.el. Note:
2004 2003 glob() does NOT allow you to do exclusion on multiple endings!
2005 2004
2006 2005 2004-11-29 Fernando Perez <fperez@colorado.edu>
2007 2006
2008 2007 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2009 2008 the manpage as the source. Better formatting & consistency.
2010 2009
2011 2010 * IPython/Magic.py (magic_run): Added new -d option, to run
2012 2011 scripts under the control of the python pdb debugger. Note that
2013 2012 this required changing the %prun option -d to -D, to avoid a clash
2014 2013 (since %run must pass options to %prun, and getopt is too dumb to
2015 2014 handle options with string values with embedded spaces). Thanks
2016 2015 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2017 2016 (magic_who_ls): added type matching to %who and %whos, so that one
2018 2017 can filter their output to only include variables of certain
2019 2018 types. Another suggestion by Matthew.
2020 2019 (magic_whos): Added memory summaries in kb and Mb for arrays.
2021 2020 (magic_who): Improve formatting (break lines every 9 vars).
2022 2021
2023 2022 2004-11-28 Fernando Perez <fperez@colorado.edu>
2024 2023
2025 2024 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2026 2025 cache when empty lines were present.
2027 2026
2028 2027 2004-11-24 Fernando Perez <fperez@colorado.edu>
2029 2028
2030 2029 * IPython/usage.py (__doc__): document the re-activated threading
2031 2030 options for WX and GTK.
2032 2031
2033 2032 2004-11-23 Fernando Perez <fperez@colorado.edu>
2034 2033
2035 2034 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2036 2035 the -wthread and -gthread options, along with a new -tk one to try
2037 2036 and coordinate Tk threading with wx/gtk. The tk support is very
2038 2037 platform dependent, since it seems to require Tcl and Tk to be
2039 2038 built with threads (Fedora1/2 appears NOT to have it, but in
2040 2039 Prabhu's Debian boxes it works OK). But even with some Tk
2041 2040 limitations, this is a great improvement.
2042 2041
2043 2042 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2044 2043 info in user prompts. Patch by Prabhu.
2045 2044
2046 2045 2004-11-18 Fernando Perez <fperez@colorado.edu>
2047 2046
2048 2047 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2049 2048 EOFErrors and bail, to avoid infinite loops if a non-terminating
2050 2049 file is fed into ipython. Patch submitted in issue 19 by user,
2051 2050 many thanks.
2052 2051
2053 2052 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2054 2053 autoquote/parens in continuation prompts, which can cause lots of
2055 2054 problems. Closes roundup issue 20.
2056 2055
2057 2056 2004-11-17 Fernando Perez <fperez@colorado.edu>
2058 2057
2059 2058 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2060 2059 reported as debian bug #280505. I'm not sure my local changelog
2061 2060 entry has the proper debian format (Jack?).
2062 2061
2063 2062 2004-11-08 *** Released version 0.6.4
2064 2063
2065 2064 2004-11-08 Fernando Perez <fperez@colorado.edu>
2066 2065
2067 2066 * IPython/iplib.py (init_readline): Fix exit message for Windows
2068 2067 when readline is active. Thanks to a report by Eric Jones
2069 2068 <eric-AT-enthought.com>.
2070 2069
2071 2070 2004-11-07 Fernando Perez <fperez@colorado.edu>
2072 2071
2073 2072 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2074 2073 sometimes seen by win2k/cygwin users.
2075 2074
2076 2075 2004-11-06 Fernando Perez <fperez@colorado.edu>
2077 2076
2078 2077 * IPython/iplib.py (interact): Change the handling of %Exit from
2079 2078 trying to propagate a SystemExit to an internal ipython flag.
2080 2079 This is less elegant than using Python's exception mechanism, but
2081 2080 I can't get that to work reliably with threads, so under -pylab
2082 2081 %Exit was hanging IPython. Cross-thread exception handling is
2083 2082 really a bitch. Thaks to a bug report by Stephen Walton
2084 2083 <stephen.walton-AT-csun.edu>.
2085 2084
2086 2085 2004-11-04 Fernando Perez <fperez@colorado.edu>
2087 2086
2088 2087 * IPython/iplib.py (raw_input_original): store a pointer to the
2089 2088 true raw_input to harden against code which can modify it
2090 2089 (wx.py.PyShell does this and would otherwise crash ipython).
2091 2090 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2092 2091
2093 2092 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2094 2093 Ctrl-C problem, which does not mess up the input line.
2095 2094
2096 2095 2004-11-03 Fernando Perez <fperez@colorado.edu>
2097 2096
2098 2097 * IPython/Release.py: Changed licensing to BSD, in all files.
2099 2098 (name): lowercase name for tarball/RPM release.
2100 2099
2101 2100 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2102 2101 use throughout ipython.
2103 2102
2104 2103 * IPython/Magic.py (Magic._ofind): Switch to using the new
2105 2104 OInspect.getdoc() function.
2106 2105
2107 2106 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2108 2107 of the line currently being canceled via Ctrl-C. It's extremely
2109 2108 ugly, but I don't know how to do it better (the problem is one of
2110 2109 handling cross-thread exceptions).
2111 2110
2112 2111 2004-10-28 Fernando Perez <fperez@colorado.edu>
2113 2112
2114 2113 * IPython/Shell.py (signal_handler): add signal handlers to trap
2115 2114 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2116 2115 report by Francesc Alted.
2117 2116
2118 2117 2004-10-21 Fernando Perez <fperez@colorado.edu>
2119 2118
2120 2119 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2121 2120 to % for pysh syntax extensions.
2122 2121
2123 2122 2004-10-09 Fernando Perez <fperez@colorado.edu>
2124 2123
2125 2124 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2126 2125 arrays to print a more useful summary, without calling str(arr).
2127 2126 This avoids the problem of extremely lengthy computations which
2128 2127 occur if arr is large, and appear to the user as a system lockup
2129 2128 with 100% cpu activity. After a suggestion by Kristian Sandberg
2130 2129 <Kristian.Sandberg@colorado.edu>.
2131 2130 (Magic.__init__): fix bug in global magic escapes not being
2132 2131 correctly set.
2133 2132
2134 2133 2004-10-08 Fernando Perez <fperez@colorado.edu>
2135 2134
2136 2135 * IPython/Magic.py (__license__): change to absolute imports of
2137 2136 ipython's own internal packages, to start adapting to the absolute
2138 2137 import requirement of PEP-328.
2139 2138
2140 2139 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2141 2140 files, and standardize author/license marks through the Release
2142 2141 module instead of having per/file stuff (except for files with
2143 2142 particular licenses, like the MIT/PSF-licensed codes).
2144 2143
2145 2144 * IPython/Debugger.py: remove dead code for python 2.1
2146 2145
2147 2146 2004-10-04 Fernando Perez <fperez@colorado.edu>
2148 2147
2149 2148 * IPython/iplib.py (ipmagic): New function for accessing magics
2150 2149 via a normal python function call.
2151 2150
2152 2151 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2153 2152 from '@' to '%', to accomodate the new @decorator syntax of python
2154 2153 2.4.
2155 2154
2156 2155 2004-09-29 Fernando Perez <fperez@colorado.edu>
2157 2156
2158 2157 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2159 2158 matplotlib.use to prevent running scripts which try to switch
2160 2159 interactive backends from within ipython. This will just crash
2161 2160 the python interpreter, so we can't allow it (but a detailed error
2162 2161 is given to the user).
2163 2162
2164 2163 2004-09-28 Fernando Perez <fperez@colorado.edu>
2165 2164
2166 2165 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2167 2166 matplotlib-related fixes so that using @run with non-matplotlib
2168 2167 scripts doesn't pop up spurious plot windows. This requires
2169 2168 matplotlib >= 0.63, where I had to make some changes as well.
2170 2169
2171 2170 * IPython/ipmaker.py (make_IPython): update version requirement to
2172 2171 python 2.2.
2173 2172
2174 2173 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2175 2174 banner arg for embedded customization.
2176 2175
2177 2176 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2178 2177 explicit uses of __IP as the IPython's instance name. Now things
2179 2178 are properly handled via the shell.name value. The actual code
2180 2179 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2181 2180 is much better than before. I'll clean things completely when the
2182 2181 magic stuff gets a real overhaul.
2183 2182
2184 2183 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2185 2184 minor changes to debian dir.
2186 2185
2187 2186 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2188 2187 pointer to the shell itself in the interactive namespace even when
2189 2188 a user-supplied dict is provided. This is needed for embedding
2190 2189 purposes (found by tests with Michel Sanner).
2191 2190
2192 2191 2004-09-27 Fernando Perez <fperez@colorado.edu>
2193 2192
2194 2193 * IPython/UserConfig/ipythonrc: remove []{} from
2195 2194 readline_remove_delims, so that things like [modname.<TAB> do
2196 2195 proper completion. This disables [].TAB, but that's a less common
2197 2196 case than module names in list comprehensions, for example.
2198 2197 Thanks to a report by Andrea Riciputi.
2199 2198
2200 2199 2004-09-09 Fernando Perez <fperez@colorado.edu>
2201 2200
2202 2201 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2203 2202 blocking problems in win32 and osx. Fix by John.
2204 2203
2205 2204 2004-09-08 Fernando Perez <fperez@colorado.edu>
2206 2205
2207 2206 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2208 2207 for Win32 and OSX. Fix by John Hunter.
2209 2208
2210 2209 2004-08-30 *** Released version 0.6.3
2211 2210
2212 2211 2004-08-30 Fernando Perez <fperez@colorado.edu>
2213 2212
2214 2213 * setup.py (isfile): Add manpages to list of dependent files to be
2215 2214 updated.
2216 2215
2217 2216 2004-08-27 Fernando Perez <fperez@colorado.edu>
2218 2217
2219 2218 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2220 2219 for now. They don't really work with standalone WX/GTK code
2221 2220 (though matplotlib IS working fine with both of those backends).
2222 2221 This will neeed much more testing. I disabled most things with
2223 2222 comments, so turning it back on later should be pretty easy.
2224 2223
2225 2224 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2226 2225 autocalling of expressions like r'foo', by modifying the line
2227 2226 split regexp. Closes
2228 2227 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2229 2228 Riley <ipythonbugs-AT-sabi.net>.
2230 2229 (InteractiveShell.mainloop): honor --nobanner with banner
2231 2230 extensions.
2232 2231
2233 2232 * IPython/Shell.py: Significant refactoring of all classes, so
2234 2233 that we can really support ALL matplotlib backends and threading
2235 2234 models (John spotted a bug with Tk which required this). Now we
2236 2235 should support single-threaded, WX-threads and GTK-threads, both
2237 2236 for generic code and for matplotlib.
2238 2237
2239 2238 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2240 2239 -pylab, to simplify things for users. Will also remove the pylab
2241 2240 profile, since now all of matplotlib configuration is directly
2242 2241 handled here. This also reduces startup time.
2243 2242
2244 2243 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2245 2244 shell wasn't being correctly called. Also in IPShellWX.
2246 2245
2247 2246 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2248 2247 fine-tune banner.
2249 2248
2250 2249 * IPython/numutils.py (spike): Deprecate these spike functions,
2251 2250 delete (long deprecated) gnuplot_exec handler.
2252 2251
2253 2252 2004-08-26 Fernando Perez <fperez@colorado.edu>
2254 2253
2255 2254 * ipython.1: Update for threading options, plus some others which
2256 2255 were missing.
2257 2256
2258 2257 * IPython/ipmaker.py (__call__): Added -wthread option for
2259 2258 wxpython thread handling. Make sure threading options are only
2260 2259 valid at the command line.
2261 2260
2262 2261 * scripts/ipython: moved shell selection into a factory function
2263 2262 in Shell.py, to keep the starter script to a minimum.
2264 2263
2265 2264 2004-08-25 Fernando Perez <fperez@colorado.edu>
2266 2265
2267 2266 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2268 2267 John. Along with some recent changes he made to matplotlib, the
2269 2268 next versions of both systems should work very well together.
2270 2269
2271 2270 2004-08-24 Fernando Perez <fperez@colorado.edu>
2272 2271
2273 2272 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2274 2273 tried to switch the profiling to using hotshot, but I'm getting
2275 2274 strange errors from prof.runctx() there. I may be misreading the
2276 2275 docs, but it looks weird. For now the profiling code will
2277 2276 continue to use the standard profiler.
2278 2277
2279 2278 2004-08-23 Fernando Perez <fperez@colorado.edu>
2280 2279
2281 2280 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2282 2281 threaded shell, by John Hunter. It's not quite ready yet, but
2283 2282 close.
2284 2283
2285 2284 2004-08-22 Fernando Perez <fperez@colorado.edu>
2286 2285
2287 2286 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2288 2287 in Magic and ultraTB.
2289 2288
2290 2289 * ipython.1: document threading options in manpage.
2291 2290
2292 2291 * scripts/ipython: Changed name of -thread option to -gthread,
2293 2292 since this is GTK specific. I want to leave the door open for a
2294 2293 -wthread option for WX, which will most likely be necessary. This
2295 2294 change affects usage and ipmaker as well.
2296 2295
2297 2296 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2298 2297 handle the matplotlib shell issues. Code by John Hunter
2299 2298 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2300 2299 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2301 2300 broken (and disabled for end users) for now, but it puts the
2302 2301 infrastructure in place.
2303 2302
2304 2303 2004-08-21 Fernando Perez <fperez@colorado.edu>
2305 2304
2306 2305 * ipythonrc-pylab: Add matplotlib support.
2307 2306
2308 2307 * matplotlib_config.py: new files for matplotlib support, part of
2309 2308 the pylab profile.
2310 2309
2311 2310 * IPython/usage.py (__doc__): documented the threading options.
2312 2311
2313 2312 2004-08-20 Fernando Perez <fperez@colorado.edu>
2314 2313
2315 2314 * ipython: Modified the main calling routine to handle the -thread
2316 2315 and -mpthread options. This needs to be done as a top-level hack,
2317 2316 because it determines which class to instantiate for IPython
2318 2317 itself.
2319 2318
2320 2319 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2321 2320 classes to support multithreaded GTK operation without blocking,
2322 2321 and matplotlib with all backends. This is a lot of still very
2323 2322 experimental code, and threads are tricky. So it may still have a
2324 2323 few rough edges... This code owes a lot to
2325 2324 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2326 2325 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2327 2326 to John Hunter for all the matplotlib work.
2328 2327
2329 2328 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2330 2329 options for gtk thread and matplotlib support.
2331 2330
2332 2331 2004-08-16 Fernando Perez <fperez@colorado.edu>
2333 2332
2334 2333 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2335 2334 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2336 2335 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2337 2336
2338 2337 2004-08-11 Fernando Perez <fperez@colorado.edu>
2339 2338
2340 2339 * setup.py (isfile): Fix build so documentation gets updated for
2341 2340 rpms (it was only done for .tgz builds).
2342 2341
2343 2342 2004-08-10 Fernando Perez <fperez@colorado.edu>
2344 2343
2345 2344 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2346 2345
2347 2346 * iplib.py : Silence syntax error exceptions in tab-completion.
2348 2347
2349 2348 2004-08-05 Fernando Perez <fperez@colorado.edu>
2350 2349
2351 2350 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2352 2351 'color off' mark for continuation prompts. This was causing long
2353 2352 continuation lines to mis-wrap.
2354 2353
2355 2354 2004-08-01 Fernando Perez <fperez@colorado.edu>
2356 2355
2357 2356 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2358 2357 for building ipython to be a parameter. All this is necessary
2359 2358 right now to have a multithreaded version, but this insane
2360 2359 non-design will be cleaned up soon. For now, it's a hack that
2361 2360 works.
2362 2361
2363 2362 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2364 2363 args in various places. No bugs so far, but it's a dangerous
2365 2364 practice.
2366 2365
2367 2366 2004-07-31 Fernando Perez <fperez@colorado.edu>
2368 2367
2369 2368 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2370 2369 fix completion of files with dots in their names under most
2371 2370 profiles (pysh was OK because the completion order is different).
2372 2371
2373 2372 2004-07-27 Fernando Perez <fperez@colorado.edu>
2374 2373
2375 2374 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2376 2375 keywords manually, b/c the one in keyword.py was removed in python
2377 2376 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2378 2377 This is NOT a bug under python 2.3 and earlier.
2379 2378
2380 2379 2004-07-26 Fernando Perez <fperez@colorado.edu>
2381 2380
2382 2381 * IPython/ultraTB.py (VerboseTB.text): Add another
2383 2382 linecache.checkcache() call to try to prevent inspect.py from
2384 2383 crashing under python 2.3. I think this fixes
2385 2384 http://www.scipy.net/roundup/ipython/issue17.
2386 2385
2387 2386 2004-07-26 *** Released version 0.6.2
2388 2387
2389 2388 2004-07-26 Fernando Perez <fperez@colorado.edu>
2390 2389
2391 2390 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2392 2391 fail for any number.
2393 2392 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2394 2393 empty bookmarks.
2395 2394
2396 2395 2004-07-26 *** Released version 0.6.1
2397 2396
2398 2397 2004-07-26 Fernando Perez <fperez@colorado.edu>
2399 2398
2400 2399 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2401 2400
2402 2401 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2403 2402 escaping '()[]{}' in filenames.
2404 2403
2405 2404 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2406 2405 Python 2.2 users who lack a proper shlex.split.
2407 2406
2408 2407 2004-07-19 Fernando Perez <fperez@colorado.edu>
2409 2408
2410 2409 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2411 2410 for reading readline's init file. I follow the normal chain:
2412 2411 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2413 2412 report by Mike Heeter. This closes
2414 2413 http://www.scipy.net/roundup/ipython/issue16.
2415 2414
2416 2415 2004-07-18 Fernando Perez <fperez@colorado.edu>
2417 2416
2418 2417 * IPython/iplib.py (__init__): Add better handling of '\' under
2419 2418 Win32 for filenames. After a patch by Ville.
2420 2419
2421 2420 2004-07-17 Fernando Perez <fperez@colorado.edu>
2422 2421
2423 2422 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2424 2423 autocalling would be triggered for 'foo is bar' if foo is
2425 2424 callable. I also cleaned up the autocall detection code to use a
2426 2425 regexp, which is faster. Bug reported by Alexander Schmolck.
2427 2426
2428 2427 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2429 2428 '?' in them would confuse the help system. Reported by Alex
2430 2429 Schmolck.
2431 2430
2432 2431 2004-07-16 Fernando Perez <fperez@colorado.edu>
2433 2432
2434 2433 * IPython/GnuplotInteractive.py (__all__): added plot2.
2435 2434
2436 2435 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2437 2436 plotting dictionaries, lists or tuples of 1d arrays.
2438 2437
2439 2438 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2440 2439 optimizations.
2441 2440
2442 2441 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2443 2442 the information which was there from Janko's original IPP code:
2444 2443
2445 2444 03.05.99 20:53 porto.ifm.uni-kiel.de
2446 2445 --Started changelog.
2447 2446 --make clear do what it say it does
2448 2447 --added pretty output of lines from inputcache
2449 2448 --Made Logger a mixin class, simplifies handling of switches
2450 2449 --Added own completer class. .string<TAB> expands to last history
2451 2450 line which starts with string. The new expansion is also present
2452 2451 with Ctrl-r from the readline library. But this shows, who this
2453 2452 can be done for other cases.
2454 2453 --Added convention that all shell functions should accept a
2455 2454 parameter_string This opens the door for different behaviour for
2456 2455 each function. @cd is a good example of this.
2457 2456
2458 2457 04.05.99 12:12 porto.ifm.uni-kiel.de
2459 2458 --added logfile rotation
2460 2459 --added new mainloop method which freezes first the namespace
2461 2460
2462 2461 07.05.99 21:24 porto.ifm.uni-kiel.de
2463 2462 --added the docreader classes. Now there is a help system.
2464 2463 -This is only a first try. Currently it's not easy to put new
2465 2464 stuff in the indices. But this is the way to go. Info would be
2466 2465 better, but HTML is every where and not everybody has an info
2467 2466 system installed and it's not so easy to change html-docs to info.
2468 2467 --added global logfile option
2469 2468 --there is now a hook for object inspection method pinfo needs to
2470 2469 be provided for this. Can be reached by two '??'.
2471 2470
2472 2471 08.05.99 20:51 porto.ifm.uni-kiel.de
2473 2472 --added a README
2474 2473 --bug in rc file. Something has changed so functions in the rc
2475 2474 file need to reference the shell and not self. Not clear if it's a
2476 2475 bug or feature.
2477 2476 --changed rc file for new behavior
2478 2477
2479 2478 2004-07-15 Fernando Perez <fperez@colorado.edu>
2480 2479
2481 2480 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2482 2481 cache was falling out of sync in bizarre manners when multi-line
2483 2482 input was present. Minor optimizations and cleanup.
2484 2483
2485 2484 (Logger): Remove old Changelog info for cleanup. This is the
2486 2485 information which was there from Janko's original code:
2487 2486
2488 2487 Changes to Logger: - made the default log filename a parameter
2489 2488
2490 2489 - put a check for lines beginning with !@? in log(). Needed
2491 2490 (even if the handlers properly log their lines) for mid-session
2492 2491 logging activation to work properly. Without this, lines logged
2493 2492 in mid session, which get read from the cache, would end up
2494 2493 'bare' (with !@? in the open) in the log. Now they are caught
2495 2494 and prepended with a #.
2496 2495
2497 2496 * IPython/iplib.py (InteractiveShell.init_readline): added check
2498 2497 in case MagicCompleter fails to be defined, so we don't crash.
2499 2498
2500 2499 2004-07-13 Fernando Perez <fperez@colorado.edu>
2501 2500
2502 2501 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2503 2502 of EPS if the requested filename ends in '.eps'.
2504 2503
2505 2504 2004-07-04 Fernando Perez <fperez@colorado.edu>
2506 2505
2507 2506 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2508 2507 escaping of quotes when calling the shell.
2509 2508
2510 2509 2004-07-02 Fernando Perez <fperez@colorado.edu>
2511 2510
2512 2511 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2513 2512 gettext not working because we were clobbering '_'. Fixes
2514 2513 http://www.scipy.net/roundup/ipython/issue6.
2515 2514
2516 2515 2004-07-01 Fernando Perez <fperez@colorado.edu>
2517 2516
2518 2517 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2519 2518 into @cd. Patch by Ville.
2520 2519
2521 2520 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2522 2521 new function to store things after ipmaker runs. Patch by Ville.
2523 2522 Eventually this will go away once ipmaker is removed and the class
2524 2523 gets cleaned up, but for now it's ok. Key functionality here is
2525 2524 the addition of the persistent storage mechanism, a dict for
2526 2525 keeping data across sessions (for now just bookmarks, but more can
2527 2526 be implemented later).
2528 2527
2529 2528 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2530 2529 persistent across sections. Patch by Ville, I modified it
2531 2530 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2532 2531 added a '-l' option to list all bookmarks.
2533 2532
2534 2533 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2535 2534 center for cleanup. Registered with atexit.register(). I moved
2536 2535 here the old exit_cleanup(). After a patch by Ville.
2537 2536
2538 2537 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2539 2538 characters in the hacked shlex_split for python 2.2.
2540 2539
2541 2540 * IPython/iplib.py (file_matches): more fixes to filenames with
2542 2541 whitespace in them. It's not perfect, but limitations in python's
2543 2542 readline make it impossible to go further.
2544 2543
2545 2544 2004-06-29 Fernando Perez <fperez@colorado.edu>
2546 2545
2547 2546 * IPython/iplib.py (file_matches): escape whitespace correctly in
2548 2547 filename completions. Bug reported by Ville.
2549 2548
2550 2549 2004-06-28 Fernando Perez <fperez@colorado.edu>
2551 2550
2552 2551 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2553 2552 the history file will be called 'history-PROFNAME' (or just
2554 2553 'history' if no profile is loaded). I was getting annoyed at
2555 2554 getting my Numerical work history clobbered by pysh sessions.
2556 2555
2557 2556 * IPython/iplib.py (InteractiveShell.__init__): Internal
2558 2557 getoutputerror() function so that we can honor the system_verbose
2559 2558 flag for _all_ system calls. I also added escaping of #
2560 2559 characters here to avoid confusing Itpl.
2561 2560
2562 2561 * IPython/Magic.py (shlex_split): removed call to shell in
2563 2562 parse_options and replaced it with shlex.split(). The annoying
2564 2563 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2565 2564 to backport it from 2.3, with several frail hacks (the shlex
2566 2565 module is rather limited in 2.2). Thanks to a suggestion by Ville
2567 2566 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2568 2567 problem.
2569 2568
2570 2569 (Magic.magic_system_verbose): new toggle to print the actual
2571 2570 system calls made by ipython. Mainly for debugging purposes.
2572 2571
2573 2572 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2574 2573 doesn't support persistence. Reported (and fix suggested) by
2575 2574 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2576 2575
2577 2576 2004-06-26 Fernando Perez <fperez@colorado.edu>
2578 2577
2579 2578 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2580 2579 continue prompts.
2581 2580
2582 2581 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2583 2582 function (basically a big docstring) and a few more things here to
2584 2583 speedup startup. pysh.py is now very lightweight. We want because
2585 2584 it gets execfile'd, while InterpreterExec gets imported, so
2586 2585 byte-compilation saves time.
2587 2586
2588 2587 2004-06-25 Fernando Perez <fperez@colorado.edu>
2589 2588
2590 2589 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2591 2590 -NUM', which was recently broken.
2592 2591
2593 2592 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2594 2593 in multi-line input (but not !!, which doesn't make sense there).
2595 2594
2596 2595 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2597 2596 It's just too useful, and people can turn it off in the less
2598 2597 common cases where it's a problem.
2599 2598
2600 2599 2004-06-24 Fernando Perez <fperez@colorado.edu>
2601 2600
2602 2601 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2603 2602 special syntaxes (like alias calling) is now allied in multi-line
2604 2603 input. This is still _very_ experimental, but it's necessary for
2605 2604 efficient shell usage combining python looping syntax with system
2606 2605 calls. For now it's restricted to aliases, I don't think it
2607 2606 really even makes sense to have this for magics.
2608 2607
2609 2608 2004-06-23 Fernando Perez <fperez@colorado.edu>
2610 2609
2611 2610 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2612 2611 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2613 2612
2614 2613 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2615 2614 extensions under Windows (after code sent by Gary Bishop). The
2616 2615 extensions considered 'executable' are stored in IPython's rc
2617 2616 structure as win_exec_ext.
2618 2617
2619 2618 * IPython/genutils.py (shell): new function, like system() but
2620 2619 without return value. Very useful for interactive shell work.
2621 2620
2622 2621 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2623 2622 delete aliases.
2624 2623
2625 2624 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2626 2625 sure that the alias table doesn't contain python keywords.
2627 2626
2628 2627 2004-06-21 Fernando Perez <fperez@colorado.edu>
2629 2628
2630 2629 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2631 2630 non-existent items are found in $PATH. Reported by Thorsten.
2632 2631
2633 2632 2004-06-20 Fernando Perez <fperez@colorado.edu>
2634 2633
2635 2634 * IPython/iplib.py (complete): modified the completer so that the
2636 2635 order of priorities can be easily changed at runtime.
2637 2636
2638 2637 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2639 2638 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2640 2639
2641 2640 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2642 2641 expand Python variables prepended with $ in all system calls. The
2643 2642 same was done to InteractiveShell.handle_shell_escape. Now all
2644 2643 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2645 2644 expansion of python variables and expressions according to the
2646 2645 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2647 2646
2648 2647 Though PEP-215 has been rejected, a similar (but simpler) one
2649 2648 seems like it will go into Python 2.4, PEP-292 -
2650 2649 http://www.python.org/peps/pep-0292.html.
2651 2650
2652 2651 I'll keep the full syntax of PEP-215, since IPython has since the
2653 2652 start used Ka-Ping Yee's reference implementation discussed there
2654 2653 (Itpl), and I actually like the powerful semantics it offers.
2655 2654
2656 2655 In order to access normal shell variables, the $ has to be escaped
2657 2656 via an extra $. For example:
2658 2657
2659 2658 In [7]: PATH='a python variable'
2660 2659
2661 2660 In [8]: !echo $PATH
2662 2661 a python variable
2663 2662
2664 2663 In [9]: !echo $$PATH
2665 2664 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2666 2665
2667 2666 (Magic.parse_options): escape $ so the shell doesn't evaluate
2668 2667 things prematurely.
2669 2668
2670 2669 * IPython/iplib.py (InteractiveShell.call_alias): added the
2671 2670 ability for aliases to expand python variables via $.
2672 2671
2673 2672 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2674 2673 system, now there's a @rehash/@rehashx pair of magics. These work
2675 2674 like the csh rehash command, and can be invoked at any time. They
2676 2675 build a table of aliases to everything in the user's $PATH
2677 2676 (@rehash uses everything, @rehashx is slower but only adds
2678 2677 executable files). With this, the pysh.py-based shell profile can
2679 2678 now simply call rehash upon startup, and full access to all
2680 2679 programs in the user's path is obtained.
2681 2680
2682 2681 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2683 2682 functionality is now fully in place. I removed the old dynamic
2684 2683 code generation based approach, in favor of a much lighter one
2685 2684 based on a simple dict. The advantage is that this allows me to
2686 2685 now have thousands of aliases with negligible cost (unthinkable
2687 2686 with the old system).
2688 2687
2689 2688 2004-06-19 Fernando Perez <fperez@colorado.edu>
2690 2689
2691 2690 * IPython/iplib.py (__init__): extended MagicCompleter class to
2692 2691 also complete (last in priority) on user aliases.
2693 2692
2694 2693 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2695 2694 call to eval.
2696 2695 (ItplNS.__init__): Added a new class which functions like Itpl,
2697 2696 but allows configuring the namespace for the evaluation to occur
2698 2697 in.
2699 2698
2700 2699 2004-06-18 Fernando Perez <fperez@colorado.edu>
2701 2700
2702 2701 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2703 2702 better message when 'exit' or 'quit' are typed (a common newbie
2704 2703 confusion).
2705 2704
2706 2705 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2707 2706 check for Windows users.
2708 2707
2709 2708 * IPython/iplib.py (InteractiveShell.user_setup): removed
2710 2709 disabling of colors for Windows. I'll test at runtime and issue a
2711 2710 warning if Gary's readline isn't found, as to nudge users to
2712 2711 download it.
2713 2712
2714 2713 2004-06-16 Fernando Perez <fperez@colorado.edu>
2715 2714
2716 2715 * IPython/genutils.py (Stream.__init__): changed to print errors
2717 2716 to sys.stderr. I had a circular dependency here. Now it's
2718 2717 possible to run ipython as IDLE's shell (consider this pre-alpha,
2719 2718 since true stdout things end up in the starting terminal instead
2720 2719 of IDLE's out).
2721 2720
2722 2721 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2723 2722 users who haven't # updated their prompt_in2 definitions. Remove
2724 2723 eventually.
2725 2724 (multiple_replace): added credit to original ASPN recipe.
2726 2725
2727 2726 2004-06-15 Fernando Perez <fperez@colorado.edu>
2728 2727
2729 2728 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2730 2729 list of auto-defined aliases.
2731 2730
2732 2731 2004-06-13 Fernando Perez <fperez@colorado.edu>
2733 2732
2734 2733 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2735 2734 install was really requested (so setup.py can be used for other
2736 2735 things under Windows).
2737 2736
2738 2737 2004-06-10 Fernando Perez <fperez@colorado.edu>
2739 2738
2740 2739 * IPython/Logger.py (Logger.create_log): Manually remove any old
2741 2740 backup, since os.remove may fail under Windows. Fixes bug
2742 2741 reported by Thorsten.
2743 2742
2744 2743 2004-06-09 Fernando Perez <fperez@colorado.edu>
2745 2744
2746 2745 * examples/example-embed.py: fixed all references to %n (replaced
2747 2746 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2748 2747 for all examples and the manual as well.
2749 2748
2750 2749 2004-06-08 Fernando Perez <fperez@colorado.edu>
2751 2750
2752 2751 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2753 2752 alignment and color management. All 3 prompt subsystems now
2754 2753 inherit from BasePrompt.
2755 2754
2756 2755 * tools/release: updates for windows installer build and tag rpms
2757 2756 with python version (since paths are fixed).
2758 2757
2759 2758 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2760 2759 which will become eventually obsolete. Also fixed the default
2761 2760 prompt_in2 to use \D, so at least new users start with the correct
2762 2761 defaults.
2763 2762 WARNING: Users with existing ipythonrc files will need to apply
2764 2763 this fix manually!
2765 2764
2766 2765 * setup.py: make windows installer (.exe). This is finally the
2767 2766 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2768 2767 which I hadn't included because it required Python 2.3 (or recent
2769 2768 distutils).
2770 2769
2771 2770 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2772 2771 usage of new '\D' escape.
2773 2772
2774 2773 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2775 2774 lacks os.getuid())
2776 2775 (CachedOutput.set_colors): Added the ability to turn coloring
2777 2776 on/off with @colors even for manually defined prompt colors. It
2778 2777 uses a nasty global, but it works safely and via the generic color
2779 2778 handling mechanism.
2780 2779 (Prompt2.__init__): Introduced new escape '\D' for continuation
2781 2780 prompts. It represents the counter ('\#') as dots.
2782 2781 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2783 2782 need to update their ipythonrc files and replace '%n' with '\D' in
2784 2783 their prompt_in2 settings everywhere. Sorry, but there's
2785 2784 otherwise no clean way to get all prompts to properly align. The
2786 2785 ipythonrc shipped with IPython has been updated.
2787 2786
2788 2787 2004-06-07 Fernando Perez <fperez@colorado.edu>
2789 2788
2790 2789 * setup.py (isfile): Pass local_icons option to latex2html, so the
2791 2790 resulting HTML file is self-contained. Thanks to
2792 2791 dryice-AT-liu.com.cn for the tip.
2793 2792
2794 2793 * pysh.py: I created a new profile 'shell', which implements a
2795 2794 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2796 2795 system shell, nor will it become one anytime soon. It's mainly
2797 2796 meant to illustrate the use of the new flexible bash-like prompts.
2798 2797 I guess it could be used by hardy souls for true shell management,
2799 2798 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2800 2799 profile. This uses the InterpreterExec extension provided by
2801 2800 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2802 2801
2803 2802 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2804 2803 auto-align itself with the length of the previous input prompt
2805 2804 (taking into account the invisible color escapes).
2806 2805 (CachedOutput.__init__): Large restructuring of this class. Now
2807 2806 all three prompts (primary1, primary2, output) are proper objects,
2808 2807 managed by the 'parent' CachedOutput class. The code is still a
2809 2808 bit hackish (all prompts share state via a pointer to the cache),
2810 2809 but it's overall far cleaner than before.
2811 2810
2812 2811 * IPython/genutils.py (getoutputerror): modified to add verbose,
2813 2812 debug and header options. This makes the interface of all getout*
2814 2813 functions uniform.
2815 2814 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2816 2815
2817 2816 * IPython/Magic.py (Magic.default_option): added a function to
2818 2817 allow registering default options for any magic command. This
2819 2818 makes it easy to have profiles which customize the magics globally
2820 2819 for a certain use. The values set through this function are
2821 2820 picked up by the parse_options() method, which all magics should
2822 2821 use to parse their options.
2823 2822
2824 2823 * IPython/genutils.py (warn): modified the warnings framework to
2825 2824 use the Term I/O class. I'm trying to slowly unify all of
2826 2825 IPython's I/O operations to pass through Term.
2827 2826
2828 2827 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2829 2828 the secondary prompt to correctly match the length of the primary
2830 2829 one for any prompt. Now multi-line code will properly line up
2831 2830 even for path dependent prompts, such as the new ones available
2832 2831 via the prompt_specials.
2833 2832
2834 2833 2004-06-06 Fernando Perez <fperez@colorado.edu>
2835 2834
2836 2835 * IPython/Prompts.py (prompt_specials): Added the ability to have
2837 2836 bash-like special sequences in the prompts, which get
2838 2837 automatically expanded. Things like hostname, current working
2839 2838 directory and username are implemented already, but it's easy to
2840 2839 add more in the future. Thanks to a patch by W.J. van der Laan
2841 2840 <gnufnork-AT-hetdigitalegat.nl>
2842 2841 (prompt_specials): Added color support for prompt strings, so
2843 2842 users can define arbitrary color setups for their prompts.
2844 2843
2845 2844 2004-06-05 Fernando Perez <fperez@colorado.edu>
2846 2845
2847 2846 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2848 2847 code to load Gary Bishop's readline and configure it
2849 2848 automatically. Thanks to Gary for help on this.
2850 2849
2851 2850 2004-06-01 Fernando Perez <fperez@colorado.edu>
2852 2851
2853 2852 * IPython/Logger.py (Logger.create_log): fix bug for logging
2854 2853 with no filename (previous fix was incomplete).
2855 2854
2856 2855 2004-05-25 Fernando Perez <fperez@colorado.edu>
2857 2856
2858 2857 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2859 2858 parens would get passed to the shell.
2860 2859
2861 2860 2004-05-20 Fernando Perez <fperez@colorado.edu>
2862 2861
2863 2862 * IPython/Magic.py (Magic.magic_prun): changed default profile
2864 2863 sort order to 'time' (the more common profiling need).
2865 2864
2866 2865 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2867 2866 so that source code shown is guaranteed in sync with the file on
2868 2867 disk (also changed in psource). Similar fix to the one for
2869 2868 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2870 2869 <yann.ledu-AT-noos.fr>.
2871 2870
2872 2871 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2873 2872 with a single option would not be correctly parsed. Closes
2874 2873 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2875 2874 introduced in 0.6.0 (on 2004-05-06).
2876 2875
2877 2876 2004-05-13 *** Released version 0.6.0
2878 2877
2879 2878 2004-05-13 Fernando Perez <fperez@colorado.edu>
2880 2879
2881 2880 * debian/: Added debian/ directory to CVS, so that debian support
2882 2881 is publicly accessible. The debian package is maintained by Jack
2883 2882 Moffit <jack-AT-xiph.org>.
2884 2883
2885 2884 * Documentation: included the notes about an ipython-based system
2886 2885 shell (the hypothetical 'pysh') into the new_design.pdf document,
2887 2886 so that these ideas get distributed to users along with the
2888 2887 official documentation.
2889 2888
2890 2889 2004-05-10 Fernando Perez <fperez@colorado.edu>
2891 2890
2892 2891 * IPython/Logger.py (Logger.create_log): fix recently introduced
2893 2892 bug (misindented line) where logstart would fail when not given an
2894 2893 explicit filename.
2895 2894
2896 2895 2004-05-09 Fernando Perez <fperez@colorado.edu>
2897 2896
2898 2897 * IPython/Magic.py (Magic.parse_options): skip system call when
2899 2898 there are no options to look for. Faster, cleaner for the common
2900 2899 case.
2901 2900
2902 2901 * Documentation: many updates to the manual: describing Windows
2903 2902 support better, Gnuplot updates, credits, misc small stuff. Also
2904 2903 updated the new_design doc a bit.
2905 2904
2906 2905 2004-05-06 *** Released version 0.6.0.rc1
2907 2906
2908 2907 2004-05-06 Fernando Perez <fperez@colorado.edu>
2909 2908
2910 2909 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2911 2910 operations to use the vastly more efficient list/''.join() method.
2912 2911 (FormattedTB.text): Fix
2913 2912 http://www.scipy.net/roundup/ipython/issue12 - exception source
2914 2913 extract not updated after reload. Thanks to Mike Salib
2915 2914 <msalib-AT-mit.edu> for pinning the source of the problem.
2916 2915 Fortunately, the solution works inside ipython and doesn't require
2917 2916 any changes to python proper.
2918 2917
2919 2918 * IPython/Magic.py (Magic.parse_options): Improved to process the
2920 2919 argument list as a true shell would (by actually using the
2921 2920 underlying system shell). This way, all @magics automatically get
2922 2921 shell expansion for variables. Thanks to a comment by Alex
2923 2922 Schmolck.
2924 2923
2925 2924 2004-04-04 Fernando Perez <fperez@colorado.edu>
2926 2925
2927 2926 * IPython/iplib.py (InteractiveShell.interact): Added a special
2928 2927 trap for a debugger quit exception, which is basically impossible
2929 2928 to handle by normal mechanisms, given what pdb does to the stack.
2930 2929 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2931 2930
2932 2931 2004-04-03 Fernando Perez <fperez@colorado.edu>
2933 2932
2934 2933 * IPython/genutils.py (Term): Standardized the names of the Term
2935 2934 class streams to cin/cout/cerr, following C++ naming conventions
2936 2935 (I can't use in/out/err because 'in' is not a valid attribute
2937 2936 name).
2938 2937
2939 2938 * IPython/iplib.py (InteractiveShell.interact): don't increment
2940 2939 the prompt if there's no user input. By Daniel 'Dang' Griffith
2941 2940 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2942 2941 Francois Pinard.
2943 2942
2944 2943 2004-04-02 Fernando Perez <fperez@colorado.edu>
2945 2944
2946 2945 * IPython/genutils.py (Stream.__init__): Modified to survive at
2947 2946 least importing in contexts where stdin/out/err aren't true file
2948 2947 objects, such as PyCrust (they lack fileno() and mode). However,
2949 2948 the recovery facilities which rely on these things existing will
2950 2949 not work.
2951 2950
2952 2951 2004-04-01 Fernando Perez <fperez@colorado.edu>
2953 2952
2954 2953 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2955 2954 use the new getoutputerror() function, so it properly
2956 2955 distinguishes stdout/err.
2957 2956
2958 2957 * IPython/genutils.py (getoutputerror): added a function to
2959 2958 capture separately the standard output and error of a command.
2960 2959 After a comment from dang on the mailing lists. This code is
2961 2960 basically a modified version of commands.getstatusoutput(), from
2962 2961 the standard library.
2963 2962
2964 2963 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2965 2964 '!!' as a special syntax (shorthand) to access @sx.
2966 2965
2967 2966 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2968 2967 command and return its output as a list split on '\n'.
2969 2968
2970 2969 2004-03-31 Fernando Perez <fperez@colorado.edu>
2971 2970
2972 2971 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2973 2972 method to dictionaries used as FakeModule instances if they lack
2974 2973 it. At least pydoc in python2.3 breaks for runtime-defined
2975 2974 functions without this hack. At some point I need to _really_
2976 2975 understand what FakeModule is doing, because it's a gross hack.
2977 2976 But it solves Arnd's problem for now...
2978 2977
2979 2978 2004-02-27 Fernando Perez <fperez@colorado.edu>
2980 2979
2981 2980 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2982 2981 mode would behave erratically. Also increased the number of
2983 2982 possible logs in rotate mod to 999. Thanks to Rod Holland
2984 2983 <rhh@StructureLABS.com> for the report and fixes.
2985 2984
2986 2985 2004-02-26 Fernando Perez <fperez@colorado.edu>
2987 2986
2988 2987 * IPython/genutils.py (page): Check that the curses module really
2989 2988 has the initscr attribute before trying to use it. For some
2990 2989 reason, the Solaris curses module is missing this. I think this
2991 2990 should be considered a Solaris python bug, but I'm not sure.
2992 2991
2993 2992 2004-01-17 Fernando Perez <fperez@colorado.edu>
2994 2993
2995 2994 * IPython/genutils.py (Stream.__init__): Changes to try to make
2996 2995 ipython robust against stdin/out/err being closed by the user.
2997 2996 This is 'user error' (and blocks a normal python session, at least
2998 2997 the stdout case). However, Ipython should be able to survive such
2999 2998 instances of abuse as gracefully as possible. To simplify the
3000 2999 coding and maintain compatibility with Gary Bishop's Term
3001 3000 contributions, I've made use of classmethods for this. I think
3002 3001 this introduces a dependency on python 2.2.
3003 3002
3004 3003 2004-01-13 Fernando Perez <fperez@colorado.edu>
3005 3004
3006 3005 * IPython/numutils.py (exp_safe): simplified the code a bit and
3007 3006 removed the need for importing the kinds module altogether.
3008 3007
3009 3008 2004-01-06 Fernando Perez <fperez@colorado.edu>
3010 3009
3011 3010 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3012 3011 a magic function instead, after some community feedback. No
3013 3012 special syntax will exist for it, but its name is deliberately
3014 3013 very short.
3015 3014
3016 3015 2003-12-20 Fernando Perez <fperez@colorado.edu>
3017 3016
3018 3017 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3019 3018 new functionality, to automagically assign the result of a shell
3020 3019 command to a variable. I'll solicit some community feedback on
3021 3020 this before making it permanent.
3022 3021
3023 3022 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3024 3023 requested about callables for which inspect couldn't obtain a
3025 3024 proper argspec. Thanks to a crash report sent by Etienne
3026 3025 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3027 3026
3028 3027 2003-12-09 Fernando Perez <fperez@colorado.edu>
3029 3028
3030 3029 * IPython/genutils.py (page): patch for the pager to work across
3031 3030 various versions of Windows. By Gary Bishop.
3032 3031
3033 3032 2003-12-04 Fernando Perez <fperez@colorado.edu>
3034 3033
3035 3034 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3036 3035 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3037 3036 While I tested this and it looks ok, there may still be corner
3038 3037 cases I've missed.
3039 3038
3040 3039 2003-12-01 Fernando Perez <fperez@colorado.edu>
3041 3040
3042 3041 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3043 3042 where a line like 'p,q=1,2' would fail because the automagic
3044 3043 system would be triggered for @p.
3045 3044
3046 3045 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3047 3046 cleanups, code unmodified.
3048 3047
3049 3048 * IPython/genutils.py (Term): added a class for IPython to handle
3050 3049 output. In most cases it will just be a proxy for stdout/err, but
3051 3050 having this allows modifications to be made for some platforms,
3052 3051 such as handling color escapes under Windows. All of this code
3053 3052 was contributed by Gary Bishop, with minor modifications by me.
3054 3053 The actual changes affect many files.
3055 3054
3056 3055 2003-11-30 Fernando Perez <fperez@colorado.edu>
3057 3056
3058 3057 * IPython/iplib.py (file_matches): new completion code, courtesy
3059 3058 of Jeff Collins. This enables filename completion again under
3060 3059 python 2.3, which disabled it at the C level.
3061 3060
3062 3061 2003-11-11 Fernando Perez <fperez@colorado.edu>
3063 3062
3064 3063 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3065 3064 for Numeric.array(map(...)), but often convenient.
3066 3065
3067 3066 2003-11-05 Fernando Perez <fperez@colorado.edu>
3068 3067
3069 3068 * IPython/numutils.py (frange): Changed a call from int() to
3070 3069 int(round()) to prevent a problem reported with arange() in the
3071 3070 numpy list.
3072 3071
3073 3072 2003-10-06 Fernando Perez <fperez@colorado.edu>
3074 3073
3075 3074 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3076 3075 prevent crashes if sys lacks an argv attribute (it happens with
3077 3076 embedded interpreters which build a bare-bones sys module).
3078 3077 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3079 3078
3080 3079 2003-09-24 Fernando Perez <fperez@colorado.edu>
3081 3080
3082 3081 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3083 3082 to protect against poorly written user objects where __getattr__
3084 3083 raises exceptions other than AttributeError. Thanks to a bug
3085 3084 report by Oliver Sander <osander-AT-gmx.de>.
3086 3085
3087 3086 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3088 3087 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3089 3088
3090 3089 2003-09-09 Fernando Perez <fperez@colorado.edu>
3091 3090
3092 3091 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3093 3092 unpacking a list whith a callable as first element would
3094 3093 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3095 3094 Collins.
3096 3095
3097 3096 2003-08-25 *** Released version 0.5.0
3098 3097
3099 3098 2003-08-22 Fernando Perez <fperez@colorado.edu>
3100 3099
3101 3100 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3102 3101 improperly defined user exceptions. Thanks to feedback from Mark
3103 3102 Russell <mrussell-AT-verio.net>.
3104 3103
3105 3104 2003-08-20 Fernando Perez <fperez@colorado.edu>
3106 3105
3107 3106 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3108 3107 printing so that it would print multi-line string forms starting
3109 3108 with a new line. This way the formatting is better respected for
3110 3109 objects which work hard to make nice string forms.
3111 3110
3112 3111 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3113 3112 autocall would overtake data access for objects with both
3114 3113 __getitem__ and __call__.
3115 3114
3116 3115 2003-08-19 *** Released version 0.5.0-rc1
3117 3116
3118 3117 2003-08-19 Fernando Perez <fperez@colorado.edu>
3119 3118
3120 3119 * IPython/deep_reload.py (load_tail): single tiny change here
3121 3120 seems to fix the long-standing bug of dreload() failing to work
3122 3121 for dotted names. But this module is pretty tricky, so I may have
3123 3122 missed some subtlety. Needs more testing!.
3124 3123
3125 3124 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3126 3125 exceptions which have badly implemented __str__ methods.
3127 3126 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3128 3127 which I've been getting reports about from Python 2.3 users. I
3129 3128 wish I had a simple test case to reproduce the problem, so I could
3130 3129 either write a cleaner workaround or file a bug report if
3131 3130 necessary.
3132 3131
3133 3132 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3134 3133 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3135 3134 a bug report by Tjabo Kloppenburg.
3136 3135
3137 3136 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3138 3137 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3139 3138 seems rather unstable. Thanks to a bug report by Tjabo
3140 3139 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3141 3140
3142 3141 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3143 3142 this out soon because of the critical fixes in the inner loop for
3144 3143 generators.
3145 3144
3146 3145 * IPython/Magic.py (Magic.getargspec): removed. This (and
3147 3146 _get_def) have been obsoleted by OInspect for a long time, I
3148 3147 hadn't noticed that they were dead code.
3149 3148 (Magic._ofind): restored _ofind functionality for a few literals
3150 3149 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3151 3150 for things like "hello".capitalize?, since that would require a
3152 3151 potentially dangerous eval() again.
3153 3152
3154 3153 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3155 3154 logic a bit more to clean up the escapes handling and minimize the
3156 3155 use of _ofind to only necessary cases. The interactive 'feel' of
3157 3156 IPython should have improved quite a bit with the changes in
3158 3157 _prefilter and _ofind (besides being far safer than before).
3159 3158
3160 3159 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3161 3160 obscure, never reported). Edit would fail to find the object to
3162 3161 edit under some circumstances.
3163 3162 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3164 3163 which were causing double-calling of generators. Those eval calls
3165 3164 were _very_ dangerous, since code with side effects could be
3166 3165 triggered. As they say, 'eval is evil'... These were the
3167 3166 nastiest evals in IPython. Besides, _ofind is now far simpler,
3168 3167 and it should also be quite a bit faster. Its use of inspect is
3169 3168 also safer, so perhaps some of the inspect-related crashes I've
3170 3169 seen lately with Python 2.3 might be taken care of. That will
3171 3170 need more testing.
3172 3171
3173 3172 2003-08-17 Fernando Perez <fperez@colorado.edu>
3174 3173
3175 3174 * IPython/iplib.py (InteractiveShell._prefilter): significant
3176 3175 simplifications to the logic for handling user escapes. Faster
3177 3176 and simpler code.
3178 3177
3179 3178 2003-08-14 Fernando Perez <fperez@colorado.edu>
3180 3179
3181 3180 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3182 3181 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3183 3182 but it should be quite a bit faster. And the recursive version
3184 3183 generated O(log N) intermediate storage for all rank>1 arrays,
3185 3184 even if they were contiguous.
3186 3185 (l1norm): Added this function.
3187 3186 (norm): Added this function for arbitrary norms (including
3188 3187 l-infinity). l1 and l2 are still special cases for convenience
3189 3188 and speed.
3190 3189
3191 3190 2003-08-03 Fernando Perez <fperez@colorado.edu>
3192 3191
3193 3192 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3194 3193 exceptions, which now raise PendingDeprecationWarnings in Python
3195 3194 2.3. There were some in Magic and some in Gnuplot2.
3196 3195
3197 3196 2003-06-30 Fernando Perez <fperez@colorado.edu>
3198 3197
3199 3198 * IPython/genutils.py (page): modified to call curses only for
3200 3199 terminals where TERM=='xterm'. After problems under many other
3201 3200 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3202 3201
3203 3202 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3204 3203 would be triggered when readline was absent. This was just an old
3205 3204 debugging statement I'd forgotten to take out.
3206 3205
3207 3206 2003-06-20 Fernando Perez <fperez@colorado.edu>
3208 3207
3209 3208 * IPython/genutils.py (clock): modified to return only user time
3210 3209 (not counting system time), after a discussion on scipy. While
3211 3210 system time may be a useful quantity occasionally, it may much
3212 3211 more easily be skewed by occasional swapping or other similar
3213 3212 activity.
3214 3213
3215 3214 2003-06-05 Fernando Perez <fperez@colorado.edu>
3216 3215
3217 3216 * IPython/numutils.py (identity): new function, for building
3218 3217 arbitrary rank Kronecker deltas (mostly backwards compatible with
3219 3218 Numeric.identity)
3220 3219
3221 3220 2003-06-03 Fernando Perez <fperez@colorado.edu>
3222 3221
3223 3222 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3224 3223 arguments passed to magics with spaces, to allow trailing '\' to
3225 3224 work normally (mainly for Windows users).
3226 3225
3227 3226 2003-05-29 Fernando Perez <fperez@colorado.edu>
3228 3227
3229 3228 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3230 3229 instead of pydoc.help. This fixes a bizarre behavior where
3231 3230 printing '%s' % locals() would trigger the help system. Now
3232 3231 ipython behaves like normal python does.
3233 3232
3234 3233 Note that if one does 'from pydoc import help', the bizarre
3235 3234 behavior returns, but this will also happen in normal python, so
3236 3235 it's not an ipython bug anymore (it has to do with how pydoc.help
3237 3236 is implemented).
3238 3237
3239 3238 2003-05-22 Fernando Perez <fperez@colorado.edu>
3240 3239
3241 3240 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3242 3241 return [] instead of None when nothing matches, also match to end
3243 3242 of line. Patch by Gary Bishop.
3244 3243
3245 3244 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3246 3245 protection as before, for files passed on the command line. This
3247 3246 prevents the CrashHandler from kicking in if user files call into
3248 3247 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3249 3248 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3250 3249
3251 3250 2003-05-20 *** Released version 0.4.0
3252 3251
3253 3252 2003-05-20 Fernando Perez <fperez@colorado.edu>
3254 3253
3255 3254 * setup.py: added support for manpages. It's a bit hackish b/c of
3256 3255 a bug in the way the bdist_rpm distutils target handles gzipped
3257 3256 manpages, but it works. After a patch by Jack.
3258 3257
3259 3258 2003-05-19 Fernando Perez <fperez@colorado.edu>
3260 3259
3261 3260 * IPython/numutils.py: added a mockup of the kinds module, since
3262 3261 it was recently removed from Numeric. This way, numutils will
3263 3262 work for all users even if they are missing kinds.
3264 3263
3265 3264 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3266 3265 failure, which can occur with SWIG-wrapped extensions. After a
3267 3266 crash report from Prabhu.
3268 3267
3269 3268 2003-05-16 Fernando Perez <fperez@colorado.edu>
3270 3269
3271 3270 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3272 3271 protect ipython from user code which may call directly
3273 3272 sys.excepthook (this looks like an ipython crash to the user, even
3274 3273 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3275 3274 This is especially important to help users of WxWindows, but may
3276 3275 also be useful in other cases.
3277 3276
3278 3277 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3279 3278 an optional tb_offset to be specified, and to preserve exception
3280 3279 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3281 3280
3282 3281 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3283 3282
3284 3283 2003-05-15 Fernando Perez <fperez@colorado.edu>
3285 3284
3286 3285 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3287 3286 installing for a new user under Windows.
3288 3287
3289 3288 2003-05-12 Fernando Perez <fperez@colorado.edu>
3290 3289
3291 3290 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3292 3291 handler for Emacs comint-based lines. Currently it doesn't do
3293 3292 much (but importantly, it doesn't update the history cache). In
3294 3293 the future it may be expanded if Alex needs more functionality
3295 3294 there.
3296 3295
3297 3296 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3298 3297 info to crash reports.
3299 3298
3300 3299 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3301 3300 just like Python's -c. Also fixed crash with invalid -color
3302 3301 option value at startup. Thanks to Will French
3303 3302 <wfrench-AT-bestweb.net> for the bug report.
3304 3303
3305 3304 2003-05-09 Fernando Perez <fperez@colorado.edu>
3306 3305
3307 3306 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3308 3307 to EvalDict (it's a mapping, after all) and simplified its code
3309 3308 quite a bit, after a nice discussion on c.l.py where Gustavo
3310 3309 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3311 3310
3312 3311 2003-04-30 Fernando Perez <fperez@colorado.edu>
3313 3312
3314 3313 * IPython/genutils.py (timings_out): modified it to reduce its
3315 3314 overhead in the common reps==1 case.
3316 3315
3317 3316 2003-04-29 Fernando Perez <fperez@colorado.edu>
3318 3317
3319 3318 * IPython/genutils.py (timings_out): Modified to use the resource
3320 3319 module, which avoids the wraparound problems of time.clock().
3321 3320
3322 3321 2003-04-17 *** Released version 0.2.15pre4
3323 3322
3324 3323 2003-04-17 Fernando Perez <fperez@colorado.edu>
3325 3324
3326 3325 * setup.py (scriptfiles): Split windows-specific stuff over to a
3327 3326 separate file, in an attempt to have a Windows GUI installer.
3328 3327 That didn't work, but part of the groundwork is done.
3329 3328
3330 3329 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3331 3330 indent/unindent with 4 spaces. Particularly useful in combination
3332 3331 with the new auto-indent option.
3333 3332
3334 3333 2003-04-16 Fernando Perez <fperez@colorado.edu>
3335 3334
3336 3335 * IPython/Magic.py: various replacements of self.rc for
3337 3336 self.shell.rc. A lot more remains to be done to fully disentangle
3338 3337 this class from the main Shell class.
3339 3338
3340 3339 * IPython/GnuplotRuntime.py: added checks for mouse support so
3341 3340 that we don't try to enable it if the current gnuplot doesn't
3342 3341 really support it. Also added checks so that we don't try to
3343 3342 enable persist under Windows (where Gnuplot doesn't recognize the
3344 3343 option).
3345 3344
3346 3345 * IPython/iplib.py (InteractiveShell.interact): Added optional
3347 3346 auto-indenting code, after a patch by King C. Shu
3348 3347 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3349 3348 get along well with pasting indented code. If I ever figure out
3350 3349 how to make that part go well, it will become on by default.
3351 3350
3352 3351 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3353 3352 crash ipython if there was an unmatched '%' in the user's prompt
3354 3353 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3355 3354
3356 3355 * IPython/iplib.py (InteractiveShell.interact): removed the
3357 3356 ability to ask the user whether he wants to crash or not at the
3358 3357 'last line' exception handler. Calling functions at that point
3359 3358 changes the stack, and the error reports would have incorrect
3360 3359 tracebacks.
3361 3360
3362 3361 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3363 3362 pass through a peger a pretty-printed form of any object. After a
3364 3363 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3365 3364
3366 3365 2003-04-14 Fernando Perez <fperez@colorado.edu>
3367 3366
3368 3367 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3369 3368 all files in ~ would be modified at first install (instead of
3370 3369 ~/.ipython). This could be potentially disastrous, as the
3371 3370 modification (make line-endings native) could damage binary files.
3372 3371
3373 3372 2003-04-10 Fernando Perez <fperez@colorado.edu>
3374 3373
3375 3374 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3376 3375 handle only lines which are invalid python. This now means that
3377 3376 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3378 3377 for the bug report.
3379 3378
3380 3379 2003-04-01 Fernando Perez <fperez@colorado.edu>
3381 3380
3382 3381 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3383 3382 where failing to set sys.last_traceback would crash pdb.pm().
3384 3383 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3385 3384 report.
3386 3385
3387 3386 2003-03-25 Fernando Perez <fperez@colorado.edu>
3388 3387
3389 3388 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3390 3389 before printing it (it had a lot of spurious blank lines at the
3391 3390 end).
3392 3391
3393 3392 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3394 3393 output would be sent 21 times! Obviously people don't use this
3395 3394 too often, or I would have heard about it.
3396 3395
3397 3396 2003-03-24 Fernando Perez <fperez@colorado.edu>
3398 3397
3399 3398 * setup.py (scriptfiles): renamed the data_files parameter from
3400 3399 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3401 3400 for the patch.
3402 3401
3403 3402 2003-03-20 Fernando Perez <fperez@colorado.edu>
3404 3403
3405 3404 * IPython/genutils.py (error): added error() and fatal()
3406 3405 functions.
3407 3406
3408 3407 2003-03-18 *** Released version 0.2.15pre3
3409 3408
3410 3409 2003-03-18 Fernando Perez <fperez@colorado.edu>
3411 3410
3412 3411 * setupext/install_data_ext.py
3413 3412 (install_data_ext.initialize_options): Class contributed by Jack
3414 3413 Moffit for fixing the old distutils hack. He is sending this to
3415 3414 the distutils folks so in the future we may not need it as a
3416 3415 private fix.
3417 3416
3418 3417 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3419 3418 changes for Debian packaging. See his patch for full details.
3420 3419 The old distutils hack of making the ipythonrc* files carry a
3421 3420 bogus .py extension is gone, at last. Examples were moved to a
3422 3421 separate subdir under doc/, and the separate executable scripts
3423 3422 now live in their own directory. Overall a great cleanup. The
3424 3423 manual was updated to use the new files, and setup.py has been
3425 3424 fixed for this setup.
3426 3425
3427 3426 * IPython/PyColorize.py (Parser.usage): made non-executable and
3428 3427 created a pycolor wrapper around it to be included as a script.
3429 3428
3430 3429 2003-03-12 *** Released version 0.2.15pre2
3431 3430
3432 3431 2003-03-12 Fernando Perez <fperez@colorado.edu>
3433 3432
3434 3433 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3435 3434 long-standing problem with garbage characters in some terminals.
3436 3435 The issue was really that the \001 and \002 escapes must _only_ be
3437 3436 passed to input prompts (which call readline), but _never_ to
3438 3437 normal text to be printed on screen. I changed ColorANSI to have
3439 3438 two classes: TermColors and InputTermColors, each with the
3440 3439 appropriate escapes for input prompts or normal text. The code in
3441 3440 Prompts.py got slightly more complicated, but this very old and
3442 3441 annoying bug is finally fixed.
3443 3442
3444 3443 All the credit for nailing down the real origin of this problem
3445 3444 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3446 3445 *Many* thanks to him for spending quite a bit of effort on this.
3447 3446
3448 3447 2003-03-05 *** Released version 0.2.15pre1
3449 3448
3450 3449 2003-03-03 Fernando Perez <fperez@colorado.edu>
3451 3450
3452 3451 * IPython/FakeModule.py: Moved the former _FakeModule to a
3453 3452 separate file, because it's also needed by Magic (to fix a similar
3454 3453 pickle-related issue in @run).
3455 3454
3456 3455 2003-03-02 Fernando Perez <fperez@colorado.edu>
3457 3456
3458 3457 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3459 3458 the autocall option at runtime.
3460 3459 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3461 3460 across Magic.py to start separating Magic from InteractiveShell.
3462 3461 (Magic._ofind): Fixed to return proper namespace for dotted
3463 3462 names. Before, a dotted name would always return 'not currently
3464 3463 defined', because it would find the 'parent'. s.x would be found,
3465 3464 but since 'x' isn't defined by itself, it would get confused.
3466 3465 (Magic.magic_run): Fixed pickling problems reported by Ralf
3467 3466 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3468 3467 that I'd used when Mike Heeter reported similar issues at the
3469 3468 top-level, but now for @run. It boils down to injecting the
3470 3469 namespace where code is being executed with something that looks
3471 3470 enough like a module to fool pickle.dump(). Since a pickle stores
3472 3471 a named reference to the importing module, we need this for
3473 3472 pickles to save something sensible.
3474 3473
3475 3474 * IPython/ipmaker.py (make_IPython): added an autocall option.
3476 3475
3477 3476 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3478 3477 the auto-eval code. Now autocalling is an option, and the code is
3479 3478 also vastly safer. There is no more eval() involved at all.
3480 3479
3481 3480 2003-03-01 Fernando Perez <fperez@colorado.edu>
3482 3481
3483 3482 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3484 3483 dict with named keys instead of a tuple.
3485 3484
3486 3485 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3487 3486
3488 3487 * setup.py (make_shortcut): Fixed message about directories
3489 3488 created during Windows installation (the directories were ok, just
3490 3489 the printed message was misleading). Thanks to Chris Liechti
3491 3490 <cliechti-AT-gmx.net> for the heads up.
3492 3491
3493 3492 2003-02-21 Fernando Perez <fperez@colorado.edu>
3494 3493
3495 3494 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3496 3495 of ValueError exception when checking for auto-execution. This
3497 3496 one is raised by things like Numeric arrays arr.flat when the
3498 3497 array is non-contiguous.
3499 3498
3500 3499 2003-01-31 Fernando Perez <fperez@colorado.edu>
3501 3500
3502 3501 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3503 3502 not return any value at all (even though the command would get
3504 3503 executed).
3505 3504 (xsys): Flush stdout right after printing the command to ensure
3506 3505 proper ordering of commands and command output in the total
3507 3506 output.
3508 3507 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3509 3508 system/getoutput as defaults. The old ones are kept for
3510 3509 compatibility reasons, so no code which uses this library needs
3511 3510 changing.
3512 3511
3513 3512 2003-01-27 *** Released version 0.2.14
3514 3513
3515 3514 2003-01-25 Fernando Perez <fperez@colorado.edu>
3516 3515
3517 3516 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3518 3517 functions defined in previous edit sessions could not be re-edited
3519 3518 (because the temp files were immediately removed). Now temp files
3520 3519 are removed only at IPython's exit.
3521 3520 (Magic.magic_run): Improved @run to perform shell-like expansions
3522 3521 on its arguments (~users and $VARS). With this, @run becomes more
3523 3522 like a normal command-line.
3524 3523
3525 3524 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3526 3525 bugs related to embedding and cleaned up that code. A fairly
3527 3526 important one was the impossibility to access the global namespace
3528 3527 through the embedded IPython (only local variables were visible).
3529 3528
3530 3529 2003-01-14 Fernando Perez <fperez@colorado.edu>
3531 3530
3532 3531 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3533 3532 auto-calling to be a bit more conservative. Now it doesn't get
3534 3533 triggered if any of '!=()<>' are in the rest of the input line, to
3535 3534 allow comparing callables. Thanks to Alex for the heads up.
3536 3535
3537 3536 2003-01-07 Fernando Perez <fperez@colorado.edu>
3538 3537
3539 3538 * IPython/genutils.py (page): fixed estimation of the number of
3540 3539 lines in a string to be paged to simply count newlines. This
3541 3540 prevents over-guessing due to embedded escape sequences. A better
3542 3541 long-term solution would involve stripping out the control chars
3543 3542 for the count, but it's potentially so expensive I just don't
3544 3543 think it's worth doing.
3545 3544
3546 3545 2002-12-19 *** Released version 0.2.14pre50
3547 3546
3548 3547 2002-12-19 Fernando Perez <fperez@colorado.edu>
3549 3548
3550 3549 * tools/release (version): Changed release scripts to inform
3551 3550 Andrea and build a NEWS file with a list of recent changes.
3552 3551
3553 3552 * IPython/ColorANSI.py (__all__): changed terminal detection
3554 3553 code. Seems to work better for xterms without breaking
3555 3554 konsole. Will need more testing to determine if WinXP and Mac OSX
3556 3555 also work ok.
3557 3556
3558 3557 2002-12-18 *** Released version 0.2.14pre49
3559 3558
3560 3559 2002-12-18 Fernando Perez <fperez@colorado.edu>
3561 3560
3562 3561 * Docs: added new info about Mac OSX, from Andrea.
3563 3562
3564 3563 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3565 3564 allow direct plotting of python strings whose format is the same
3566 3565 of gnuplot data files.
3567 3566
3568 3567 2002-12-16 Fernando Perez <fperez@colorado.edu>
3569 3568
3570 3569 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3571 3570 value of exit question to be acknowledged.
3572 3571
3573 3572 2002-12-03 Fernando Perez <fperez@colorado.edu>
3574 3573
3575 3574 * IPython/ipmaker.py: removed generators, which had been added
3576 3575 by mistake in an earlier debugging run. This was causing trouble
3577 3576 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3578 3577 for pointing this out.
3579 3578
3580 3579 2002-11-17 Fernando Perez <fperez@colorado.edu>
3581 3580
3582 3581 * Manual: updated the Gnuplot section.
3583 3582
3584 3583 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3585 3584 a much better split of what goes in Runtime and what goes in
3586 3585 Interactive.
3587 3586
3588 3587 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3589 3588 being imported from iplib.
3590 3589
3591 3590 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3592 3591 for command-passing. Now the global Gnuplot instance is called
3593 3592 'gp' instead of 'g', which was really a far too fragile and
3594 3593 common name.
3595 3594
3596 3595 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3597 3596 bounding boxes generated by Gnuplot for square plots.
3598 3597
3599 3598 * IPython/genutils.py (popkey): new function added. I should
3600 3599 suggest this on c.l.py as a dict method, it seems useful.
3601 3600
3602 3601 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3603 3602 to transparently handle PostScript generation. MUCH better than
3604 3603 the previous plot_eps/replot_eps (which I removed now). The code
3605 3604 is also fairly clean and well documented now (including
3606 3605 docstrings).
3607 3606
3608 3607 2002-11-13 Fernando Perez <fperez@colorado.edu>
3609 3608
3610 3609 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3611 3610 (inconsistent with options).
3612 3611
3613 3612 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3614 3613 manually disabled, I don't know why. Fixed it.
3615 3614 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3616 3615 eps output.
3617 3616
3618 3617 2002-11-12 Fernando Perez <fperez@colorado.edu>
3619 3618
3620 3619 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3621 3620 don't propagate up to caller. Fixes crash reported by François
3622 3621 Pinard.
3623 3622
3624 3623 2002-11-09 Fernando Perez <fperez@colorado.edu>
3625 3624
3626 3625 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3627 3626 history file for new users.
3628 3627 (make_IPython): fixed bug where initial install would leave the
3629 3628 user running in the .ipython dir.
3630 3629 (make_IPython): fixed bug where config dir .ipython would be
3631 3630 created regardless of the given -ipythondir option. Thanks to Cory
3632 3631 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3633 3632
3634 3633 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3635 3634 type confirmations. Will need to use it in all of IPython's code
3636 3635 consistently.
3637 3636
3638 3637 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3639 3638 context to print 31 lines instead of the default 5. This will make
3640 3639 the crash reports extremely detailed in case the problem is in
3641 3640 libraries I don't have access to.
3642 3641
3643 3642 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3644 3643 line of defense' code to still crash, but giving users fair
3645 3644 warning. I don't want internal errors to go unreported: if there's
3646 3645 an internal problem, IPython should crash and generate a full
3647 3646 report.
3648 3647
3649 3648 2002-11-08 Fernando Perez <fperez@colorado.edu>
3650 3649
3651 3650 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3652 3651 otherwise uncaught exceptions which can appear if people set
3653 3652 sys.stdout to something badly broken. Thanks to a crash report
3654 3653 from henni-AT-mail.brainbot.com.
3655 3654
3656 3655 2002-11-04 Fernando Perez <fperez@colorado.edu>
3657 3656
3658 3657 * IPython/iplib.py (InteractiveShell.interact): added
3659 3658 __IPYTHON__active to the builtins. It's a flag which goes on when
3660 3659 the interaction starts and goes off again when it stops. This
3661 3660 allows embedding code to detect being inside IPython. Before this
3662 3661 was done via __IPYTHON__, but that only shows that an IPython
3663 3662 instance has been created.
3664 3663
3665 3664 * IPython/Magic.py (Magic.magic_env): I realized that in a
3666 3665 UserDict, instance.data holds the data as a normal dict. So I
3667 3666 modified @env to return os.environ.data instead of rebuilding a
3668 3667 dict by hand.
3669 3668
3670 3669 2002-11-02 Fernando Perez <fperez@colorado.edu>
3671 3670
3672 3671 * IPython/genutils.py (warn): changed so that level 1 prints no
3673 3672 header. Level 2 is now the default (with 'WARNING' header, as
3674 3673 before). I think I tracked all places where changes were needed in
3675 3674 IPython, but outside code using the old level numbering may have
3676 3675 broken.
3677 3676
3678 3677 * IPython/iplib.py (InteractiveShell.runcode): added this to
3679 3678 handle the tracebacks in SystemExit traps correctly. The previous
3680 3679 code (through interact) was printing more of the stack than
3681 3680 necessary, showing IPython internal code to the user.
3682 3681
3683 3682 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3684 3683 default. Now that the default at the confirmation prompt is yes,
3685 3684 it's not so intrusive. François' argument that ipython sessions
3686 3685 tend to be complex enough not to lose them from an accidental C-d,
3687 3686 is a valid one.
3688 3687
3689 3688 * IPython/iplib.py (InteractiveShell.interact): added a
3690 3689 showtraceback() call to the SystemExit trap, and modified the exit
3691 3690 confirmation to have yes as the default.
3692 3691
3693 3692 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3694 3693 this file. It's been gone from the code for a long time, this was
3695 3694 simply leftover junk.
3696 3695
3697 3696 2002-11-01 Fernando Perez <fperez@colorado.edu>
3698 3697
3699 3698 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3700 3699 added. If set, IPython now traps EOF and asks for
3701 3700 confirmation. After a request by François Pinard.
3702 3701
3703 3702 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3704 3703 of @abort, and with a new (better) mechanism for handling the
3705 3704 exceptions.
3706 3705
3707 3706 2002-10-27 Fernando Perez <fperez@colorado.edu>
3708 3707
3709 3708 * IPython/usage.py (__doc__): updated the --help information and
3710 3709 the ipythonrc file to indicate that -log generates
3711 3710 ./ipython.log. Also fixed the corresponding info in @logstart.
3712 3711 This and several other fixes in the manuals thanks to reports by
3713 3712 François Pinard <pinard-AT-iro.umontreal.ca>.
3714 3713
3715 3714 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3716 3715 refer to @logstart (instead of @log, which doesn't exist).
3717 3716
3718 3717 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3719 3718 AttributeError crash. Thanks to Christopher Armstrong
3720 3719 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3721 3720 introduced recently (in 0.2.14pre37) with the fix to the eval
3722 3721 problem mentioned below.
3723 3722
3724 3723 2002-10-17 Fernando Perez <fperez@colorado.edu>
3725 3724
3726 3725 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3727 3726 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3728 3727
3729 3728 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3730 3729 this function to fix a problem reported by Alex Schmolck. He saw
3731 3730 it with list comprehensions and generators, which were getting
3732 3731 called twice. The real problem was an 'eval' call in testing for
3733 3732 automagic which was evaluating the input line silently.
3734 3733
3735 3734 This is a potentially very nasty bug, if the input has side
3736 3735 effects which must not be repeated. The code is much cleaner now,
3737 3736 without any blanket 'except' left and with a regexp test for
3738 3737 actual function names.
3739 3738
3740 3739 But an eval remains, which I'm not fully comfortable with. I just
3741 3740 don't know how to find out if an expression could be a callable in
3742 3741 the user's namespace without doing an eval on the string. However
3743 3742 that string is now much more strictly checked so that no code
3744 3743 slips by, so the eval should only happen for things that can
3745 3744 really be only function/method names.
3746 3745
3747 3746 2002-10-15 Fernando Perez <fperez@colorado.edu>
3748 3747
3749 3748 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3750 3749 OSX information to main manual, removed README_Mac_OSX file from
3751 3750 distribution. Also updated credits for recent additions.
3752 3751
3753 3752 2002-10-10 Fernando Perez <fperez@colorado.edu>
3754 3753
3755 3754 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3756 3755 terminal-related issues. Many thanks to Andrea Riciputi
3757 3756 <andrea.riciputi-AT-libero.it> for writing it.
3758 3757
3759 3758 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3760 3759 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3761 3760
3762 3761 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3763 3762 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3764 3763 <syver-en-AT-online.no> who both submitted patches for this problem.
3765 3764
3766 3765 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3767 3766 global embedding to make sure that things don't overwrite user
3768 3767 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3769 3768
3770 3769 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3771 3770 compatibility. Thanks to Hayden Callow
3772 3771 <h.callow-AT-elec.canterbury.ac.nz>
3773 3772
3774 3773 2002-10-04 Fernando Perez <fperez@colorado.edu>
3775 3774
3776 3775 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3777 3776 Gnuplot.File objects.
3778 3777
3779 3778 2002-07-23 Fernando Perez <fperez@colorado.edu>
3780 3779
3781 3780 * IPython/genutils.py (timing): Added timings() and timing() for
3782 3781 quick access to the most commonly needed data, the execution
3783 3782 times. Old timing() renamed to timings_out().
3784 3783
3785 3784 2002-07-18 Fernando Perez <fperez@colorado.edu>
3786 3785
3787 3786 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3788 3787 bug with nested instances disrupting the parent's tab completion.
3789 3788
3790 3789 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3791 3790 all_completions code to begin the emacs integration.
3792 3791
3793 3792 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3794 3793 argument to allow titling individual arrays when plotting.
3795 3794
3796 3795 2002-07-15 Fernando Perez <fperez@colorado.edu>
3797 3796
3798 3797 * setup.py (make_shortcut): changed to retrieve the value of
3799 3798 'Program Files' directory from the registry (this value changes in
3800 3799 non-english versions of Windows). Thanks to Thomas Fanslau
3801 3800 <tfanslau-AT-gmx.de> for the report.
3802 3801
3803 3802 2002-07-10 Fernando Perez <fperez@colorado.edu>
3804 3803
3805 3804 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3806 3805 a bug in pdb, which crashes if a line with only whitespace is
3807 3806 entered. Bug report submitted to sourceforge.
3808 3807
3809 3808 2002-07-09 Fernando Perez <fperez@colorado.edu>
3810 3809
3811 3810 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3812 3811 reporting exceptions (it's a bug in inspect.py, I just set a
3813 3812 workaround).
3814 3813
3815 3814 2002-07-08 Fernando Perez <fperez@colorado.edu>
3816 3815
3817 3816 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3818 3817 __IPYTHON__ in __builtins__ to show up in user_ns.
3819 3818
3820 3819 2002-07-03 Fernando Perez <fperez@colorado.edu>
3821 3820
3822 3821 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3823 3822 name from @gp_set_instance to @gp_set_default.
3824 3823
3825 3824 * IPython/ipmaker.py (make_IPython): default editor value set to
3826 3825 '0' (a string), to match the rc file. Otherwise will crash when
3827 3826 .strip() is called on it.
3828 3827
3829 3828
3830 3829 2002-06-28 Fernando Perez <fperez@colorado.edu>
3831 3830
3832 3831 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3833 3832 of files in current directory when a file is executed via
3834 3833 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3835 3834
3836 3835 * setup.py (manfiles): fix for rpm builds, submitted by RA
3837 3836 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3838 3837
3839 3838 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3840 3839 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3841 3840 string!). A. Schmolck caught this one.
3842 3841
3843 3842 2002-06-27 Fernando Perez <fperez@colorado.edu>
3844 3843
3845 3844 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3846 3845 defined files at the cmd line. __name__ wasn't being set to
3847 3846 __main__.
3848 3847
3849 3848 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3850 3849 regular lists and tuples besides Numeric arrays.
3851 3850
3852 3851 * IPython/Prompts.py (CachedOutput.__call__): Added output
3853 3852 supression for input ending with ';'. Similar to Mathematica and
3854 3853 Matlab. The _* vars and Out[] list are still updated, just like
3855 3854 Mathematica behaves.
3856 3855
3857 3856 2002-06-25 Fernando Perez <fperez@colorado.edu>
3858 3857
3859 3858 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3860 3859 .ini extensions for profiels under Windows.
3861 3860
3862 3861 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3863 3862 string form. Fix contributed by Alexander Schmolck
3864 3863 <a.schmolck-AT-gmx.net>
3865 3864
3866 3865 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3867 3866 pre-configured Gnuplot instance.
3868 3867
3869 3868 2002-06-21 Fernando Perez <fperez@colorado.edu>
3870 3869
3871 3870 * IPython/numutils.py (exp_safe): new function, works around the
3872 3871 underflow problems in Numeric.
3873 3872 (log2): New fn. Safe log in base 2: returns exact integer answer
3874 3873 for exact integer powers of 2.
3875 3874
3876 3875 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3877 3876 properly.
3878 3877
3879 3878 2002-06-20 Fernando Perez <fperez@colorado.edu>
3880 3879
3881 3880 * IPython/genutils.py (timing): new function like
3882 3881 Mathematica's. Similar to time_test, but returns more info.
3883 3882
3884 3883 2002-06-18 Fernando Perez <fperez@colorado.edu>
3885 3884
3886 3885 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3887 3886 according to Mike Heeter's suggestions.
3888 3887
3889 3888 2002-06-16 Fernando Perez <fperez@colorado.edu>
3890 3889
3891 3890 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3892 3891 system. GnuplotMagic is gone as a user-directory option. New files
3893 3892 make it easier to use all the gnuplot stuff both from external
3894 3893 programs as well as from IPython. Had to rewrite part of
3895 3894 hardcopy() b/c of a strange bug: often the ps files simply don't
3896 3895 get created, and require a repeat of the command (often several
3897 3896 times).
3898 3897
3899 3898 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3900 3899 resolve output channel at call time, so that if sys.stderr has
3901 3900 been redirected by user this gets honored.
3902 3901
3903 3902 2002-06-13 Fernando Perez <fperez@colorado.edu>
3904 3903
3905 3904 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3906 3905 IPShell. Kept a copy with the old names to avoid breaking people's
3907 3906 embedded code.
3908 3907
3909 3908 * IPython/ipython: simplified it to the bare minimum after
3910 3909 Holger's suggestions. Added info about how to use it in
3911 3910 PYTHONSTARTUP.
3912 3911
3913 3912 * IPython/Shell.py (IPythonShell): changed the options passing
3914 3913 from a string with funky %s replacements to a straight list. Maybe
3915 3914 a bit more typing, but it follows sys.argv conventions, so there's
3916 3915 less special-casing to remember.
3917 3916
3918 3917 2002-06-12 Fernando Perez <fperez@colorado.edu>
3919 3918
3920 3919 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3921 3920 command. Thanks to a suggestion by Mike Heeter.
3922 3921 (Magic.magic_pfile): added behavior to look at filenames if given
3923 3922 arg is not a defined object.
3924 3923 (Magic.magic_save): New @save function to save code snippets. Also
3925 3924 a Mike Heeter idea.
3926 3925
3927 3926 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3928 3927 plot() and replot(). Much more convenient now, especially for
3929 3928 interactive use.
3930 3929
3931 3930 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3932 3931 filenames.
3933 3932
3934 3933 2002-06-02 Fernando Perez <fperez@colorado.edu>
3935 3934
3936 3935 * IPython/Struct.py (Struct.__init__): modified to admit
3937 3936 initialization via another struct.
3938 3937
3939 3938 * IPython/genutils.py (SystemExec.__init__): New stateful
3940 3939 interface to xsys and bq. Useful for writing system scripts.
3941 3940
3942 3941 2002-05-30 Fernando Perez <fperez@colorado.edu>
3943 3942
3944 3943 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3945 3944 documents. This will make the user download smaller (it's getting
3946 3945 too big).
3947 3946
3948 3947 2002-05-29 Fernando Perez <fperez@colorado.edu>
3949 3948
3950 3949 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3951 3950 fix problems with shelve and pickle. Seems to work, but I don't
3952 3951 know if corner cases break it. Thanks to Mike Heeter
3953 3952 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3954 3953
3955 3954 2002-05-24 Fernando Perez <fperez@colorado.edu>
3956 3955
3957 3956 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3958 3957 macros having broken.
3959 3958
3960 3959 2002-05-21 Fernando Perez <fperez@colorado.edu>
3961 3960
3962 3961 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3963 3962 introduced logging bug: all history before logging started was
3964 3963 being written one character per line! This came from the redesign
3965 3964 of the input history as a special list which slices to strings,
3966 3965 not to lists.
3967 3966
3968 3967 2002-05-20 Fernando Perez <fperez@colorado.edu>
3969 3968
3970 3969 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3971 3970 be an attribute of all classes in this module. The design of these
3972 3971 classes needs some serious overhauling.
3973 3972
3974 3973 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3975 3974 which was ignoring '_' in option names.
3976 3975
3977 3976 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3978 3977 'Verbose_novars' to 'Context' and made it the new default. It's a
3979 3978 bit more readable and also safer than verbose.
3980 3979
3981 3980 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3982 3981 triple-quoted strings.
3983 3982
3984 3983 * IPython/OInspect.py (__all__): new module exposing the object
3985 3984 introspection facilities. Now the corresponding magics are dummy
3986 3985 wrappers around this. Having this module will make it much easier
3987 3986 to put these functions into our modified pdb.
3988 3987 This new object inspector system uses the new colorizing module,
3989 3988 so source code and other things are nicely syntax highlighted.
3990 3989
3991 3990 2002-05-18 Fernando Perez <fperez@colorado.edu>
3992 3991
3993 3992 * IPython/ColorANSI.py: Split the coloring tools into a separate
3994 3993 module so I can use them in other code easier (they were part of
3995 3994 ultraTB).
3996 3995
3997 3996 2002-05-17 Fernando Perez <fperez@colorado.edu>
3998 3997
3999 3998 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4000 3999 fixed it to set the global 'g' also to the called instance, as
4001 4000 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4002 4001 user's 'g' variables).
4003 4002
4004 4003 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4005 4004 global variables (aliases to _ih,_oh) so that users which expect
4006 4005 In[5] or Out[7] to work aren't unpleasantly surprised.
4007 4006 (InputList.__getslice__): new class to allow executing slices of
4008 4007 input history directly. Very simple class, complements the use of
4009 4008 macros.
4010 4009
4011 4010 2002-05-16 Fernando Perez <fperez@colorado.edu>
4012 4011
4013 4012 * setup.py (docdirbase): make doc directory be just doc/IPython
4014 4013 without version numbers, it will reduce clutter for users.
4015 4014
4016 4015 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4017 4016 execfile call to prevent possible memory leak. See for details:
4018 4017 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4019 4018
4020 4019 2002-05-15 Fernando Perez <fperez@colorado.edu>
4021 4020
4022 4021 * IPython/Magic.py (Magic.magic_psource): made the object
4023 4022 introspection names be more standard: pdoc, pdef, pfile and
4024 4023 psource. They all print/page their output, and it makes
4025 4024 remembering them easier. Kept old names for compatibility as
4026 4025 aliases.
4027 4026
4028 4027 2002-05-14 Fernando Perez <fperez@colorado.edu>
4029 4028
4030 4029 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4031 4030 what the mouse problem was. The trick is to use gnuplot with temp
4032 4031 files and NOT with pipes (for data communication), because having
4033 4032 both pipes and the mouse on is bad news.
4034 4033
4035 4034 2002-05-13 Fernando Perez <fperez@colorado.edu>
4036 4035
4037 4036 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4038 4037 bug. Information would be reported about builtins even when
4039 4038 user-defined functions overrode them.
4040 4039
4041 4040 2002-05-11 Fernando Perez <fperez@colorado.edu>
4042 4041
4043 4042 * IPython/__init__.py (__all__): removed FlexCompleter from
4044 4043 __all__ so that things don't fail in platforms without readline.
4045 4044
4046 4045 2002-05-10 Fernando Perez <fperez@colorado.edu>
4047 4046
4048 4047 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4049 4048 it requires Numeric, effectively making Numeric a dependency for
4050 4049 IPython.
4051 4050
4052 4051 * Released 0.2.13
4053 4052
4054 4053 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4055 4054 profiler interface. Now all the major options from the profiler
4056 4055 module are directly supported in IPython, both for single
4057 4056 expressions (@prun) and for full programs (@run -p).
4058 4057
4059 4058 2002-05-09 Fernando Perez <fperez@colorado.edu>
4060 4059
4061 4060 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4062 4061 magic properly formatted for screen.
4063 4062
4064 4063 * setup.py (make_shortcut): Changed things to put pdf version in
4065 4064 doc/ instead of doc/manual (had to change lyxport a bit).
4066 4065
4067 4066 * IPython/Magic.py (Profile.string_stats): made profile runs go
4068 4067 through pager (they are long and a pager allows searching, saving,
4069 4068 etc.)
4070 4069
4071 4070 2002-05-08 Fernando Perez <fperez@colorado.edu>
4072 4071
4073 4072 * Released 0.2.12
4074 4073
4075 4074 2002-05-06 Fernando Perez <fperez@colorado.edu>
4076 4075
4077 4076 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4078 4077 introduced); 'hist n1 n2' was broken.
4079 4078 (Magic.magic_pdb): added optional on/off arguments to @pdb
4080 4079 (Magic.magic_run): added option -i to @run, which executes code in
4081 4080 the IPython namespace instead of a clean one. Also added @irun as
4082 4081 an alias to @run -i.
4083 4082
4084 4083 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4085 4084 fixed (it didn't really do anything, the namespaces were wrong).
4086 4085
4087 4086 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4088 4087
4089 4088 * IPython/__init__.py (__all__): Fixed package namespace, now
4090 4089 'import IPython' does give access to IPython.<all> as
4091 4090 expected. Also renamed __release__ to Release.
4092 4091
4093 4092 * IPython/Debugger.py (__license__): created new Pdb class which
4094 4093 functions like a drop-in for the normal pdb.Pdb but does NOT
4095 4094 import readline by default. This way it doesn't muck up IPython's
4096 4095 readline handling, and now tab-completion finally works in the
4097 4096 debugger -- sort of. It completes things globally visible, but the
4098 4097 completer doesn't track the stack as pdb walks it. That's a bit
4099 4098 tricky, and I'll have to implement it later.
4100 4099
4101 4100 2002-05-05 Fernando Perez <fperez@colorado.edu>
4102 4101
4103 4102 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4104 4103 magic docstrings when printed via ? (explicit \'s were being
4105 4104 printed).
4106 4105
4107 4106 * IPython/ipmaker.py (make_IPython): fixed namespace
4108 4107 identification bug. Now variables loaded via logs or command-line
4109 4108 files are recognized in the interactive namespace by @who.
4110 4109
4111 4110 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4112 4111 log replay system stemming from the string form of Structs.
4113 4112
4114 4113 * IPython/Magic.py (Macro.__init__): improved macros to properly
4115 4114 handle magic commands in them.
4116 4115 (Magic.magic_logstart): usernames are now expanded so 'logstart
4117 4116 ~/mylog' now works.
4118 4117
4119 4118 * IPython/iplib.py (complete): fixed bug where paths starting with
4120 4119 '/' would be completed as magic names.
4121 4120
4122 4121 2002-05-04 Fernando Perez <fperez@colorado.edu>
4123 4122
4124 4123 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4125 4124 allow running full programs under the profiler's control.
4126 4125
4127 4126 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4128 4127 mode to report exceptions verbosely but without formatting
4129 4128 variables. This addresses the issue of ipython 'freezing' (it's
4130 4129 not frozen, but caught in an expensive formatting loop) when huge
4131 4130 variables are in the context of an exception.
4132 4131 (VerboseTB.text): Added '--->' markers at line where exception was
4133 4132 triggered. Much clearer to read, especially in NoColor modes.
4134 4133
4135 4134 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4136 4135 implemented in reverse when changing to the new parse_options().
4137 4136
4138 4137 2002-05-03 Fernando Perez <fperez@colorado.edu>
4139 4138
4140 4139 * IPython/Magic.py (Magic.parse_options): new function so that
4141 4140 magics can parse options easier.
4142 4141 (Magic.magic_prun): new function similar to profile.run(),
4143 4142 suggested by Chris Hart.
4144 4143 (Magic.magic_cd): fixed behavior so that it only changes if
4145 4144 directory actually is in history.
4146 4145
4147 4146 * IPython/usage.py (__doc__): added information about potential
4148 4147 slowness of Verbose exception mode when there are huge data
4149 4148 structures to be formatted (thanks to Archie Paulson).
4150 4149
4151 4150 * IPython/ipmaker.py (make_IPython): Changed default logging
4152 4151 (when simply called with -log) to use curr_dir/ipython.log in
4153 4152 rotate mode. Fixed crash which was occuring with -log before
4154 4153 (thanks to Jim Boyle).
4155 4154
4156 4155 2002-05-01 Fernando Perez <fperez@colorado.edu>
4157 4156
4158 4157 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4159 4158 was nasty -- though somewhat of a corner case).
4160 4159
4161 4160 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4162 4161 text (was a bug).
4163 4162
4164 4163 2002-04-30 Fernando Perez <fperez@colorado.edu>
4165 4164
4166 4165 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4167 4166 a print after ^D or ^C from the user so that the In[] prompt
4168 4167 doesn't over-run the gnuplot one.
4169 4168
4170 4169 2002-04-29 Fernando Perez <fperez@colorado.edu>
4171 4170
4172 4171 * Released 0.2.10
4173 4172
4174 4173 * IPython/__release__.py (version): get date dynamically.
4175 4174
4176 4175 * Misc. documentation updates thanks to Arnd's comments. Also ran
4177 4176 a full spellcheck on the manual (hadn't been done in a while).
4178 4177
4179 4178 2002-04-27 Fernando Perez <fperez@colorado.edu>
4180 4179
4181 4180 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4182 4181 starting a log in mid-session would reset the input history list.
4183 4182
4184 4183 2002-04-26 Fernando Perez <fperez@colorado.edu>
4185 4184
4186 4185 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4187 4186 all files were being included in an update. Now anything in
4188 4187 UserConfig that matches [A-Za-z]*.py will go (this excludes
4189 4188 __init__.py)
4190 4189
4191 4190 2002-04-25 Fernando Perez <fperez@colorado.edu>
4192 4191
4193 4192 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4194 4193 to __builtins__ so that any form of embedded or imported code can
4195 4194 test for being inside IPython.
4196 4195
4197 4196 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4198 4197 changed to GnuplotMagic because it's now an importable module,
4199 4198 this makes the name follow that of the standard Gnuplot module.
4200 4199 GnuplotMagic can now be loaded at any time in mid-session.
4201 4200
4202 4201 2002-04-24 Fernando Perez <fperez@colorado.edu>
4203 4202
4204 4203 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4205 4204 the globals (IPython has its own namespace) and the
4206 4205 PhysicalQuantity stuff is much better anyway.
4207 4206
4208 4207 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4209 4208 embedding example to standard user directory for
4210 4209 distribution. Also put it in the manual.
4211 4210
4212 4211 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4213 4212 instance as first argument (so it doesn't rely on some obscure
4214 4213 hidden global).
4215 4214
4216 4215 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4217 4216 delimiters. While it prevents ().TAB from working, it allows
4218 4217 completions in open (... expressions. This is by far a more common
4219 4218 case.
4220 4219
4221 4220 2002-04-23 Fernando Perez <fperez@colorado.edu>
4222 4221
4223 4222 * IPython/Extensions/InterpreterPasteInput.py: new
4224 4223 syntax-processing module for pasting lines with >>> or ... at the
4225 4224 start.
4226 4225
4227 4226 * IPython/Extensions/PhysicalQ_Interactive.py
4228 4227 (PhysicalQuantityInteractive.__int__): fixed to work with either
4229 4228 Numeric or math.
4230 4229
4231 4230 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4232 4231 provided profiles. Now we have:
4233 4232 -math -> math module as * and cmath with its own namespace.
4234 4233 -numeric -> Numeric as *, plus gnuplot & grace
4235 4234 -physics -> same as before
4236 4235
4237 4236 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4238 4237 user-defined magics wouldn't be found by @magic if they were
4239 4238 defined as class methods. Also cleaned up the namespace search
4240 4239 logic and the string building (to use %s instead of many repeated
4241 4240 string adds).
4242 4241
4243 4242 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4244 4243 of user-defined magics to operate with class methods (cleaner, in
4245 4244 line with the gnuplot code).
4246 4245
4247 4246 2002-04-22 Fernando Perez <fperez@colorado.edu>
4248 4247
4249 4248 * setup.py: updated dependency list so that manual is updated when
4250 4249 all included files change.
4251 4250
4252 4251 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4253 4252 the delimiter removal option (the fix is ugly right now).
4254 4253
4255 4254 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4256 4255 all of the math profile (quicker loading, no conflict between
4257 4256 g-9.8 and g-gnuplot).
4258 4257
4259 4258 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4260 4259 name of post-mortem files to IPython_crash_report.txt.
4261 4260
4262 4261 * Cleanup/update of the docs. Added all the new readline info and
4263 4262 formatted all lists as 'real lists'.
4264 4263
4265 4264 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4266 4265 tab-completion options, since the full readline parse_and_bind is
4267 4266 now accessible.
4268 4267
4269 4268 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4270 4269 handling of readline options. Now users can specify any string to
4271 4270 be passed to parse_and_bind(), as well as the delimiters to be
4272 4271 removed.
4273 4272 (InteractiveShell.__init__): Added __name__ to the global
4274 4273 namespace so that things like Itpl which rely on its existence
4275 4274 don't crash.
4276 4275 (InteractiveShell._prefilter): Defined the default with a _ so
4277 4276 that prefilter() is easier to override, while the default one
4278 4277 remains available.
4279 4278
4280 4279 2002-04-18 Fernando Perez <fperez@colorado.edu>
4281 4280
4282 4281 * Added information about pdb in the docs.
4283 4282
4284 4283 2002-04-17 Fernando Perez <fperez@colorado.edu>
4285 4284
4286 4285 * IPython/ipmaker.py (make_IPython): added rc_override option to
4287 4286 allow passing config options at creation time which may override
4288 4287 anything set in the config files or command line. This is
4289 4288 particularly useful for configuring embedded instances.
4290 4289
4291 4290 2002-04-15 Fernando Perez <fperez@colorado.edu>
4292 4291
4293 4292 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4294 4293 crash embedded instances because of the input cache falling out of
4295 4294 sync with the output counter.
4296 4295
4297 4296 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4298 4297 mode which calls pdb after an uncaught exception in IPython itself.
4299 4298
4300 4299 2002-04-14 Fernando Perez <fperez@colorado.edu>
4301 4300
4302 4301 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4303 4302 readline, fix it back after each call.
4304 4303
4305 4304 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4306 4305 method to force all access via __call__(), which guarantees that
4307 4306 traceback references are properly deleted.
4308 4307
4309 4308 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4310 4309 improve printing when pprint is in use.
4311 4310
4312 4311 2002-04-13 Fernando Perez <fperez@colorado.edu>
4313 4312
4314 4313 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4315 4314 exceptions aren't caught anymore. If the user triggers one, he
4316 4315 should know why he's doing it and it should go all the way up,
4317 4316 just like any other exception. So now @abort will fully kill the
4318 4317 embedded interpreter and the embedding code (unless that happens
4319 4318 to catch SystemExit).
4320 4319
4321 4320 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4322 4321 and a debugger() method to invoke the interactive pdb debugger
4323 4322 after printing exception information. Also added the corresponding
4324 4323 -pdb option and @pdb magic to control this feature, and updated
4325 4324 the docs. After a suggestion from Christopher Hart
4326 4325 (hart-AT-caltech.edu).
4327 4326
4328 4327 2002-04-12 Fernando Perez <fperez@colorado.edu>
4329 4328
4330 4329 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4331 4330 the exception handlers defined by the user (not the CrashHandler)
4332 4331 so that user exceptions don't trigger an ipython bug report.
4333 4332
4334 4333 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4335 4334 configurable (it should have always been so).
4336 4335
4337 4336 2002-03-26 Fernando Perez <fperez@colorado.edu>
4338 4337
4339 4338 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4340 4339 and there to fix embedding namespace issues. This should all be
4341 4340 done in a more elegant way.
4342 4341
4343 4342 2002-03-25 Fernando Perez <fperez@colorado.edu>
4344 4343
4345 4344 * IPython/genutils.py (get_home_dir): Try to make it work under
4346 4345 win9x also.
4347 4346
4348 4347 2002-03-20 Fernando Perez <fperez@colorado.edu>
4349 4348
4350 4349 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4351 4350 sys.displayhook untouched upon __init__.
4352 4351
4353 4352 2002-03-19 Fernando Perez <fperez@colorado.edu>
4354 4353
4355 4354 * Released 0.2.9 (for embedding bug, basically).
4356 4355
4357 4356 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4358 4357 exceptions so that enclosing shell's state can be restored.
4359 4358
4360 4359 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4361 4360 naming conventions in the .ipython/ dir.
4362 4361
4363 4362 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4364 4363 from delimiters list so filenames with - in them get expanded.
4365 4364
4366 4365 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4367 4366 sys.displayhook not being properly restored after an embedded call.
4368 4367
4369 4368 2002-03-18 Fernando Perez <fperez@colorado.edu>
4370 4369
4371 4370 * Released 0.2.8
4372 4371
4373 4372 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4374 4373 some files weren't being included in a -upgrade.
4375 4374 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4376 4375 on' so that the first tab completes.
4377 4376 (InteractiveShell.handle_magic): fixed bug with spaces around
4378 4377 quotes breaking many magic commands.
4379 4378
4380 4379 * setup.py: added note about ignoring the syntax error messages at
4381 4380 installation.
4382 4381
4383 4382 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4384 4383 streamlining the gnuplot interface, now there's only one magic @gp.
4385 4384
4386 4385 2002-03-17 Fernando Perez <fperez@colorado.edu>
4387 4386
4388 4387 * IPython/UserConfig/magic_gnuplot.py: new name for the
4389 4388 example-magic_pm.py file. Much enhanced system, now with a shell
4390 4389 for communicating directly with gnuplot, one command at a time.
4391 4390
4392 4391 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4393 4392 setting __name__=='__main__'.
4394 4393
4395 4394 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4396 4395 mini-shell for accessing gnuplot from inside ipython. Should
4397 4396 extend it later for grace access too. Inspired by Arnd's
4398 4397 suggestion.
4399 4398
4400 4399 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4401 4400 calling magic functions with () in their arguments. Thanks to Arnd
4402 4401 Baecker for pointing this to me.
4403 4402
4404 4403 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4405 4404 infinitely for integer or complex arrays (only worked with floats).
4406 4405
4407 4406 2002-03-16 Fernando Perez <fperez@colorado.edu>
4408 4407
4409 4408 * setup.py: Merged setup and setup_windows into a single script
4410 4409 which properly handles things for windows users.
4411 4410
4412 4411 2002-03-15 Fernando Perez <fperez@colorado.edu>
4413 4412
4414 4413 * Big change to the manual: now the magics are all automatically
4415 4414 documented. This information is generated from their docstrings
4416 4415 and put in a latex file included by the manual lyx file. This way
4417 4416 we get always up to date information for the magics. The manual
4418 4417 now also has proper version information, also auto-synced.
4419 4418
4420 4419 For this to work, an undocumented --magic_docstrings option was added.
4421 4420
4422 4421 2002-03-13 Fernando Perez <fperez@colorado.edu>
4423 4422
4424 4423 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4425 4424 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4426 4425
4427 4426 2002-03-12 Fernando Perez <fperez@colorado.edu>
4428 4427
4429 4428 * IPython/ultraTB.py (TermColors): changed color escapes again to
4430 4429 fix the (old, reintroduced) line-wrapping bug. Basically, if
4431 4430 \001..\002 aren't given in the color escapes, lines get wrapped
4432 4431 weirdly. But giving those screws up old xterms and emacs terms. So
4433 4432 I added some logic for emacs terms to be ok, but I can't identify old
4434 4433 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4435 4434
4436 4435 2002-03-10 Fernando Perez <fperez@colorado.edu>
4437 4436
4438 4437 * IPython/usage.py (__doc__): Various documentation cleanups and
4439 4438 updates, both in usage docstrings and in the manual.
4440 4439
4441 4440 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4442 4441 handling of caching. Set minimum acceptabe value for having a
4443 4442 cache at 20 values.
4444 4443
4445 4444 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4446 4445 install_first_time function to a method, renamed it and added an
4447 4446 'upgrade' mode. Now people can update their config directory with
4448 4447 a simple command line switch (-upgrade, also new).
4449 4448
4450 4449 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4451 4450 @file (convenient for automagic users under Python >= 2.2).
4452 4451 Removed @files (it seemed more like a plural than an abbrev. of
4453 4452 'file show').
4454 4453
4455 4454 * IPython/iplib.py (install_first_time): Fixed crash if there were
4456 4455 backup files ('~') in .ipython/ install directory.
4457 4456
4458 4457 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4459 4458 system. Things look fine, but these changes are fairly
4460 4459 intrusive. Test them for a few days.
4461 4460
4462 4461 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4463 4462 the prompts system. Now all in/out prompt strings are user
4464 4463 controllable. This is particularly useful for embedding, as one
4465 4464 can tag embedded instances with particular prompts.
4466 4465
4467 4466 Also removed global use of sys.ps1/2, which now allows nested
4468 4467 embeddings without any problems. Added command-line options for
4469 4468 the prompt strings.
4470 4469
4471 4470 2002-03-08 Fernando Perez <fperez@colorado.edu>
4472 4471
4473 4472 * IPython/UserConfig/example-embed-short.py (ipshell): added
4474 4473 example file with the bare minimum code for embedding.
4475 4474
4476 4475 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4477 4476 functionality for the embeddable shell to be activated/deactivated
4478 4477 either globally or at each call.
4479 4478
4480 4479 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4481 4480 rewriting the prompt with '--->' for auto-inputs with proper
4482 4481 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4483 4482 this is handled by the prompts class itself, as it should.
4484 4483
4485 4484 2002-03-05 Fernando Perez <fperez@colorado.edu>
4486 4485
4487 4486 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4488 4487 @logstart to avoid name clashes with the math log function.
4489 4488
4490 4489 * Big updates to X/Emacs section of the manual.
4491 4490
4492 4491 * Removed ipython_emacs. Milan explained to me how to pass
4493 4492 arguments to ipython through Emacs. Some day I'm going to end up
4494 4493 learning some lisp...
4495 4494
4496 4495 2002-03-04 Fernando Perez <fperez@colorado.edu>
4497 4496
4498 4497 * IPython/ipython_emacs: Created script to be used as the
4499 4498 py-python-command Emacs variable so we can pass IPython
4500 4499 parameters. I can't figure out how to tell Emacs directly to pass
4501 4500 parameters to IPython, so a dummy shell script will do it.
4502 4501
4503 4502 Other enhancements made for things to work better under Emacs'
4504 4503 various types of terminals. Many thanks to Milan Zamazal
4505 4504 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4506 4505
4507 4506 2002-03-01 Fernando Perez <fperez@colorado.edu>
4508 4507
4509 4508 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4510 4509 that loading of readline is now optional. This gives better
4511 4510 control to emacs users.
4512 4511
4513 4512 * IPython/ultraTB.py (__date__): Modified color escape sequences
4514 4513 and now things work fine under xterm and in Emacs' term buffers
4515 4514 (though not shell ones). Well, in emacs you get colors, but all
4516 4515 seem to be 'light' colors (no difference between dark and light
4517 4516 ones). But the garbage chars are gone, and also in xterms. It
4518 4517 seems that now I'm using 'cleaner' ansi sequences.
4519 4518
4520 4519 2002-02-21 Fernando Perez <fperez@colorado.edu>
4521 4520
4522 4521 * Released 0.2.7 (mainly to publish the scoping fix).
4523 4522
4524 4523 * IPython/Logger.py (Logger.logstate): added. A corresponding
4525 4524 @logstate magic was created.
4526 4525
4527 4526 * IPython/Magic.py: fixed nested scoping problem under Python
4528 4527 2.1.x (automagic wasn't working).
4529 4528
4530 4529 2002-02-20 Fernando Perez <fperez@colorado.edu>
4531 4530
4532 4531 * Released 0.2.6.
4533 4532
4534 4533 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4535 4534 option so that logs can come out without any headers at all.
4536 4535
4537 4536 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4538 4537 SciPy.
4539 4538
4540 4539 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4541 4540 that embedded IPython calls don't require vars() to be explicitly
4542 4541 passed. Now they are extracted from the caller's frame (code
4543 4542 snatched from Eric Jones' weave). Added better documentation to
4544 4543 the section on embedding and the example file.
4545 4544
4546 4545 * IPython/genutils.py (page): Changed so that under emacs, it just
4547 4546 prints the string. You can then page up and down in the emacs
4548 4547 buffer itself. This is how the builtin help() works.
4549 4548
4550 4549 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4551 4550 macro scoping: macros need to be executed in the user's namespace
4552 4551 to work as if they had been typed by the user.
4553 4552
4554 4553 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4555 4554 execute automatically (no need to type 'exec...'). They then
4556 4555 behave like 'true macros'. The printing system was also modified
4557 4556 for this to work.
4558 4557
4559 4558 2002-02-19 Fernando Perez <fperez@colorado.edu>
4560 4559
4561 4560 * IPython/genutils.py (page_file): new function for paging files
4562 4561 in an OS-independent way. Also necessary for file viewing to work
4563 4562 well inside Emacs buffers.
4564 4563 (page): Added checks for being in an emacs buffer.
4565 4564 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4566 4565 same bug in iplib.
4567 4566
4568 4567 2002-02-18 Fernando Perez <fperez@colorado.edu>
4569 4568
4570 4569 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4571 4570 of readline so that IPython can work inside an Emacs buffer.
4572 4571
4573 4572 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4574 4573 method signatures (they weren't really bugs, but it looks cleaner
4575 4574 and keeps PyChecker happy).
4576 4575
4577 4576 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4578 4577 for implementing various user-defined hooks. Currently only
4579 4578 display is done.
4580 4579
4581 4580 * IPython/Prompts.py (CachedOutput._display): changed display
4582 4581 functions so that they can be dynamically changed by users easily.
4583 4582
4584 4583 * IPython/Extensions/numeric_formats.py (num_display): added an
4585 4584 extension for printing NumPy arrays in flexible manners. It
4586 4585 doesn't do anything yet, but all the structure is in
4587 4586 place. Ultimately the plan is to implement output format control
4588 4587 like in Octave.
4589 4588
4590 4589 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4591 4590 methods are found at run-time by all the automatic machinery.
4592 4591
4593 4592 2002-02-17 Fernando Perez <fperez@colorado.edu>
4594 4593
4595 4594 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4596 4595 whole file a little.
4597 4596
4598 4597 * ToDo: closed this document. Now there's a new_design.lyx
4599 4598 document for all new ideas. Added making a pdf of it for the
4600 4599 end-user distro.
4601 4600
4602 4601 * IPython/Logger.py (Logger.switch_log): Created this to replace
4603 4602 logon() and logoff(). It also fixes a nasty crash reported by
4604 4603 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4605 4604
4606 4605 * IPython/iplib.py (complete): got auto-completion to work with
4607 4606 automagic (I had wanted this for a long time).
4608 4607
4609 4608 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4610 4609 to @file, since file() is now a builtin and clashes with automagic
4611 4610 for @file.
4612 4611
4613 4612 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4614 4613 of this was previously in iplib, which had grown to more than 2000
4615 4614 lines, way too long. No new functionality, but it makes managing
4616 4615 the code a bit easier.
4617 4616
4618 4617 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4619 4618 information to crash reports.
4620 4619
4621 4620 2002-02-12 Fernando Perez <fperez@colorado.edu>
4622 4621
4623 4622 * Released 0.2.5.
4624 4623
4625 4624 2002-02-11 Fernando Perez <fperez@colorado.edu>
4626 4625
4627 4626 * Wrote a relatively complete Windows installer. It puts
4628 4627 everything in place, creates Start Menu entries and fixes the
4629 4628 color issues. Nothing fancy, but it works.
4630 4629
4631 4630 2002-02-10 Fernando Perez <fperez@colorado.edu>
4632 4631
4633 4632 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4634 4633 os.path.expanduser() call so that we can type @run ~/myfile.py and
4635 4634 have thigs work as expected.
4636 4635
4637 4636 * IPython/genutils.py (page): fixed exception handling so things
4638 4637 work both in Unix and Windows correctly. Quitting a pager triggers
4639 4638 an IOError/broken pipe in Unix, and in windows not finding a pager
4640 4639 is also an IOError, so I had to actually look at the return value
4641 4640 of the exception, not just the exception itself. Should be ok now.
4642 4641
4643 4642 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4644 4643 modified to allow case-insensitive color scheme changes.
4645 4644
4646 4645 2002-02-09 Fernando Perez <fperez@colorado.edu>
4647 4646
4648 4647 * IPython/genutils.py (native_line_ends): new function to leave
4649 4648 user config files with os-native line-endings.
4650 4649
4651 4650 * README and manual updates.
4652 4651
4653 4652 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4654 4653 instead of StringType to catch Unicode strings.
4655 4654
4656 4655 * IPython/genutils.py (filefind): fixed bug for paths with
4657 4656 embedded spaces (very common in Windows).
4658 4657
4659 4658 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4660 4659 files under Windows, so that they get automatically associated
4661 4660 with a text editor. Windows makes it a pain to handle
4662 4661 extension-less files.
4663 4662
4664 4663 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4665 4664 warning about readline only occur for Posix. In Windows there's no
4666 4665 way to get readline, so why bother with the warning.
4667 4666
4668 4667 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4669 4668 for __str__ instead of dir(self), since dir() changed in 2.2.
4670 4669
4671 4670 * Ported to Windows! Tested on XP, I suspect it should work fine
4672 4671 on NT/2000, but I don't think it will work on 98 et al. That
4673 4672 series of Windows is such a piece of junk anyway that I won't try
4674 4673 porting it there. The XP port was straightforward, showed a few
4675 4674 bugs here and there (fixed all), in particular some string
4676 4675 handling stuff which required considering Unicode strings (which
4677 4676 Windows uses). This is good, but hasn't been too tested :) No
4678 4677 fancy installer yet, I'll put a note in the manual so people at
4679 4678 least make manually a shortcut.
4680 4679
4681 4680 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4682 4681 into a single one, "colors". This now controls both prompt and
4683 4682 exception color schemes, and can be changed both at startup
4684 4683 (either via command-line switches or via ipythonrc files) and at
4685 4684 runtime, with @colors.
4686 4685 (Magic.magic_run): renamed @prun to @run and removed the old
4687 4686 @run. The two were too similar to warrant keeping both.
4688 4687
4689 4688 2002-02-03 Fernando Perez <fperez@colorado.edu>
4690 4689
4691 4690 * IPython/iplib.py (install_first_time): Added comment on how to
4692 4691 configure the color options for first-time users. Put a <return>
4693 4692 request at the end so that small-terminal users get a chance to
4694 4693 read the startup info.
4695 4694
4696 4695 2002-01-23 Fernando Perez <fperez@colorado.edu>
4697 4696
4698 4697 * IPython/iplib.py (CachedOutput.update): Changed output memory
4699 4698 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4700 4699 input history we still use _i. Did this b/c these variable are
4701 4700 very commonly used in interactive work, so the less we need to
4702 4701 type the better off we are.
4703 4702 (Magic.magic_prun): updated @prun to better handle the namespaces
4704 4703 the file will run in, including a fix for __name__ not being set
4705 4704 before.
4706 4705
4707 4706 2002-01-20 Fernando Perez <fperez@colorado.edu>
4708 4707
4709 4708 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4710 4709 extra garbage for Python 2.2. Need to look more carefully into
4711 4710 this later.
4712 4711
4713 4712 2002-01-19 Fernando Perez <fperez@colorado.edu>
4714 4713
4715 4714 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4716 4715 display SyntaxError exceptions properly formatted when they occur
4717 4716 (they can be triggered by imported code).
4718 4717
4719 4718 2002-01-18 Fernando Perez <fperez@colorado.edu>
4720 4719
4721 4720 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4722 4721 SyntaxError exceptions are reported nicely formatted, instead of
4723 4722 spitting out only offset information as before.
4724 4723 (Magic.magic_prun): Added the @prun function for executing
4725 4724 programs with command line args inside IPython.
4726 4725
4727 4726 2002-01-16 Fernando Perez <fperez@colorado.edu>
4728 4727
4729 4728 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4730 4729 to *not* include the last item given in a range. This brings their
4731 4730 behavior in line with Python's slicing:
4732 4731 a[n1:n2] -> a[n1]...a[n2-1]
4733 4732 It may be a bit less convenient, but I prefer to stick to Python's
4734 4733 conventions *everywhere*, so users never have to wonder.
4735 4734 (Magic.magic_macro): Added @macro function to ease the creation of
4736 4735 macros.
4737 4736
4738 4737 2002-01-05 Fernando Perez <fperez@colorado.edu>
4739 4738
4740 4739 * Released 0.2.4.
4741 4740
4742 4741 * IPython/iplib.py (Magic.magic_pdef):
4743 4742 (InteractiveShell.safe_execfile): report magic lines and error
4744 4743 lines without line numbers so one can easily copy/paste them for
4745 4744 re-execution.
4746 4745
4747 4746 * Updated manual with recent changes.
4748 4747
4749 4748 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4750 4749 docstring printing when class? is called. Very handy for knowing
4751 4750 how to create class instances (as long as __init__ is well
4752 4751 documented, of course :)
4753 4752 (Magic.magic_doc): print both class and constructor docstrings.
4754 4753 (Magic.magic_pdef): give constructor info if passed a class and
4755 4754 __call__ info for callable object instances.
4756 4755
4757 4756 2002-01-04 Fernando Perez <fperez@colorado.edu>
4758 4757
4759 4758 * Made deep_reload() off by default. It doesn't always work
4760 4759 exactly as intended, so it's probably safer to have it off. It's
4761 4760 still available as dreload() anyway, so nothing is lost.
4762 4761
4763 4762 2002-01-02 Fernando Perez <fperez@colorado.edu>
4764 4763
4765 4764 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4766 4765 so I wanted an updated release).
4767 4766
4768 4767 2001-12-27 Fernando Perez <fperez@colorado.edu>
4769 4768
4770 4769 * IPython/iplib.py (InteractiveShell.interact): Added the original
4771 4770 code from 'code.py' for this module in order to change the
4772 4771 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4773 4772 the history cache would break when the user hit Ctrl-C, and
4774 4773 interact() offers no way to add any hooks to it.
4775 4774
4776 4775 2001-12-23 Fernando Perez <fperez@colorado.edu>
4777 4776
4778 4777 * setup.py: added check for 'MANIFEST' before trying to remove
4779 4778 it. Thanks to Sean Reifschneider.
4780 4779
4781 4780 2001-12-22 Fernando Perez <fperez@colorado.edu>
4782 4781
4783 4782 * Released 0.2.2.
4784 4783
4785 4784 * Finished (reasonably) writing the manual. Later will add the
4786 4785 python-standard navigation stylesheets, but for the time being
4787 4786 it's fairly complete. Distribution will include html and pdf
4788 4787 versions.
4789 4788
4790 4789 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4791 4790 (MayaVi author).
4792 4791
4793 4792 2001-12-21 Fernando Perez <fperez@colorado.edu>
4794 4793
4795 4794 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4796 4795 good public release, I think (with the manual and the distutils
4797 4796 installer). The manual can use some work, but that can go
4798 4797 slowly. Otherwise I think it's quite nice for end users. Next
4799 4798 summer, rewrite the guts of it...
4800 4799
4801 4800 * Changed format of ipythonrc files to use whitespace as the
4802 4801 separator instead of an explicit '='. Cleaner.
4803 4802
4804 4803 2001-12-20 Fernando Perez <fperez@colorado.edu>
4805 4804
4806 4805 * Started a manual in LyX. For now it's just a quick merge of the
4807 4806 various internal docstrings and READMEs. Later it may grow into a
4808 4807 nice, full-blown manual.
4809 4808
4810 4809 * Set up a distutils based installer. Installation should now be
4811 4810 trivially simple for end-users.
4812 4811
4813 4812 2001-12-11 Fernando Perez <fperez@colorado.edu>
4814 4813
4815 4814 * Released 0.2.0. First public release, announced it at
4816 4815 comp.lang.python. From now on, just bugfixes...
4817 4816
4818 4817 * Went through all the files, set copyright/license notices and
4819 4818 cleaned up things. Ready for release.
4820 4819
4821 4820 2001-12-10 Fernando Perez <fperez@colorado.edu>
4822 4821
4823 4822 * Changed the first-time installer not to use tarfiles. It's more
4824 4823 robust now and less unix-dependent. Also makes it easier for
4825 4824 people to later upgrade versions.
4826 4825
4827 4826 * Changed @exit to @abort to reflect the fact that it's pretty
4828 4827 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4829 4828 becomes significant only when IPyhton is embedded: in that case,
4830 4829 C-D closes IPython only, but @abort kills the enclosing program
4831 4830 too (unless it had called IPython inside a try catching
4832 4831 SystemExit).
4833 4832
4834 4833 * Created Shell module which exposes the actuall IPython Shell
4835 4834 classes, currently the normal and the embeddable one. This at
4836 4835 least offers a stable interface we won't need to change when
4837 4836 (later) the internals are rewritten. That rewrite will be confined
4838 4837 to iplib and ipmaker, but the Shell interface should remain as is.
4839 4838
4840 4839 * Added embed module which offers an embeddable IPShell object,
4841 4840 useful to fire up IPython *inside* a running program. Great for
4842 4841 debugging or dynamical data analysis.
4843 4842
4844 4843 2001-12-08 Fernando Perez <fperez@colorado.edu>
4845 4844
4846 4845 * Fixed small bug preventing seeing info from methods of defined
4847 4846 objects (incorrect namespace in _ofind()).
4848 4847
4849 4848 * Documentation cleanup. Moved the main usage docstrings to a
4850 4849 separate file, usage.py (cleaner to maintain, and hopefully in the
4851 4850 future some perlpod-like way of producing interactive, man and
4852 4851 html docs out of it will be found).
4853 4852
4854 4853 * Added @profile to see your profile at any time.
4855 4854
4856 4855 * Added @p as an alias for 'print'. It's especially convenient if
4857 4856 using automagic ('p x' prints x).
4858 4857
4859 4858 * Small cleanups and fixes after a pychecker run.
4860 4859
4861 4860 * Changed the @cd command to handle @cd - and @cd -<n> for
4862 4861 visiting any directory in _dh.
4863 4862
4864 4863 * Introduced _dh, a history of visited directories. @dhist prints
4865 4864 it out with numbers.
4866 4865
4867 4866 2001-12-07 Fernando Perez <fperez@colorado.edu>
4868 4867
4869 4868 * Released 0.1.22
4870 4869
4871 4870 * Made initialization a bit more robust against invalid color
4872 4871 options in user input (exit, not traceback-crash).
4873 4872
4874 4873 * Changed the bug crash reporter to write the report only in the
4875 4874 user's .ipython directory. That way IPython won't litter people's
4876 4875 hard disks with crash files all over the place. Also print on
4877 4876 screen the necessary mail command.
4878 4877
4879 4878 * With the new ultraTB, implemented LightBG color scheme for light
4880 4879 background terminals. A lot of people like white backgrounds, so I
4881 4880 guess we should at least give them something readable.
4882 4881
4883 4882 2001-12-06 Fernando Perez <fperez@colorado.edu>
4884 4883
4885 4884 * Modified the structure of ultraTB. Now there's a proper class
4886 4885 for tables of color schemes which allow adding schemes easily and
4887 4886 switching the active scheme without creating a new instance every
4888 4887 time (which was ridiculous). The syntax for creating new schemes
4889 4888 is also cleaner. I think ultraTB is finally done, with a clean
4890 4889 class structure. Names are also much cleaner (now there's proper
4891 4890 color tables, no need for every variable to also have 'color' in
4892 4891 its name).
4893 4892
4894 4893 * Broke down genutils into separate files. Now genutils only
4895 4894 contains utility functions, and classes have been moved to their
4896 4895 own files (they had enough independent functionality to warrant
4897 4896 it): ConfigLoader, OutputTrap, Struct.
4898 4897
4899 4898 2001-12-05 Fernando Perez <fperez@colorado.edu>
4900 4899
4901 4900 * IPython turns 21! Released version 0.1.21, as a candidate for
4902 4901 public consumption. If all goes well, release in a few days.
4903 4902
4904 4903 * Fixed path bug (files in Extensions/ directory wouldn't be found
4905 4904 unless IPython/ was explicitly in sys.path).
4906 4905
4907 4906 * Extended the FlexCompleter class as MagicCompleter to allow
4908 4907 completion of @-starting lines.
4909 4908
4910 4909 * Created __release__.py file as a central repository for release
4911 4910 info that other files can read from.
4912 4911
4913 4912 * Fixed small bug in logging: when logging was turned on in
4914 4913 mid-session, old lines with special meanings (!@?) were being
4915 4914 logged without the prepended comment, which is necessary since
4916 4915 they are not truly valid python syntax. This should make session
4917 4916 restores produce less errors.
4918 4917
4919 4918 * The namespace cleanup forced me to make a FlexCompleter class
4920 4919 which is nothing but a ripoff of rlcompleter, but with selectable
4921 4920 namespace (rlcompleter only works in __main__.__dict__). I'll try
4922 4921 to submit a note to the authors to see if this change can be
4923 4922 incorporated in future rlcompleter releases (Dec.6: done)
4924 4923
4925 4924 * More fixes to namespace handling. It was a mess! Now all
4926 4925 explicit references to __main__.__dict__ are gone (except when
4927 4926 really needed) and everything is handled through the namespace
4928 4927 dicts in the IPython instance. We seem to be getting somewhere
4929 4928 with this, finally...
4930 4929
4931 4930 * Small documentation updates.
4932 4931
4933 4932 * Created the Extensions directory under IPython (with an
4934 4933 __init__.py). Put the PhysicalQ stuff there. This directory should
4935 4934 be used for all special-purpose extensions.
4936 4935
4937 4936 * File renaming:
4938 4937 ipythonlib --> ipmaker
4939 4938 ipplib --> iplib
4940 4939 This makes a bit more sense in terms of what these files actually do.
4941 4940
4942 4941 * Moved all the classes and functions in ipythonlib to ipplib, so
4943 4942 now ipythonlib only has make_IPython(). This will ease up its
4944 4943 splitting in smaller functional chunks later.
4945 4944
4946 4945 * Cleaned up (done, I think) output of @whos. Better column
4947 4946 formatting, and now shows str(var) for as much as it can, which is
4948 4947 typically what one gets with a 'print var'.
4949 4948
4950 4949 2001-12-04 Fernando Perez <fperez@colorado.edu>
4951 4950
4952 4951 * Fixed namespace problems. Now builtin/IPyhton/user names get
4953 4952 properly reported in their namespace. Internal namespace handling
4954 4953 is finally getting decent (not perfect yet, but much better than
4955 4954 the ad-hoc mess we had).
4956 4955
4957 4956 * Removed -exit option. If people just want to run a python
4958 4957 script, that's what the normal interpreter is for. Less
4959 4958 unnecessary options, less chances for bugs.
4960 4959
4961 4960 * Added a crash handler which generates a complete post-mortem if
4962 4961 IPython crashes. This will help a lot in tracking bugs down the
4963 4962 road.
4964 4963
4965 4964 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4966 4965 which were boud to functions being reassigned would bypass the
4967 4966 logger, breaking the sync of _il with the prompt counter. This
4968 4967 would then crash IPython later when a new line was logged.
4969 4968
4970 4969 2001-12-02 Fernando Perez <fperez@colorado.edu>
4971 4970
4972 4971 * Made IPython a package. This means people don't have to clutter
4973 4972 their sys.path with yet another directory. Changed the INSTALL
4974 4973 file accordingly.
4975 4974
4976 4975 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4977 4976 sorts its output (so @who shows it sorted) and @whos formats the
4978 4977 table according to the width of the first column. Nicer, easier to
4979 4978 read. Todo: write a generic table_format() which takes a list of
4980 4979 lists and prints it nicely formatted, with optional row/column
4981 4980 separators and proper padding and justification.
4982 4981
4983 4982 * Released 0.1.20
4984 4983
4985 4984 * Fixed bug in @log which would reverse the inputcache list (a
4986 4985 copy operation was missing).
4987 4986
4988 4987 * Code cleanup. @config was changed to use page(). Better, since
4989 4988 its output is always quite long.
4990 4989
4991 4990 * Itpl is back as a dependency. I was having too many problems
4992 4991 getting the parametric aliases to work reliably, and it's just
4993 4992 easier to code weird string operations with it than playing %()s
4994 4993 games. It's only ~6k, so I don't think it's too big a deal.
4995 4994
4996 4995 * Found (and fixed) a very nasty bug with history. !lines weren't
4997 4996 getting cached, and the out of sync caches would crash
4998 4997 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4999 4998 division of labor a bit better. Bug fixed, cleaner structure.
5000 4999
5001 5000 2001-12-01 Fernando Perez <fperez@colorado.edu>
5002 5001
5003 5002 * Released 0.1.19
5004 5003
5005 5004 * Added option -n to @hist to prevent line number printing. Much
5006 5005 easier to copy/paste code this way.
5007 5006
5008 5007 * Created global _il to hold the input list. Allows easy
5009 5008 re-execution of blocks of code by slicing it (inspired by Janko's
5010 5009 comment on 'macros').
5011 5010
5012 5011 * Small fixes and doc updates.
5013 5012
5014 5013 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5015 5014 much too fragile with automagic. Handles properly multi-line
5016 5015 statements and takes parameters.
5017 5016
5018 5017 2001-11-30 Fernando Perez <fperez@colorado.edu>
5019 5018
5020 5019 * Version 0.1.18 released.
5021 5020
5022 5021 * Fixed nasty namespace bug in initial module imports.
5023 5022
5024 5023 * Added copyright/license notes to all code files (except
5025 5024 DPyGetOpt). For the time being, LGPL. That could change.
5026 5025
5027 5026 * Rewrote a much nicer README, updated INSTALL, cleaned up
5028 5027 ipythonrc-* samples.
5029 5028
5030 5029 * Overall code/documentation cleanup. Basically ready for
5031 5030 release. Only remaining thing: licence decision (LGPL?).
5032 5031
5033 5032 * Converted load_config to a class, ConfigLoader. Now recursion
5034 5033 control is better organized. Doesn't include the same file twice.
5035 5034
5036 5035 2001-11-29 Fernando Perez <fperez@colorado.edu>
5037 5036
5038 5037 * Got input history working. Changed output history variables from
5039 5038 _p to _o so that _i is for input and _o for output. Just cleaner
5040 5039 convention.
5041 5040
5042 5041 * Implemented parametric aliases. This pretty much allows the
5043 5042 alias system to offer full-blown shell convenience, I think.
5044 5043
5045 5044 * Version 0.1.17 released, 0.1.18 opened.
5046 5045
5047 5046 * dot_ipython/ipythonrc (alias): added documentation.
5048 5047 (xcolor): Fixed small bug (xcolors -> xcolor)
5049 5048
5050 5049 * Changed the alias system. Now alias is a magic command to define
5051 5050 aliases just like the shell. Rationale: the builtin magics should
5052 5051 be there for things deeply connected to IPython's
5053 5052 architecture. And this is a much lighter system for what I think
5054 5053 is the really important feature: allowing users to define quickly
5055 5054 magics that will do shell things for them, so they can customize
5056 5055 IPython easily to match their work habits. If someone is really
5057 5056 desperate to have another name for a builtin alias, they can
5058 5057 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5059 5058 works.
5060 5059
5061 5060 2001-11-28 Fernando Perez <fperez@colorado.edu>
5062 5061
5063 5062 * Changed @file so that it opens the source file at the proper
5064 5063 line. Since it uses less, if your EDITOR environment is
5065 5064 configured, typing v will immediately open your editor of choice
5066 5065 right at the line where the object is defined. Not as quick as
5067 5066 having a direct @edit command, but for all intents and purposes it
5068 5067 works. And I don't have to worry about writing @edit to deal with
5069 5068 all the editors, less does that.
5070 5069
5071 5070 * Version 0.1.16 released, 0.1.17 opened.
5072 5071
5073 5072 * Fixed some nasty bugs in the page/page_dumb combo that could
5074 5073 crash IPython.
5075 5074
5076 5075 2001-11-27 Fernando Perez <fperez@colorado.edu>
5077 5076
5078 5077 * Version 0.1.15 released, 0.1.16 opened.
5079 5078
5080 5079 * Finally got ? and ?? to work for undefined things: now it's
5081 5080 possible to type {}.get? and get information about the get method
5082 5081 of dicts, or os.path? even if only os is defined (so technically
5083 5082 os.path isn't). Works at any level. For example, after import os,
5084 5083 os?, os.path?, os.path.abspath? all work. This is great, took some
5085 5084 work in _ofind.
5086 5085
5087 5086 * Fixed more bugs with logging. The sanest way to do it was to add
5088 5087 to @log a 'mode' parameter. Killed two in one shot (this mode
5089 5088 option was a request of Janko's). I think it's finally clean
5090 5089 (famous last words).
5091 5090
5092 5091 * Added a page_dumb() pager which does a decent job of paging on
5093 5092 screen, if better things (like less) aren't available. One less
5094 5093 unix dependency (someday maybe somebody will port this to
5095 5094 windows).
5096 5095
5097 5096 * Fixed problem in magic_log: would lock of logging out if log
5098 5097 creation failed (because it would still think it had succeeded).
5099 5098
5100 5099 * Improved the page() function using curses to auto-detect screen
5101 5100 size. Now it can make a much better decision on whether to print
5102 5101 or page a string. Option screen_length was modified: a value 0
5103 5102 means auto-detect, and that's the default now.
5104 5103
5105 5104 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5106 5105 go out. I'll test it for a few days, then talk to Janko about
5107 5106 licences and announce it.
5108 5107
5109 5108 * Fixed the length of the auto-generated ---> prompt which appears
5110 5109 for auto-parens and auto-quotes. Getting this right isn't trivial,
5111 5110 with all the color escapes, different prompt types and optional
5112 5111 separators. But it seems to be working in all the combinations.
5113 5112
5114 5113 2001-11-26 Fernando Perez <fperez@colorado.edu>
5115 5114
5116 5115 * Wrote a regexp filter to get option types from the option names
5117 5116 string. This eliminates the need to manually keep two duplicate
5118 5117 lists.
5119 5118
5120 5119 * Removed the unneeded check_option_names. Now options are handled
5121 5120 in a much saner manner and it's easy to visually check that things
5122 5121 are ok.
5123 5122
5124 5123 * Updated version numbers on all files I modified to carry a
5125 5124 notice so Janko and Nathan have clear version markers.
5126 5125
5127 5126 * Updated docstring for ultraTB with my changes. I should send
5128 5127 this to Nathan.
5129 5128
5130 5129 * Lots of small fixes. Ran everything through pychecker again.
5131 5130
5132 5131 * Made loading of deep_reload an cmd line option. If it's not too
5133 5132 kosher, now people can just disable it. With -nodeep_reload it's
5134 5133 still available as dreload(), it just won't overwrite reload().
5135 5134
5136 5135 * Moved many options to the no| form (-opt and -noopt
5137 5136 accepted). Cleaner.
5138 5137
5139 5138 * Changed magic_log so that if called with no parameters, it uses
5140 5139 'rotate' mode. That way auto-generated logs aren't automatically
5141 5140 over-written. For normal logs, now a backup is made if it exists
5142 5141 (only 1 level of backups). A new 'backup' mode was added to the
5143 5142 Logger class to support this. This was a request by Janko.
5144 5143
5145 5144 * Added @logoff/@logon to stop/restart an active log.
5146 5145
5147 5146 * Fixed a lot of bugs in log saving/replay. It was pretty
5148 5147 broken. Now special lines (!@,/) appear properly in the command
5149 5148 history after a log replay.
5150 5149
5151 5150 * Tried and failed to implement full session saving via pickle. My
5152 5151 idea was to pickle __main__.__dict__, but modules can't be
5153 5152 pickled. This would be a better alternative to replaying logs, but
5154 5153 seems quite tricky to get to work. Changed -session to be called
5155 5154 -logplay, which more accurately reflects what it does. And if we
5156 5155 ever get real session saving working, -session is now available.
5157 5156
5158 5157 * Implemented color schemes for prompts also. As for tracebacks,
5159 5158 currently only NoColor and Linux are supported. But now the
5160 5159 infrastructure is in place, based on a generic ColorScheme
5161 5160 class. So writing and activating new schemes both for the prompts
5162 5161 and the tracebacks should be straightforward.
5163 5162
5164 5163 * Version 0.1.13 released, 0.1.14 opened.
5165 5164
5166 5165 * Changed handling of options for output cache. Now counter is
5167 5166 hardwired starting at 1 and one specifies the maximum number of
5168 5167 entries *in the outcache* (not the max prompt counter). This is
5169 5168 much better, since many statements won't increase the cache
5170 5169 count. It also eliminated some confusing options, now there's only
5171 5170 one: cache_size.
5172 5171
5173 5172 * Added 'alias' magic function and magic_alias option in the
5174 5173 ipythonrc file. Now the user can easily define whatever names he
5175 5174 wants for the magic functions without having to play weird
5176 5175 namespace games. This gives IPython a real shell-like feel.
5177 5176
5178 5177 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5179 5178 @ or not).
5180 5179
5181 5180 This was one of the last remaining 'visible' bugs (that I know
5182 5181 of). I think if I can clean up the session loading so it works
5183 5182 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5184 5183 about licensing).
5185 5184
5186 5185 2001-11-25 Fernando Perez <fperez@colorado.edu>
5187 5186
5188 5187 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5189 5188 there's a cleaner distinction between what ? and ?? show.
5190 5189
5191 5190 * Added screen_length option. Now the user can define his own
5192 5191 screen size for page() operations.
5193 5192
5194 5193 * Implemented magic shell-like functions with automatic code
5195 5194 generation. Now adding another function is just a matter of adding
5196 5195 an entry to a dict, and the function is dynamically generated at
5197 5196 run-time. Python has some really cool features!
5198 5197
5199 5198 * Renamed many options to cleanup conventions a little. Now all
5200 5199 are lowercase, and only underscores where needed. Also in the code
5201 5200 option name tables are clearer.
5202 5201
5203 5202 * Changed prompts a little. Now input is 'In [n]:' instead of
5204 5203 'In[n]:='. This allows it the numbers to be aligned with the
5205 5204 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5206 5205 Python (it was a Mathematica thing). The '...' continuation prompt
5207 5206 was also changed a little to align better.
5208 5207
5209 5208 * Fixed bug when flushing output cache. Not all _p<n> variables
5210 5209 exist, so their deletion needs to be wrapped in a try:
5211 5210
5212 5211 * Figured out how to properly use inspect.formatargspec() (it
5213 5212 requires the args preceded by *). So I removed all the code from
5214 5213 _get_pdef in Magic, which was just replicating that.
5215 5214
5216 5215 * Added test to prefilter to allow redefining magic function names
5217 5216 as variables. This is ok, since the @ form is always available,
5218 5217 but whe should allow the user to define a variable called 'ls' if
5219 5218 he needs it.
5220 5219
5221 5220 * Moved the ToDo information from README into a separate ToDo.
5222 5221
5223 5222 * General code cleanup and small bugfixes. I think it's close to a
5224 5223 state where it can be released, obviously with a big 'beta'
5225 5224 warning on it.
5226 5225
5227 5226 * Got the magic function split to work. Now all magics are defined
5228 5227 in a separate class. It just organizes things a bit, and now
5229 5228 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5230 5229 was too long).
5231 5230
5232 5231 * Changed @clear to @reset to avoid potential confusions with
5233 5232 the shell command clear. Also renamed @cl to @clear, which does
5234 5233 exactly what people expect it to from their shell experience.
5235 5234
5236 5235 Added a check to the @reset command (since it's so
5237 5236 destructive, it's probably a good idea to ask for confirmation).
5238 5237 But now reset only works for full namespace resetting. Since the
5239 5238 del keyword is already there for deleting a few specific
5240 5239 variables, I don't see the point of having a redundant magic
5241 5240 function for the same task.
5242 5241
5243 5242 2001-11-24 Fernando Perez <fperez@colorado.edu>
5244 5243
5245 5244 * Updated the builtin docs (esp. the ? ones).
5246 5245
5247 5246 * Ran all the code through pychecker. Not terribly impressed with
5248 5247 it: lots of spurious warnings and didn't really find anything of
5249 5248 substance (just a few modules being imported and not used).
5250 5249
5251 5250 * Implemented the new ultraTB functionality into IPython. New
5252 5251 option: xcolors. This chooses color scheme. xmode now only selects
5253 5252 between Plain and Verbose. Better orthogonality.
5254 5253
5255 5254 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5256 5255 mode and color scheme for the exception handlers. Now it's
5257 5256 possible to have the verbose traceback with no coloring.
5258 5257
5259 5258 2001-11-23 Fernando Perez <fperez@colorado.edu>
5260 5259
5261 5260 * Version 0.1.12 released, 0.1.13 opened.
5262 5261
5263 5262 * Removed option to set auto-quote and auto-paren escapes by
5264 5263 user. The chances of breaking valid syntax are just too high. If
5265 5264 someone *really* wants, they can always dig into the code.
5266 5265
5267 5266 * Made prompt separators configurable.
5268 5267
5269 5268 2001-11-22 Fernando Perez <fperez@colorado.edu>
5270 5269
5271 5270 * Small bugfixes in many places.
5272 5271
5273 5272 * Removed the MyCompleter class from ipplib. It seemed redundant
5274 5273 with the C-p,C-n history search functionality. Less code to
5275 5274 maintain.
5276 5275
5277 5276 * Moved all the original ipython.py code into ipythonlib.py. Right
5278 5277 now it's just one big dump into a function called make_IPython, so
5279 5278 no real modularity has been gained. But at least it makes the
5280 5279 wrapper script tiny, and since ipythonlib is a module, it gets
5281 5280 compiled and startup is much faster.
5282 5281
5283 5282 This is a reasobably 'deep' change, so we should test it for a
5284 5283 while without messing too much more with the code.
5285 5284
5286 5285 2001-11-21 Fernando Perez <fperez@colorado.edu>
5287 5286
5288 5287 * Version 0.1.11 released, 0.1.12 opened for further work.
5289 5288
5290 5289 * Removed dependency on Itpl. It was only needed in one place. It
5291 5290 would be nice if this became part of python, though. It makes life
5292 5291 *a lot* easier in some cases.
5293 5292
5294 5293 * Simplified the prefilter code a bit. Now all handlers are
5295 5294 expected to explicitly return a value (at least a blank string).
5296 5295
5297 5296 * Heavy edits in ipplib. Removed the help system altogether. Now
5298 5297 obj?/?? is used for inspecting objects, a magic @doc prints
5299 5298 docstrings, and full-blown Python help is accessed via the 'help'
5300 5299 keyword. This cleans up a lot of code (less to maintain) and does
5301 5300 the job. Since 'help' is now a standard Python component, might as
5302 5301 well use it and remove duplicate functionality.
5303 5302
5304 5303 Also removed the option to use ipplib as a standalone program. By
5305 5304 now it's too dependent on other parts of IPython to function alone.
5306 5305
5307 5306 * Fixed bug in genutils.pager. It would crash if the pager was
5308 5307 exited immediately after opening (broken pipe).
5309 5308
5310 5309 * Trimmed down the VerboseTB reporting a little. The header is
5311 5310 much shorter now and the repeated exception arguments at the end
5312 5311 have been removed. For interactive use the old header seemed a bit
5313 5312 excessive.
5314 5313
5315 5314 * Fixed small bug in output of @whos for variables with multi-word
5316 5315 types (only first word was displayed).
5317 5316
5318 5317 2001-11-17 Fernando Perez <fperez@colorado.edu>
5319 5318
5320 5319 * Version 0.1.10 released, 0.1.11 opened for further work.
5321 5320
5322 5321 * Modified dirs and friends. dirs now *returns* the stack (not
5323 5322 prints), so one can manipulate it as a variable. Convenient to
5324 5323 travel along many directories.
5325 5324
5326 5325 * Fixed bug in magic_pdef: would only work with functions with
5327 5326 arguments with default values.
5328 5327
5329 5328 2001-11-14 Fernando Perez <fperez@colorado.edu>
5330 5329
5331 5330 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5332 5331 example with IPython. Various other minor fixes and cleanups.
5333 5332
5334 5333 * Version 0.1.9 released, 0.1.10 opened for further work.
5335 5334
5336 5335 * Added sys.path to the list of directories searched in the
5337 5336 execfile= option. It used to be the current directory and the
5338 5337 user's IPYTHONDIR only.
5339 5338
5340 5339 2001-11-13 Fernando Perez <fperez@colorado.edu>
5341 5340
5342 5341 * Reinstated the raw_input/prefilter separation that Janko had
5343 5342 initially. This gives a more convenient setup for extending the
5344 5343 pre-processor from the outside: raw_input always gets a string,
5345 5344 and prefilter has to process it. We can then redefine prefilter
5346 5345 from the outside and implement extensions for special
5347 5346 purposes.
5348 5347
5349 5348 Today I got one for inputting PhysicalQuantity objects
5350 5349 (from Scientific) without needing any function calls at
5351 5350 all. Extremely convenient, and it's all done as a user-level
5352 5351 extension (no IPython code was touched). Now instead of:
5353 5352 a = PhysicalQuantity(4.2,'m/s**2')
5354 5353 one can simply say
5355 5354 a = 4.2 m/s**2
5356 5355 or even
5357 5356 a = 4.2 m/s^2
5358 5357
5359 5358 I use this, but it's also a proof of concept: IPython really is
5360 5359 fully user-extensible, even at the level of the parsing of the
5361 5360 command line. It's not trivial, but it's perfectly doable.
5362 5361
5363 5362 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5364 5363 the problem of modules being loaded in the inverse order in which
5365 5364 they were defined in
5366 5365
5367 5366 * Version 0.1.8 released, 0.1.9 opened for further work.
5368 5367
5369 5368 * Added magics pdef, source and file. They respectively show the
5370 5369 definition line ('prototype' in C), source code and full python
5371 5370 file for any callable object. The object inspector oinfo uses
5372 5371 these to show the same information.
5373 5372
5374 5373 * Version 0.1.7 released, 0.1.8 opened for further work.
5375 5374
5376 5375 * Separated all the magic functions into a class called Magic. The
5377 5376 InteractiveShell class was becoming too big for Xemacs to handle
5378 5377 (de-indenting a line would lock it up for 10 seconds while it
5379 5378 backtracked on the whole class!)
5380 5379
5381 5380 FIXME: didn't work. It can be done, but right now namespaces are
5382 5381 all messed up. Do it later (reverted it for now, so at least
5383 5382 everything works as before).
5384 5383
5385 5384 * Got the object introspection system (magic_oinfo) working! I
5386 5385 think this is pretty much ready for release to Janko, so he can
5387 5386 test it for a while and then announce it. Pretty much 100% of what
5388 5387 I wanted for the 'phase 1' release is ready. Happy, tired.
5389 5388
5390 5389 2001-11-12 Fernando Perez <fperez@colorado.edu>
5391 5390
5392 5391 * Version 0.1.6 released, 0.1.7 opened for further work.
5393 5392
5394 5393 * Fixed bug in printing: it used to test for truth before
5395 5394 printing, so 0 wouldn't print. Now checks for None.
5396 5395
5397 5396 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5398 5397 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5399 5398 reaches by hand into the outputcache. Think of a better way to do
5400 5399 this later.
5401 5400
5402 5401 * Various small fixes thanks to Nathan's comments.
5403 5402
5404 5403 * Changed magic_pprint to magic_Pprint. This way it doesn't
5405 5404 collide with pprint() and the name is consistent with the command
5406 5405 line option.
5407 5406
5408 5407 * Changed prompt counter behavior to be fully like
5409 5408 Mathematica's. That is, even input that doesn't return a result
5410 5409 raises the prompt counter. The old behavior was kind of confusing
5411 5410 (getting the same prompt number several times if the operation
5412 5411 didn't return a result).
5413 5412
5414 5413 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5415 5414
5416 5415 * Fixed -Classic mode (wasn't working anymore).
5417 5416
5418 5417 * Added colored prompts using Nathan's new code. Colors are
5419 5418 currently hardwired, they can be user-configurable. For
5420 5419 developers, they can be chosen in file ipythonlib.py, at the
5421 5420 beginning of the CachedOutput class def.
5422 5421
5423 5422 2001-11-11 Fernando Perez <fperez@colorado.edu>
5424 5423
5425 5424 * Version 0.1.5 released, 0.1.6 opened for further work.
5426 5425
5427 5426 * Changed magic_env to *return* the environment as a dict (not to
5428 5427 print it). This way it prints, but it can also be processed.
5429 5428
5430 5429 * Added Verbose exception reporting to interactive
5431 5430 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5432 5431 traceback. Had to make some changes to the ultraTB file. This is
5433 5432 probably the last 'big' thing in my mental todo list. This ties
5434 5433 in with the next entry:
5435 5434
5436 5435 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5437 5436 has to specify is Plain, Color or Verbose for all exception
5438 5437 handling.
5439 5438
5440 5439 * Removed ShellServices option. All this can really be done via
5441 5440 the magic system. It's easier to extend, cleaner and has automatic
5442 5441 namespace protection and documentation.
5443 5442
5444 5443 2001-11-09 Fernando Perez <fperez@colorado.edu>
5445 5444
5446 5445 * Fixed bug in output cache flushing (missing parameter to
5447 5446 __init__). Other small bugs fixed (found using pychecker).
5448 5447
5449 5448 * Version 0.1.4 opened for bugfixing.
5450 5449
5451 5450 2001-11-07 Fernando Perez <fperez@colorado.edu>
5452 5451
5453 5452 * Version 0.1.3 released, mainly because of the raw_input bug.
5454 5453
5455 5454 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5456 5455 and when testing for whether things were callable, a call could
5457 5456 actually be made to certain functions. They would get called again
5458 5457 once 'really' executed, with a resulting double call. A disaster
5459 5458 in many cases (list.reverse() would never work!).
5460 5459
5461 5460 * Removed prefilter() function, moved its code to raw_input (which
5462 5461 after all was just a near-empty caller for prefilter). This saves
5463 5462 a function call on every prompt, and simplifies the class a tiny bit.
5464 5463
5465 5464 * Fix _ip to __ip name in magic example file.
5466 5465
5467 5466 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5468 5467 work with non-gnu versions of tar.
5469 5468
5470 5469 2001-11-06 Fernando Perez <fperez@colorado.edu>
5471 5470
5472 5471 * Version 0.1.2. Just to keep track of the recent changes.
5473 5472
5474 5473 * Fixed nasty bug in output prompt routine. It used to check 'if
5475 5474 arg != None...'. Problem is, this fails if arg implements a
5476 5475 special comparison (__cmp__) which disallows comparing to
5477 5476 None. Found it when trying to use the PhysicalQuantity module from
5478 5477 ScientificPython.
5479 5478
5480 5479 2001-11-05 Fernando Perez <fperez@colorado.edu>
5481 5480
5482 5481 * Also added dirs. Now the pushd/popd/dirs family functions
5483 5482 basically like the shell, with the added convenience of going home
5484 5483 when called with no args.
5485 5484
5486 5485 * pushd/popd slightly modified to mimic shell behavior more
5487 5486 closely.
5488 5487
5489 5488 * Added env,pushd,popd from ShellServices as magic functions. I
5490 5489 think the cleanest will be to port all desired functions from
5491 5490 ShellServices as magics and remove ShellServices altogether. This
5492 5491 will provide a single, clean way of adding functionality
5493 5492 (shell-type or otherwise) to IP.
5494 5493
5495 5494 2001-11-04 Fernando Perez <fperez@colorado.edu>
5496 5495
5497 5496 * Added .ipython/ directory to sys.path. This way users can keep
5498 5497 customizations there and access them via import.
5499 5498
5500 5499 2001-11-03 Fernando Perez <fperez@colorado.edu>
5501 5500
5502 5501 * Opened version 0.1.1 for new changes.
5503 5502
5504 5503 * Changed version number to 0.1.0: first 'public' release, sent to
5505 5504 Nathan and Janko.
5506 5505
5507 5506 * Lots of small fixes and tweaks.
5508 5507
5509 5508 * Minor changes to whos format. Now strings are shown, snipped if
5510 5509 too long.
5511 5510
5512 5511 * Changed ShellServices to work on __main__ so they show up in @who
5513 5512
5514 5513 * Help also works with ? at the end of a line:
5515 5514 ?sin and sin?
5516 5515 both produce the same effect. This is nice, as often I use the
5517 5516 tab-complete to find the name of a method, but I used to then have
5518 5517 to go to the beginning of the line to put a ? if I wanted more
5519 5518 info. Now I can just add the ? and hit return. Convenient.
5520 5519
5521 5520 2001-11-02 Fernando Perez <fperez@colorado.edu>
5522 5521
5523 5522 * Python version check (>=2.1) added.
5524 5523
5525 5524 * Added LazyPython documentation. At this point the docs are quite
5526 5525 a mess. A cleanup is in order.
5527 5526
5528 5527 * Auto-installer created. For some bizarre reason, the zipfiles
5529 5528 module isn't working on my system. So I made a tar version
5530 5529 (hopefully the command line options in various systems won't kill
5531 5530 me).
5532 5531
5533 5532 * Fixes to Struct in genutils. Now all dictionary-like methods are
5534 5533 protected (reasonably).
5535 5534
5536 5535 * Added pager function to genutils and changed ? to print usage
5537 5536 note through it (it was too long).
5538 5537
5539 5538 * Added the LazyPython functionality. Works great! I changed the
5540 5539 auto-quote escape to ';', it's on home row and next to '. But
5541 5540 both auto-quote and auto-paren (still /) escapes are command-line
5542 5541 parameters.
5543 5542
5544 5543
5545 5544 2001-11-01 Fernando Perez <fperez@colorado.edu>
5546 5545
5547 5546 * Version changed to 0.0.7. Fairly large change: configuration now
5548 5547 is all stored in a directory, by default .ipython. There, all
5549 5548 config files have normal looking names (not .names)
5550 5549
5551 5550 * Version 0.0.6 Released first to Lucas and Archie as a test
5552 5551 run. Since it's the first 'semi-public' release, change version to
5553 5552 > 0.0.6 for any changes now.
5554 5553
5555 5554 * Stuff I had put in the ipplib.py changelog:
5556 5555
5557 5556 Changes to InteractiveShell:
5558 5557
5559 5558 - Made the usage message a parameter.
5560 5559
5561 5560 - Require the name of the shell variable to be given. It's a bit
5562 of a hack, but allows the name 'shell' not to be hardwire in the
5561 of a hack, but allows the name 'shell' not to be hardwired in the
5563 5562 magic (@) handler, which is problematic b/c it requires
5564 5563 polluting the global namespace with 'shell'. This in turn is
5565 5564 fragile: if a user redefines a variable called shell, things
5566 5565 break.
5567 5566
5568 5567 - magic @: all functions available through @ need to be defined
5569 5568 as magic_<name>, even though they can be called simply as
5570 5569 @<name>. This allows the special command @magic to gather
5571 5570 information automatically about all existing magic functions,
5572 5571 even if they are run-time user extensions, by parsing the shell
5573 5572 instance __dict__ looking for special magic_ names.
5574 5573
5575 5574 - mainloop: added *two* local namespace parameters. This allows
5576 5575 the class to differentiate between parameters which were there
5577 5576 before and after command line initialization was processed. This
5578 5577 way, later @who can show things loaded at startup by the
5579 5578 user. This trick was necessary to make session saving/reloading
5580 5579 really work: ideally after saving/exiting/reloading a session,
5581 *everythin* should look the same, including the output of @who. I
5580 *everything* should look the same, including the output of @who. I
5582 5581 was only able to make this work with this double namespace
5583 5582 trick.
5584 5583
5585 5584 - added a header to the logfile which allows (almost) full
5586 5585 session restoring.
5587 5586
5588 5587 - prepend lines beginning with @ or !, with a and log
5589 5588 them. Why? !lines: may be useful to know what you did @lines:
5590 5589 they may affect session state. So when restoring a session, at
5591 5590 least inform the user of their presence. I couldn't quite get
5592 5591 them to properly re-execute, but at least the user is warned.
5593 5592
5594 5593 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now