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