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